You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/07/04 02:57:34 UTC

[01/10] Update L10N strings from Transifex to repo

Updated Branches:
  refs/heads/vmsync 306d0907b -> 3ecc52a4f


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_ko_KR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ko_KR.properties b/client/WEB-INF/classes/resources/messages_ko_KR.properties
index 757871a..7f3d5eb 100644
--- a/client/WEB-INF/classes/resources/messages_ko_KR.properties
+++ b/client/WEB-INF/classes/resources/messages_ko_KR.properties
@@ -369,7 +369,6 @@ 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.offerings=\ucef4\ud4e8\ud305 \uc790\uc6d0 \uc81c\uacf5
 label.compute.offering=\ucef4\ud4e8\ud305 \uc790\uc6d0 \uc81c\uacf5
 label.compute=\ucef4\ud4e8\ud305
 label.configuration=\uad6c\uc131
@@ -615,7 +614,6 @@ label.launch.zone=Zone \uc2dc\uc791
 label.LB.isolation=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \ubd84\ub9ac
 label.least.connections=\ucd5c\uc18c \uc811\uc18d
 label.level=\ub808\ubca8
-label.linklocal.ip=\ub9c1\ud06c \ub85c\uceec IP \uc8fc\uc18c
 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

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pt_BR.properties b/client/WEB-INF/classes/resources/messages_pt_BR.properties
index fd24f54..9f7a663 100644
--- a/client/WEB-INF/classes/resources/messages_pt_BR.properties
+++ b/client/WEB-INF/classes/resources/messages_pt_BR.properties
@@ -370,7 +370,6 @@ label.code=C\u00f3digo
 label.community=Comunidade
 label.compute.and.storage=Processamento e Armazenamento
 label.compute.offering=Oferta de Computa\u00e7\u00e3o
-label.compute.offerings=Ofertas de Computa\u00e7\u00e3o
 label.configuration=Configura\u00e7\u00e3o
 label.configure=Configurar
 label.configure.network.ACLs=Configure ACLs de rede
@@ -486,7 +485,7 @@ label.error.code=C\u00f3digo de Erro
 label.error=Erro
 label.ESP.encryption=Encripta\u00e7\u00e3o ESP
 label.ESP.hash=Hash ESP
-label.ESP.policy=Pol\u00edtica ESP 
+label.ESP.policy=Pol\u00edtica ESP
 label.esx.host=ESX/ESXi Host
 label.example=Examplo
 label.f5=F5
@@ -618,7 +617,6 @@ label.launch.zone=Executar zona.
 label.LB.isolation=Isolamento de LB
 label.least.connections=Least connections
 label.level=N\u00edvel
-label.linklocal.ip=Endere\u00e7o IP Link Local
 label.load.balancer=Load Balancer
 label.load.balancing=Balanceamento de Carga
 label.load.balancing.policies=Pol\u00edticas de balanceamento de carga

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_ru_RU.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ru_RU.properties b/client/WEB-INF/classes/resources/messages_ru_RU.properties
index b28f6b6..37a36a9 100644
--- a/client/WEB-INF/classes/resources/messages_ru_RU.properties
+++ b/client/WEB-INF/classes/resources/messages_ru_RU.properties
@@ -356,7 +356,6 @@ 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=\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439
 label.compute.offering=\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435
 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
@@ -580,7 +579,6 @@ label.launch.zone=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\
 label.LB.isolation=\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f LB
 label.least.connections=Least connections
 label.level=\u0423\u0440\u043e\u0432\u0435\u043d\u044c
-label.linklocal.ip=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0430\u0434\u0440\u0435\u0441
 label.load.balancer=\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \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

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_zh_CN.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties
index 75ecb34..2ea262d 100644
--- a/client/WEB-INF/classes/resources/messages_zh_CN.properties
+++ b/client/WEB-INF/classes/resources/messages_zh_CN.properties
@@ -14,14 +14,9 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-label.view.secondary.ips=\u67e5\u770b\u8f85\u52a9 IP
-message.acquire.ip.nic=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u83b7\u53d6\u6b64 NIC \u7684\u65b0\u8f85\u52a9 IP\u3002<br/>\u6ce8\u610f: \u60a8\u9700\u8981\u5728\u865a\u62df\u673a\u5185\u90e8\u624b\u52a8\u914d\u7f6e\u65b0\u83b7\u53d6\u7684\u8f85\u52a9 IP\u3002
-message.select.affinity.groups=\u8bf7\u9009\u62e9\u60a8\u5e0c\u671b\u6b64 VM \u6240\u5c5e\u7684\u4efb\u4f55\u5173\u8054\u6027\u7ec4:
-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
-label.action.delete.nic=\u79fb\u9664 NIC
-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 
+
 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\u8f85\u52a9\u5b58\u50a8\u7684\u652f\u6301
+confirm.enable.s3=\u8bf7\u586b\u5199\u4e0b\u5217\u4fe1\u606f\u4ee5\u542f\u7528\u652f\u6301S3\u7684\u4e8c\u7ea7\u5b58\u50a8
 confirm.enable.swift=\u8bf7\u586b\u5199\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u542f\u7528\u5bf9 SWIFT \u7684\u652f\u6301
 error.could.not.enable.zone=\u65e0\u6cd5\u542f\u7528\u533a\u57df
 error.installWizard.message=\u51fa\u73b0\u95ee\u9898\uff1b\u8bf7\u8fd4\u56de\u5e76\u66f4\u6b63\u4efb\u4f55\u9519\u8bef
@@ -52,10 +47,9 @@ label.account.and.security.group=\u5e10\u6237\u3001\u5b89\u5168\u7ec4
 label.account.id=\u5e10\u6237 ID
 label.account.name=\u5e10\u6237\u540d\u79f0
 label.account.specific=\u5e10\u6237\u4e13\u7528
+label.accounts=\u5e10\u53f7
 label.account=\u5e10\u6237
-label.accounts=\u5e10\u6237
 label.acquire.new.ip=\u83b7\u53d6\u65b0 IP
-label.acquire.new.secondary.ip=\u83b7\u53d6\u65b0\u8f85\u52a9 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...
@@ -209,8 +203,8 @@ 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.resize.volume.processing=Resizing Volume....
+label.action.resize.volume=Resize Volume
 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
@@ -226,6 +220,7 @@ 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.unmanage.cluster.processing=\u6b63\u5728\u53d6\u6d88\u6258\u7ba1\u7fa4\u96c6...
@@ -234,19 +229,17 @@ label.action.update.OS.preference.processing=\u6b63\u5728\u66f4\u65b0\u64cd\u4f5
 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.actions=\u64cd\u4f5c
+label.action.vmsnapshot.create=\u6293\u53d6\u865a\u673a\u5feb\u7167
+label.action.vmsnapshot.delete=\u5220\u9664\u865a\u673a\u5feb\u7167
+label.action.vmsnapshot.revert=\u6062\u590d\u5230\u865a\u673a\u5feb\u7167
 label.activate.project=\u6fc0\u6d3b\u9879\u76ee
 label.active.sessions=\u6d3b\u52a8\u4f1a\u8bdd
-label.add.account.to.project=\u5411\u9879\u76ee\u4e2d\u6dfb\u52a0\u5e10\u6237
-label.add.account=\u6dfb\u52a0\u5e10\u6237
 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=\u6dfb\u52a0 ACL
-label.add.affinity.group=\u6dfb\u52a0\u65b0\u5173\u8054\u6027\u7ec4
-label.add.BigSwitchVns.device=\u6dfb\u52a0 BigSwitch Vns \u63a7\u5236\u5668
+label.add.BigSwitchVns.device=\u6dfb\u52a0BigSwitch Vns\u63a7\u5236\u5668
 label.add.by.cidr=\u6309 CIDR \u6dfb\u52a0
 label.add.by.group=\u6309\u7ec4\u6dfb\u52a0
 label.add.by=\u6dfb\u52a0\u65b9\u5f0f
@@ -260,8 +253,17 @@ label.add.F5.device=\u6dfb\u52a0 F5 \u8bbe\u5907
 label.add.firewall=\u6dfb\u52a0\u9632\u706b\u5899\u89c4\u5219
 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\u533a\u57df
 label.add.ip.range=\u6dfb\u52a0 IP \u8303\u56f4
+label.additional.networks=\u5176\u4ed6\u7f51\u7edc
 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
@@ -274,7 +276,7 @@ label.add.new.gateway=\u6dfb\u52a0\u65b0\u7f51\u5173
 label.add.new.NetScaler=\u6dfb\u52a0\u65b0 NetScaler
 label.add.new.SRX=\u6dfb\u52a0\u65b0 SRX
 label.add.new.tier=\u6dfb\u52a0\u65b0\u5c42
-label.add.NiciraNvp.device=\u6dfb\u52a0 Nvp \u63a7\u5236\u5668
+label.add.NiciraNvp.device=\u6dfb\u52a0Nvp\u63a7\u5236\u5668
 label.add.physical.network=\u6dfb\u52a0\u7269\u7406\u7f51\u7edc
 label.add.pod=\u6dfb\u52a0\u63d0\u4f9b\u70b9
 label.add.port.forwarding.rule=\u6dfb\u52a0\u7aef\u53e3\u8f6c\u53d1\u89c4\u5219
@@ -292,36 +294,24 @@ 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.user=\u6dfb\u52a0\u7528\u6237
 label.add.vlan=\u6dfb\u52a0 VLAN
-label.add.VM.to.tier=\u5411\u5c42\u4e2d\u6dfb\u52a0 VM
-label.add.vm=\u6dfb\u52a0 VM
 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.volume=\u6dfb\u52a0\u5377
 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.zone=\u6dfb\u52a0\u533a\u57df
-label.add=\u6dfb\u52a0
-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.adding.succeeded=\u5df2\u6210\u529f\u6dfb\u52a0
-label.adding.user=\u6b63\u5728\u6dfb\u52a0\u7528\u6237
-label.adding.zone=\u6b63\u5728\u6dfb\u52a0\u533a\u57df
-label.adding=\u6b63\u5728\u6dfb\u52a0
-label.additional.networks=\u5176\u4ed6\u7f51\u7edc
 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.group=\u5173\u8054\u6027\u7ec4
-label.affinity.groups=\u5173\u8054\u6027\u7ec4
-label.affinity=\u5173\u8054\u6027
 label.agent.password=\u4ee3\u7406\u5bc6\u7801
 label.agent.username=\u4ee3\u7406\u7528\u6237\u540d
 label.agree=\u540c\u610f
@@ -329,9 +319,6 @@ label.alert=\u8b66\u62a5
 label.algorithm=\u7b97\u6cd5
 label.allocated=\u5df2\u5206\u914d
 label.allocation.state=\u5206\u914d\u72b6\u6001
-label.anti.affinity.group=\u53cd\u5173\u8054\u6027\u7ec4
-label.anti.affinity.groups=\u53cd\u5173\u8054\u6027\u7ec4
-label.anti.affinity=\u53cd\u5173\u8054\u6027
 label.api.key=API \u5bc6\u94a5
 label.apply=\u5e94\u7528
 label.assign.to.load.balancer=\u6b63\u5728\u5c06\u5b9e\u4f8b\u5206\u914d\u7ed9\u8d1f\u8f7d\u5e73\u8861\u5668
@@ -339,10 +326,10 @@ label.assign=\u5206\u914d
 label.associated.network.id=\u5df2\u5173\u8054\u7f51\u7edc ID
 label.associated.network=\u5173\u8054\u7f51\u7edc
 label.attached.iso=\u5df2\u9644\u52a0 ISO
-label.author.email=\u4f5c\u8005\u7535\u5b50\u90ae\u4ef6
+label.author.email=\u4f5c\u8005\u90ae\u7bb1
 label.author.name=\u4f5c\u8005\u59d3\u540d
-label.availability.zone=\u53ef\u7528\u533a\u57df
 label.availability=\u53ef\u7528\u6027
+label.availability.zone=\u53ef\u7528\u533a\u57df
 label.available.public.ips=\u53ef\u7528\u516c\u7528 IP \u5730\u5740
 label.available=\u53ef\u7528
 label.back=\u8fd4\u56de
@@ -353,7 +340,7 @@ label.bigswitch.controller.address=BigSwitch Vns \u63a7\u5236\u5668\u5730\u5740
 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.broadcast.uri=\u5e7f\u64adURI
 label.by.account=\u6309\u5e10\u6237
 label.by.availability=\u6309\u53ef\u7528\u6027
 label.by.domain=\u6309\u57df
@@ -363,12 +350,12 @@ 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\u533a\u57df
-label.bytes.received=\u63a5\u6536\u7684\u5b57\u8282\u6570
-label.bytes.sent=\u53d1\u9001\u7684\u5b57\u8282\u6570
 label.cancel=\u53d6\u6d88
 label.capacity=\u5bb9\u91cf
 label.certificate=\u8bc1\u4e66
@@ -377,32 +364,31 @@ label.change.value=\u66f4\u6539\u503c
 label.character=\u5b57\u7b26
 label.checksum=MD5 \u6821\u9a8c\u548c
 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.cidr=CIDR
 label.clean.up=\u6e05\u9664
 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.clusters=\u7fa4\u96c6
 label.clvm=CLVM
 label.code=\u4ee3\u7801
 label.community=\u793e\u533a
 label.compute.and.storage=\u8ba1\u7b97\u4e0e\u5b58\u50a8
 label.compute.offering=\u8ba1\u7b97\u65b9\u6848
-label.compute.offerings=\u8ba1\u7b97\u65b9\u6848
 label.compute=\u8ba1\u7b97
-label.configuration=\u914d\u7f6e
+label.configuration=\u4e91\u5e73\u53f0\u914d\u7f6e
 label.configure.network.ACLs=\u914d\u7f6e\u7f51\u7edc ACL
-label.configure.vpc=\u914d\u7f6e VPC
 label.configure=\u914d\u7f6e
-label.confirm.password=\u786e\u8ba4\u5bc6\u7801
+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=\u4fdd\u62a4\u6a21\u5f0f
 label.console.proxy=\u63a7\u5236\u53f0\u4ee3\u7406
@@ -412,15 +398,15 @@ label.corrections.saved=\u5df2\u4fdd\u5b58\u4fee\u6b63
 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.limits=CPU \u9650\u5236
+label.cpu=CPU
+label.cpu.limits=CPU\u9650\u5236
 label.cpu.mhz=CPU (MHz)
 label.cpu.utilized=CPU \u5229\u7528\u7387
-label.cpu=CPU
+label.created.by.system=\u7531\u7cfb\u7edf\u521b\u5efa
+label.created=\u521b\u5efa\u65e5\u671f
 label.create.project=\u521b\u5efa\u9879\u76ee
 label.create.template=\u521b\u5efa\u6a21\u677f
 label.create.VPN.connection=\u521b\u5efa VPN \u8fde\u63a5
-label.created.by.system=\u7531\u7cfb\u7edf\u521b\u5efa
-label.created=\u521b\u5efa\u65e5\u671f
 label.cross.zones=\u8de8\u533a\u57df
 label.custom.disk.size=\u81ea\u5b9a\u4e49\u78c1\u76d8\u5927\u5c0f
 label.daily=\u6bcf\u5929\u4e00\u6b21
@@ -431,60 +417,51 @@ label.day.of.week=\u661f\u671f
 label.dead.peer.detection=\u5931\u6548\u5bf9\u7b49\u4f53\u68c0\u6d4b
 label.decline.invitation=\u62d2\u7edd\u9080\u8bf7
 label.dedicated=\u4e13\u7528
+label.default=\u9ed8\u8ba4\u503c
 label.default.use=\u9ed8\u8ba4\u4f7f\u7528
 label.default.view=\u9ed8\u8ba4\u89c6\u56fe
-label.default=\u9ed8\u8ba4\u503c
-label.delete.affinity.group=\u5220\u9664\u5173\u8054\u6027\u7ec4
-label.delete.BigSwitchVns=\u79fb\u9664 BigSwitch Vns \u63a7\u5236\u5668
+label.delete.BigSwitchVns=\u79fb\u9664BigSwitch Vns\u63a7\u5236\u5668
 label.delete.F5=\u5220\u9664 F5
 label.delete.gateway=\u5220\u9664\u7f51\u5173
 label.delete.NetScaler=\u5220\u9664 NetScaler
-label.delete.NiciraNvp=\u79fb\u9664 Nvp \u63a7\u5236\u5668
+label.delete.NiciraNvp=\u5220\u9664Nvp\u63a7\u5236\u5668
 label.delete.project=\u5220\u9664\u9879\u76ee
 label.delete.SRX=\u5220\u9664 SRX
+label.delete=\u5220\u9664
 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.delete=\u5220\u9664
 label.deleting.failed=\u5220\u9664\u5931\u8d25
 label.deleting.processing=\u6b63\u5728\u5220\u9664...
 label.description=\u8bf4\u660e
 label.destination.physical.network.id=\u76ee\u6807\u7269\u7406\u7f51\u7edc ID
 label.destination.zone=\u76ee\u6807\u533a\u57df
 label.destroy.router=\u9500\u6bc1\u8def\u7531\u5668
-label.destroy=\u9500\u6bc1
+label.destroy=\u00e9\u0094\u0080\u00e6\u00af\u0081
 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.server.type=DHCP \u670d\u52a1\u5668\u7c7b\u578b
 label.dhcp=DHCP
-label.direct.ips=\u5171\u4eab\u7f51\u7edc IP
+label.DHCP.server.type=DHCP \u670d\u52a1\u5668\u7c7b\u578b
+label.direct.ips=\u76f4\u63a5 IP
+label.disabled=\u5df2\u7981\u7528
 label.disable.provider=\u7981\u7528\u63d0\u4f9b\u7a0b\u5e8f
 label.disable.vpn=\u7981\u7528 VPN
-label.disabled=\u5df2\u7981\u7528
 label.disabling.vpn.access=\u6b63\u5728\u7981\u7528 VPN \u8bbf\u95ee
 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.read.rate=\u78c1\u76d8\u8bfb\u53d6\u901f\u5ea6(IOPS)
-label.disk.iops.write.rate=\u78c1\u76d8\u5199\u5165\u901f\u5ea6(IOPS)
 label.disk.offering=\u78c1\u76d8\u65b9\u6848
-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.dns.1=DNS 1
 label.dns.2=DNS 2
-label.DNS.domain.for.guest.networks=\u6765\u5bbe\u7f51\u7edc\u7684 DNS \u57df
 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.id=\u57df ID
 label.domain.name=\u57df\u540d
@@ -495,32 +472,31 @@ 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.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.tags=\u7f16\u8f91\u6807\u7b7e
 label.edit.traffic.type=\u7f16\u8f91\u6d41\u91cf\u7c7b\u578b
-label.edit.vpc=\u7f16\u8f91 VPC
 label.edit=\u7f16\u8f91
-label.egress.rule=\u51fa\u53e3\u89c4\u5219
+label.edit.vpc=\u7f16\u8f91 VPC
 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=\u7535\u5b50\u90ae\u4ef6
 label.enable.provider=\u542f\u7528\u63d0\u4f9b\u7a0b\u5e8f
-label.enable.s3=\u542f\u7528 S3 \u652f\u6301\u7684\u8f85\u52a9\u5b58\u50a8
+label.enable.s3=\u542f\u7528\u652f\u6301S3\u7684\u4e8c\u7ea7\u5b58\u50a8
 label.enable.swift=\u542f\u7528 SWIFT
 label.enable.vpn=\u542f\u7528 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.endpoint.or.operation=\u7aef\u70b9\u6216\u64cd\u4f5c
-label.endpoint=\u7aef\u70b9
 label.enter.token=\u8f93\u5165\u4ee4\u724c
 label.error.code=\u9519\u8bef\u4ee3\u7801
 label.error=\u9519\u8bef
@@ -569,14 +545,14 @@ label.hints=\u63d0\u793a
 label.host.alerts=\u4e3b\u673a\u8b66\u62a5
 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=\u4e3b\u673a
-label.hosts=\u4e3b\u673a
 label.hourly=\u6bcf\u5c0f\u65f6\u4e00\u6b21
 label.hypervisor.capabilities=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u529f\u80fd
 label.hypervisor.type=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u7c7b\u578b
+label.hypervisor=\u865a\u62df\u673a\u5e73\u53f0
 label.hypervisor.version=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u7248\u672c
-label.hypervisor=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f
 label.id=ID
 label.IKE.DH=IKE DH \u7b97\u6cd5
 label.IKE.encryption=IKE \u52a0\u5bc6\u7b97\u6cd5
@@ -596,16 +572,16 @@ label.installWizard.addPrimaryStorageIntro.subtitle=\u4ec0\u4e48\u662f\u4e3b\u5b
 label.installWizard.addPrimaryStorageIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u4e3b\u5b58\u50a8
 label.installWizard.addSecondaryStorageIntro.subtitle=\u4ec0\u4e48\u662f\u8f85\u52a9\u5b58\u50a8?
 label.installWizard.addSecondaryStorageIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u8f85\u52a9\u5b58\u50a8
-label.installWizard.addZone.title=\u6dfb\u52a0\u533a\u57df
 label.installWizard.addZoneIntro.subtitle=\u4ec0\u4e48\u662f\u533a\u57df?
 label.installWizard.addZoneIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u533a\u57df
+label.installWizard.addZone.title=\u6dfb\u52a0\u533a\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=\u5b9e\u4f8b
 label.instances=\u5b9e\u4f8b
+label.instance=\u5b9e\u4f8b
 label.internal.dns.1=\u5185\u90e8 DNS 1
 label.internal.dns.2=\u5185\u90e8 DNS 2
 label.internal.name=\u5185\u90e8\u540d\u79f0
@@ -614,38 +590,38 @@ 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.invited.accounts=\u5df2\u9080\u8bf7\u7684\u5e10\u6237
 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.ip=IP
-label.ipaddress=IP \u5730\u5740
-label.ips=IP
 label.IPsec.preshared.key=IPsec \u9884\u5171\u4eab\u5bc6\u94a5
-label.is.default=\u662f\u5426\u4e3a\u9ed8\u8ba4\u503c
-label.is.redundant.router=\u5197\u4f59
-label.is.shared=\u662f\u5426\u5171\u4eab
-label.is.system=\u662f\u5426\u4e3a\u7cfb\u7edf
+label.ips=IP
 label.iscsi=iSCSI
+label.is.default=\u662f\u5426\u4e3a\u9ed8\u8ba4\u503c
 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.isolation.uri=\u9694\u79bbURI
+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.keep=\u4fdd\u7559
-label.key=\u5bc6\u94a5
 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.brportugese=\u5df4\u897f\u8461\u8404\u7259\u8bed
 label.lang.catalan=\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed
 label.lang.chinese=\u7b80\u4f53\u4e2d\u6587
 label.lang.english=\u82f1\u8bed
@@ -653,20 +629,19 @@ label.lang.french=\u6cd5\u8bed
 label.lang.german=\u5fb7\u8bed
 label.lang.italian=\u610f\u5927\u5229\u8bed
 label.lang.japanese=\u65e5\u8bed
-label.lang.korean=\u97e9\u8bed
+label.lang.korean=\u97e9\u56fd\u8bed
 label.lang.norwegian=\u632a\u5a01\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.last.name=\u59d3\u6c0f
 label.latest.events=\u6700\u65b0\u4e8b\u4ef6
+label.launch=\u542f\u52a8
 label.launch.vm=\u542f\u52a8 VM
 label.launch.zone=\u542f\u52a8\u533a\u57df
-label.launch=\u542f\u52a8
 label.LB.isolation=\u8d1f\u8f7d\u5e73\u8861\u5668\u9694\u79bb
 label.least.connections=\u6700\u5c11\u8fde\u63a5\u7b97\u6cd5
 label.level=\u7ea7\u522b
-label.linklocal.ip=\u94fe\u63a5\u672c\u5730 IP \u5730\u5740
 label.load.balancer=\u8d1f\u8f7d\u5e73\u8861\u5668
 label.load.balancing.policies=\u8d1f\u8f7d\u5e73\u8861\u7b56\u7565
 label.load.balancing=\u8d1f\u8f7d\u5e73\u8861
@@ -676,40 +651,40 @@ label.local.storage=\u672c\u5730\u5b58\u50a8
 label.local=\u672c\u5730
 label.login=\u767b\u5f55
 label.logout=\u6ce8\u9500
-label.LUN.number=LUN \u53f7
 label.lun=LUN
+label.LUN.number=LUN \u53f7
 label.make.project.owner=\u8bbe\u4e3a\u5e10\u6237\u9879\u76ee\u6240\u6709\u8005
-label.manage.resources=\u7ba1\u7406\u8d44\u6e90
-label.manage=\u6258\u7ba1
 label.management.ips=\u7ba1\u7406\u7c7b IP \u5730\u5740
 label.management=\u7ba1\u7406
-label.max.cpus=\u6700\u5927 CPU \u5185\u6838\u6570
+label.manage.resources=\u7ba1\u7406\u8d44\u6e90
+label.manage=\u6258\u7ba1
+label.max.cpus=\u6700\u5927CPU\u6838\u5fc3\u6570
 label.max.guest.limit=\u6700\u5927\u6765\u5bbe\u6570\u9650\u5236
-label.max.memory=\u6700\u5927\u5185\u5b58(MiB)
+label.maximum=\u6700\u5927\u503c
+label.max.memory=\u6700\u5927\u5185\u5b58\u6570(\u5146\u5b57\u8282)
 label.max.networks=\u6700\u5927\u7f51\u7edc\u6570
-label.max.primary.storage=\u6700\u5927\u4e3b\u5b58\u50a8(GiB)
+label.max.primary.storage=\u6700\u5927\u4e3b\u5b58\u50a8(G\u5b57\u8282)
 label.max.public.ips=\u6700\u5927\u516c\u7528 IP \u6570
-label.max.secondary.storage=\u6700\u5927\u8f85\u52a9\u5b58\u50a8(GiB)
+label.max.secondary.storage=\u6700\u5927\u4e8c\u7ea7\u5b58\u50a8(G\u5b57\u8282)
 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.maximum=\u6700\u5927\u503c
+label.max.vpcs=\u6700\u591aVPC\u5c42\u6570
 label.may.continue=\u60a8\u73b0\u5728\u53ef\u4ee5\u7ee7\u7eed\u8fdb\u884c\u64cd\u4f5c\u3002
 label.memory.allocated=\u5df2\u5206\u914d\u7684\u5185\u5b58
-label.memory.limits=\u5185\u5b58\u9650\u5236(MiB)
+label.memory.limits=\u5185\u5b58\u9650\u5236(\u5146\u5b57\u8282)
 label.memory.mb=\u5185\u5b58(MB)
 label.memory.total=\u5185\u5b58\u603b\u91cf
-label.memory.used=\u5df2\u4f7f\u7528\u7684\u5185\u5b58
 label.memory=\u5185\u5b58
-label.menu.accounts=\u5e10\u6237
+label.memory.used=\u5df2\u4f7f\u7528\u7684\u5185\u5b58
+label.menu.accounts=\u5e10\u53f7
 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.configuration=\u4e91\u5e73\u53f0\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
@@ -720,7 +695,7 @@ 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.ipaddresses=IP\u5730\u5740
 label.menu.isos=ISO
 label.menu.my.accounts=\u6211\u7684\u5e10\u6237
 label.menu.my.instances=\u6211\u7684\u5b9e\u4f8b
@@ -731,14 +706,14 @@ label.menu.network=\u7f51\u7edc
 label.menu.physical.resources=\u7269\u7406\u8d44\u6e90
 label.menu.regions=\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.security.groups=\u5b89\u5168\u5206\u7ec4
+label.menu.service.offerings=\u670d\u52a1\u63d0\u4f9b
 label.menu.snapshots=\u5feb\u7167
 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.vms=\u7cfb\u7edf VM
 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
@@ -768,15 +743,16 @@ label.name=\u540d\u79f0
 label.nat.port.range=NAT \u7aef\u53e3\u8303\u56f4
 label.netmask=\u7f51\u7edc\u63a9\u7801
 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.ACLs=\u7f51\u7edc ACL
 label.network.desc=\u7f51\u7edc\u63cf\u8ff0
 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.name=\u7f51\u7edc\u540d\u79f0
 label.network.offering.display.text=\u7f51\u7edc\u65b9\u6848\u663e\u793a\u6587\u672c
@@ -786,25 +762,24 @@ label.network.offering=\u7f51\u7edc\u65b9\u6848
 label.network.rate.megabytes=\u7f51\u7edc\u901f\u7387(MB/\u79d2)
 label.network.rate=\u7f51\u7edc\u901f\u7387
 label.network.read=\u7f51\u7edc\u8bfb\u53d6\u91cf
-label.network.service.providers=\u7f51\u7edc\u670d\u52a1\u63d0\u4f9b\u7a0b\u5e8f
+label.network.service.providers=\u7f51\u7edc\u670d\u52a1\u63d0\u4f9b\u65b9\u6848
+label.networks=\u7f51\u7edc
 label.network.type=\u7f51\u7edc\u7c7b\u578b
-label.network.write=\u7f51\u7edc\u5199\u5165\u91cf
 label.network=\u7f51\u7edc
-label.networking.and.security=\u7f51\u7edc\u8fde\u63a5\u4e0e\u5b89\u5168
-label.networks=\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.vm=\u65b0\u5efa VM
 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.nfs=NFS
 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.transportzoneuuid=\u4f20\u8f93\u533a\u57df UUID
+label.nicira.l3gatewayserviceuuid=3\u5c42\u7f51\u5173\u670d\u52a1UUID
+label.nicira.transportzoneuuid=\u4f20\u8f93\u8d44\u6e90\u57dfUUID
 label.nics=NIC
 label.no.actions=\u65e0\u53ef\u7528\u64cd\u4f5c
 label.no.alerts=\u65e0\u6700\u8fd1\u53d1\u51fa\u7684\u8b66\u62a5
@@ -812,24 +787,24 @@ label.no.data=\u65e0\u53ef\u663e\u793a\u7684\u6570\u636e
 label.no.errors=\u65e0\u6700\u8fd1\u51fa\u73b0\u7684\u9519\u8bef
 label.no.isos=\u65e0\u53ef\u7528 ISO
 label.no.items=\u65e0\u53ef\u7528\u9879\u76ee
-label.no.security.groups=\u65e0\u53ef\u7528\u5b89\u5168\u7ec4
-label.no.thanks=\u4e0d\uff0c\u8c22\u8c22
-label.no=\u5426
 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.num.cpu.cores=CPU \u5185\u6838\u6570
+label.no=\u5426
 label.number.of.clusters=\u7fa4\u96c6\u6570\u91cf
 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=\u533a\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.ok=\u786e\u5b9a
-label.optional=\u53ef\u9009
+label.optional=\u53ef\u9009\u7684
 label.order=\u6392\u5e8f
 label.os.preference=\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879
 label.os.type=\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b
@@ -852,50 +827,50 @@ label.please.wait=\u8bf7\u7a0d\u5019
 label.plugin.details=\u63d2\u4ef6\u8be6\u7ec6\u4fe1\u606f
 label.plugins=\u63d2\u4ef6
 label.pod.name=\u63d0\u4f9b\u70b9\u540d\u79f0
-label.pod=\u63d0\u4f9b\u70b9
 label.pods=\u63d0\u4f9b\u70b9
+label.pod=\u63d0\u4f9b\u70b9
 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.PreSetup=PreSetup
-label.prev=\u4e0a\u4e00\u9875
 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.limits=\u4e3b\u5b58\u50a8\u9650\u5236(G\u5b57\u8282)
 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.ip=\u4e13\u7528 IP \u5730\u5740
 label.private.ips=\u4e13\u7528 IP \u5730\u5740
+label.private.ip=\u4e13\u7528 IP \u5730\u5740
+label.privatekey=PKCS\#8 \u79c1\u94a5
 label.private.network=\u4e13\u7528\u7f51\u7edc
 label.private.port=\u4e13\u7528\u7aef\u53e3
 label.private.zone=\u4e13\u7528\u533a\u57df
-label.privatekey=PKCS\#8 \u79c1\u94a5
 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.project.view=\u9879\u76ee\u89c6\u56fe
-label.project=\u9879\u76ee
 label.projects=\u9879\u76ee
+label.project=\u9879\u76ee
+label.project.view=\u9879\u76ee\u89c6\u56fe
 label.protocol=\u534f\u8bae
 label.providers=\u63d0\u4f9b\u7a0b\u5e8f
 label.public.interface=\u516c\u7528\u63a5\u53e3
-label.public.ip=\u516c\u7528 IP \u5730\u5740
 label.public.ips=\u516c\u7528 IP \u5730\u5740
+label.public.ip=\u516c\u7528 IP \u5730\u5740
 label.public.network=\u516c\u7528\u7f51\u7edc
 label.public.port=\u516c\u7528\u7aef\u53e3
 label.public.traffic=\u516c\u5171\u6d41\u91cf
-label.public.zone=\u516c\u7528\u533a\u57df
 label.public=\u516c\u7528
+label.public.zone=\u516c\u7528\u533a\u57df
 label.purpose=\u76ee\u7684
 label.Pxe.server.type=Pxe \u670d\u52a1\u5668\u7c7b\u578b
 label.quickview=\u5feb\u901f\u67e5\u770b
-label.reboot=\u91cd\u65b0\u542f\u52a8
+label.reboot=\u00e9\u0087\u008d\u00e6\u0096\u00b0\u00e5\u0090\u00af\u00e5\u008a\u00a8
 label.recent.errors=\u6700\u8fd1\u51fa\u73b0\u7684\u9519\u8bef
 label.redundant.router.capability=\u5197\u4f59\u8def\u7531\u5668\u529f\u80fd
 label.redundant.router=\u5197\u4f59\u8def\u7531\u5668
@@ -918,24 +893,24 @@ label.remove.static.route=\u5220\u9664\u9759\u6001\u8def\u7531
 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.vpc=\u5220\u9664 VPC
-label.removing.user=\u6b63\u5728\u5220\u9664\u7528\u6237
 label.removing=\u6b63\u5728\u5220\u9664
-label.required=\u5fc5\u586b\u9879
+label.removing.user=\u6b63\u5728\u5220\u9664\u7528\u6237
+label.required=\u5fc5\u987b\u7684
 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.VPN.connection=\u91cd\u7f6e VPN \u8fde\u63a5
-label.resize.new.offering.id=\u65b0\u5efa\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.resize.new.offering.id=New Offering
+label.resize.new.size=New Size(GB)
+label.resize.shrink.ok=Shrink OK
 label.resource.limits=\u8d44\u6e90\u9650\u5236
 label.resource.state=\u8d44\u6e90\u72b6\u6001
-label.resource=\u8d44\u6e90
 label.resources=\u8d44\u6e90
+label.resource=\u8d44\u6e90
 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.restore=\u6062\u590d
 label.review=\u6838\u5bf9
 label.revoke.project.invite=\u64a4\u9500\u9080\u8bf7
 label.role=\u89d2\u8272
@@ -944,14 +919,14 @@ label.root.disk.offering=\u6839\u78c1\u76d8\u65b9\u6848
 label.round.robin=\u8f6e\u8be2\u7b97\u6cd5
 label.rules=\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.access_key=\u8bbf\u95ee\u952e
+label.s3.bucket=Bucket
 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.secret_key=\u5bc6\u94a5
-label.s3.socket_timeout=\u5957\u63a5\u5b57\u8d85\u65f6
-label.s3.use_https=\u4f7f\u7528 HTTPS
+label.s3.max_error_retry=\u6700\u5927\u9519\u8bef\u91cd\u8bd5
+label.s3.secret_key=\u00e5\u00af\u0086\u00e9\u0092\u00a5
+label.s3.socket_timeout=Socket\u8d85\u65f6
+label.s3.use_https=\u4f7f\u7528HTTPS
 label.saturday=\u661f\u671f\u516d
 label.save.and.continue=\u4fdd\u5b58\u5e76\u7ee7\u7eed
 label.save=\u4fdd\u5b58
@@ -959,16 +934,15 @@ label.saving.processing=\u6b63\u5728\u4fdd\u5b58...
 label.scope=\u8303\u56f4
 label.search=\u641c\u7d22
 label.secondary.storage.count=\u8f85\u52a9\u5b58\u50a8\u6c60
-label.secondary.storage.limits=\u8f85\u52a9\u5b58\u50a8\u9650\u5236(GiB)
+label.secondary.storage.limits=\u4e8c\u7ea7\u5b58\u50a8\u9650\u5236(G\u5b57\u8282)
+label.secondary.storage=\u4e8c\u7ea7\u5b58\u50a8
 label.secondary.storage.vm=\u8f85\u52a9\u5b58\u50a8 VM
-label.secondary.storage=\u8f85\u52a9\u5b58\u50a8
 label.secondary.used=\u5df2\u4f7f\u7528\u7684\u8f85\u52a9\u5b58\u50a8
 label.secret.key=\u5bc6\u94a5
 label.security.group.name=\u5b89\u5168\u7ec4\u540d\u79f0
-label.security.group=\u5b89\u5168\u7ec4
 label.security.groups.enabled=\u5df2\u542f\u7528\u5b89\u5168\u7ec4
-label.security.groups=\u5b89\u5168\u7ec4
-label.select-view=\u9009\u62e9\u89c6\u56fe
+label.security.groups=\u5b89\u5168\u5206\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\u533a\u57df
 label.select.instance.to.attach.volume.to=\u9009\u62e9\u8981\u5c06\u5377\u9644\u52a0\u5230\u7684\u5b9e\u4f8b
@@ -977,30 +951,31 @@ 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.tier=\u9009\u62e9\u5c42
-label.select.vm.for.static.nat=\u4e3a\u9759\u6001 NAT \u9009\u62e9 VM
 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=\u670d\u52a1\u65b9\u6848
 label.session.expired=\u4f1a\u8bdd\u5df2\u8fc7\u671f
-label.set.up.zone.type=\u8bbe\u7f6e\u533a\u57df\u7c7b\u578b
 label.setup.network=\u8bbe\u7f6e\u7f51\u7edc
-label.setup.zone=\u8bbe\u7f6e\u533a\u57df
 label.setup=\u8bbe\u7f6e
-label.shared=\u5df2\u5171\u4eab
+label.set.up.zone.type=\u8bbe\u7f6e\u533a\u57df\u7c7b\u578b
+label.setup.zone=\u8bbe\u7f6e\u533a\u57df
 label.SharedMountPoint=SharedMountPoint
+label.shared=\u5df2\u5171\u4eab
 label.show.ingress.rule=\u663e\u793a\u5165\u53e3\u89c4\u5219
 label.shutdown.provider=\u5173\u95ed\u63d0\u4f9b\u7a0b\u5e8f
-label.site.to.site.VPN=\u70b9\u5bf9\u70b9 VPN
+label.site.to.site.VPN=\u7ad9\u70b9\u5230\u7ad9\u70b9 VPN
 label.size=\u5927\u5c0f
 label.skip.guide=\u6211\u4ee5\u524d\u4f7f\u7528\u8fc7 CloudStack\uff0c\u8df3\u8fc7\u6b64\u6307\u5357
 label.snapshot.limits=\u5feb\u7167\u9650\u5236
 label.snapshot.name=\u5feb\u7167\u540d\u79f0
-label.snapshot.s=\u5feb\u7167
 label.snapshot.schedule=\u8bbe\u7f6e\u91cd\u73b0\u5feb\u7167
-label.snapshot=\u5feb\u7167
+label.snapshot.s=\u5feb\u7167
 label.snapshots=\u5feb\u7167
+label.snapshot=\u5feb\u7167
 label.source.nat=\u6e90 NAT
 label.source=\u6e90\u7b97\u6cd5
 label.specify.IP.ranges=\u6307\u5b9a IP \u8303\u56f4
@@ -1014,8 +989,8 @@ label.start.vlan=\u8d77\u59cb VLAN
 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.vm.details=\u9759\u6001 NAT VM \u8be6\u60c5
 label.static.nat=\u9759\u6001 NAT
+label.static.nat.vm.details=\u9759\u6001 NAT VM \u8be6\u60c5
 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>
@@ -1041,15 +1016,15 @@ label.sticky.postonly=postonly
 label.sticky.prefix=prefix
 label.sticky.request-learn=request-learn
 label.sticky.tablesize=\u8868\u5927\u5c0f
-label.stop=\u505c\u6b62
 label.stopped.vms=\u5df2\u505c\u6b62\u7684 VM
+label.stop=\u00e5\u0081\u009c\u00e6\u00ad\u00a2
 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.submit=\u63d0\u4ea4
 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
@@ -1059,9 +1034,9 @@ label.suspend.project=\u6682\u505c\u9879\u76ee
 label.system.capacity=\u7cfb\u7edf\u5bb9\u91cf
 label.system.offering=\u7cfb\u7edf\u65b9\u6848
 label.system.service.offering=\u7cfb\u7edf\u670d\u52a1\u65b9\u6848
+label.system.vms=\u7cfb\u7edf VM
 label.system.vm.type=\u7cfb\u7edf VM \u7c7b\u578b
 label.system.vm=\u7cfb\u7edf VM
-label.system.vms=\u7cfb\u7edf VM
 label.system.wide.capacity=\u5168\u7cfb\u7edf\u5bb9\u91cf
 label.tagged=\u5df2\u6807\u8bb0
 label.tags=\u6807\u7b7e
@@ -1076,14 +1051,14 @@ label.theme.lightblue=\u81ea\u5b9a\u4e49 - \u6de1\u84dd\u8272
 label.thursday=\u661f\u671f\u56db
 label.tier.details=\u5c42\u8be6\u7ec6\u4fe1\u606f
 label.tier=\u5c42
-label.time.zone=\u65f6\u533a
-label.time=\u65f6\u95f4
 label.timeout.in.second = \u8d85\u65f6(\u79d2)
 label.timeout=\u8d85\u65f6
+label.time=\u65f6\u95f4
+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.CPU=CPU \u603b\u91cf
 label.total.hosts=\u603b\u4e3b\u673a\u6570
 label.total.memory=\u5185\u5b58\u603b\u91cf
 label.total.of.ip=\u603b IP \u5730\u5740\u6570
@@ -1091,8 +1066,8 @@ label.total.of.vm=\u603b VM \u6570
 label.total.storage=\u5b58\u50a8\u603b\u91cf
 label.total.vms=\u603b VM \u6570
 label.traffic.label=\u6d41\u91cf\u6807\u7b7e
-label.traffic.type=\u6d41\u91cf\u7c7b\u578b
 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=\u7c7b\u578b
@@ -1100,18 +1075,18 @@ label.unavailable=\u4e0d\u53ef\u7528
 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.update.ssl.cert= \u66f4\u65b0 SSL \u8bc1\u4e66
+label.update.ssl= \u66f4\u65b0 SSL \u8bc1\u4e66
 label.updating=\u6b63\u5728\u66f4\u65b0
-label.upload.volume=\u4e0a\u8f7d\u5377
 label.upload=\u4e0a\u8f7d
+label.upload.volume=\u4e0a\u8f7d\u5377
 label.url=URL
 label.usage.interface=\u4f7f\u7528\u754c\u9762
-label.use.vm.ip=\u4f7f\u7528 VM IP\:
 label.used=\u5df2\u4f7f\u7528
-label.user=\u7528\u6237
 label.username=\u7528\u6237\u540d
-label.users=\u7528\u6237
+label.users=\u666e\u901a\u7528\u6237
+label.user=\u7528\u6237
+label.use.vm.ip=\u4f7f\u7528\u865a\u673aIP\:
 label.value=\u503c
 label.vcdcname=vCenter DC \u540d\u79f0
 label.vcenter.cluster=vCenter \u7fa4\u96c6
@@ -1124,47 +1099,47 @@ label.vcipaddress=vCenter IP \u5730\u5740
 label.version=\u7248\u672c
 label.view.all=\u67e5\u770b\u5168\u90e8
 label.view.console=\u67e5\u770b\u63a7\u5236\u53f0
+label.viewing=\u6b63\u5728\u67e5\u770b
 label.view.more=\u67e5\u770b\u66f4\u591a
 label.view=\u67e5\u770b
-label.viewing=\u6b63\u5728\u67e5\u770b
-label.virtual.appliance=\u865a\u62df\u8bbe\u5907
 label.virtual.appliances=\u865a\u62df\u8bbe\u5907
+label.virtual.appliance=\u865a\u62df\u8bbe\u5907
 label.virtual.machines=\u865a\u62df\u673a
 label.virtual.network=\u865a\u62df\u7f51\u7edc
-label.virtual.router=\u865a\u62df\u8def\u7531\u5668
 label.virtual.routers=\u865a\u62df\u8def\u7531\u5668
+label.virtual.router=\u865a\u62df\u8def\u7531\u5668
 label.vlan.id=VLAN ID
 label.vlan.range=VLAN \u8303\u56f4
 label.vlan=VLAN
 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.name=VM \u540d\u79f0
 label.vm.reboot=\u91cd\u65b0\u542f\u52a8
+label.VMs.in.tier=\u5c42\u4e2d\u7684 VM
+label.vmsnapshot.current=\u5f53\u524d\u6700\u65b0
+label.vmsnapshot.memory=\u5236\u4f5c\u5185\u5b58\u5feb\u7167
+label.vmsnapshot.parentname=\u6839
+label.vmsnapshot.type=\u00e7\u00b1\u00bb\u00e5\u009e\u008b
+label.vmsnapshot=\u865a\u673a\u5feb\u7167
 label.vm.start=\u542f\u52a8
 label.vm.state=VM \u72b6\u6001
 label.vm.stop=\u505c\u6b62
-label.VMFS.datastore=VMFS \u6570\u636e\u5b58\u50a8
-label.vmfs=VMFS
-label.VMs.in.tier=\u5c42\u4e2d\u7684 VM
 label.vms=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.vmware.traffic.label=VMware \u6d41\u91cf\u6807\u7b7e
 label.volgroup=\u5377\u7ec4
 label.volume.limits=\u5377\u9650\u5236
 label.volume.name=\u5377\u540d\u79f0
-label.volume=\u5377
 label.volumes=\u5377
+label.volume=\u5377
 label.vpc.id=VPC ID
 label.VPC.router.details=VPC \u8def\u7531\u5668\u8be6\u7ec6\u4fe1\u606f
 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.customer.gateway=VPN \u5ba2\u6237\u7f51\u5173
 label.VPN.gateway=VPN \u7f51\u5173
 label.vpn=VPN
 label.vsmctrlvlanid=\u63a7\u5236 VLAN ID
@@ -1187,17 +1162,17 @@ label.zone.step.1.title=\u6b65\u9aa4 1\: <strong>\u9009\u62e9\u4e00\u4e2a\u7f51\
 label.zone.step.2.title=\u6b65\u9aa4 2\: <strong>\u6dfb\u52a0\u4e00\u4e2a\u533a\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=\u533a\u57df
 label.zone.type=\u533a\u57df\u7c7b\u578b
-label.zone.wide=\u6574\u4e2a\u533a\u57df
 label.zone=\u533a\u57df
-label.zones=\u533a\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\u8f85\u52a9\u5b58\u50a8\u670d\u52a1\u5668(\u4f8b\u5982 VM \u6a21\u677f\u4e0e\u5feb\u7167)\u4e4b\u95f4\u7684\u6d41\u91cf
+label.zone.wide=\u6574\u4e2a\u533a\u57df
+label.zoneWizard.trafficType.guest=\u6765\u5bbe\u7f51\u7edc\: \u5ba2\u6237\u865a\u62df\u673a\u4e4b\u95f4\u7684\u7f51\u7edc\u6d41\u91cf
+label.zoneWizard.trafficType.management=\u7ba1\u7406\u7f51\: CloudStack\u5185\u90e8\u8d44\u6e90\u4e4b\u95f4\u7684\u7f51\u7edc\u6d41\u91cf, \u5305\u62ec\u4e0e\u7ba1\u7406\u670d\u52a1\u5668\u4ea4\u4e92\u7684\u4efb\u4f55\u7ec4\u4ef6, \u6bd4\u5982\u4e3b\u673a\u548cCloudStack\u7cfb\u7edf\u865a\u62df\u673a
+label.zoneWizard.trafficType.public=\u516c\u5171\u7f51\u7edc\: \u4e91\u73af\u5883\u4e2d\u865a\u62df\u673a\u4e0e\u56e0\u7279\u7f51\u4e4b\u95f4\u7684\u7f51\u7edc\u6d41\u91cf.
+label.zoneWizard.trafficType.storage=\u5b58\u50a8\u7f51\: \u4e3b\u5b58\u50a8\u4e0e\u4e8c\u7ea7\u5b58\u50a8\u670d\u52a1\u5668\u4e4b\u95f4\u7684\u6d41\u91cf, \u6bd4\u5982\u865a\u673a\u6a21\u677f\u548c\u5feb\u7167
 managed.state=\u6258\u7ba1\u72b6\u6001
-message.acquire.new.ip.vpc=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64 VPC \u83b7\u53d6\u4e00\u4e2a\u65b0 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\u4f60\u60f3\u8981\u4e3a\u6b64VPC\u83b7\u5f97\u65b0\u7684IP
 message.acquire.public.ip=\u8bf7\u9009\u62e9\u4e00\u4e2a\u8981\u4ece\u4e2d\u83b7\u53d6\u65b0 IP \u7684\u533a\u57df\u3002
 message.action.cancel.maintenance.mode=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u53d6\u6d88\u6b64\u7ef4\u62a4\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
@@ -1229,7 +1204,7 @@ message.action.destroy.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u9500
 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.physical.network=\u8bf7\u4f60\u786e\u8ba4\u662f\u662f\u5426\u9700\u8981\u7981\u7528\u8fd9\u4e2a\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\u533a\u57df\u3002
@@ -1238,7 +1213,7 @@ message.action.download.template=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e0
 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.physical.network=\u8bf7\u4f60\u786e\u8ba4\u662f\u662f\u5426\u9700\u8981\u542f\u7528\u8fd9\u4e2a\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\u533a\u57df\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
@@ -1262,42 +1237,42 @@ message.action.stop.router=\u6b64\u865a\u62df\u8def\u7531\u5668\u63d0\u4f9b\u768
 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.action.vmsnapshot.delete=\u8bf7\u786e\u8ba4\u4f60\u8981\u5220\u9664\u6b64\u865a\u673a\u7684\u5feb\u7167
+message.action.vmsnapshot.revert=\u6062\u590d\u865a\u673a\u5feb\u7167
 message.activate.project=\u662f\u5426\u786e\u5b9e\u8981\u6fc0\u6d3b\u6b64\u9879\u76ee?
-message.add.cluster.zone=\u5411\u533a\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.cluster=\u5411\u533a\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\u533a\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.add.firewall=\u5411\u533a\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\u533a\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\u533a\u57df\u4e2d\u7684\u516c\u7528\u7f51\u7edc\u6dfb\u52a0\u4e00\u4e2a IP \u8303\u56f4
-message.add.load.balancer.under.ip=\u5df2\u5728\u4ee5\u4e0b IP \u4e0b\u6dfb\u52a0\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219\:
+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\u533a\u57df\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u8d1f\u8f7d\u5e73\u8861\u5668
-message.add.network=\u4e3a\u533a\u57df <b><span id\="zone_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u7f51\u7edc 
+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\u533a\u57df\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7f51\u7edc\: <b><span id\="zone_name"></span></b>
 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\u533a\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\u533a\u57df\u6765\u8bf4\u5fc5\u987b\u552f\u4e00\u3002
 message.add.pod=\u4e3a\u533a\u57df <b><span id\="add_pod_zone_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u63d0\u4f9b\u70b9
-message.add.primary.storage=\u4e3a\u533a\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.storage=\u4e3a\u533a\u57df <b><span id\="zone_name"></span></b>\u3001\u63d0\u4f9b\u70b9 <b><span id\="pod_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\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\u533a\u57df\u6240\u9700\u7684\u4fe1\u606f\u3002
+message.add.region=\u8bf7\u6307\u5b9a\u9700\u8981\u7684\u4fe1\u606f\u4ee5\u6dfb\u52a0\u65b0\u7684\u533a\u57df
 message.add.secondary.storage=\u4e3a\u533a\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.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.additional.networks.desc=\u8bf7\u9009\u62e9\u865a\u62df\u673a\u8981\u8fde\u63a5\u5230\u7684\u5176\u4ed6\u7f51\u7edc\u3002
 message.advanced.mode.desc=\u5982\u679c\u60a8\u5e0c\u671b\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\u533a\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\u8f85\u52a9\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.s3=\u5df2\u914d\u7f6e\u652f\u6301S3\u7684\u4e8c\u7ea7\u5b58\u50a8. \u6ce8\u610f\: \u5f53\u4f60\u79bb\u5f00\u6b64\u9875\u9762, \u4f60\u5c06\u65e0\u6cd5\u518d\u6b21\u914d\u7f6eS3.
 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
@@ -1324,9 +1299,9 @@ message.confirm.remove.IP.range=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220
 message.confirm.shutdown.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5173\u95ed\u6b64\u63d0\u4f9b\u7a0b\u5e8f
 message.copy.iso.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06 ISO \u590d\u5236\u5230
 message.copy.template=\u5c06\u6a21\u677f <b id\="copy_template_name_text">XXX</b> \u4ece\u533a\u57df <b id\="copy_template_source_zone_text"></b> \u590d\u5236\u5230
-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.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\u7684\u6a21\u677f\: <b><span id\="volume_name"></span></b>\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
@@ -1336,7 +1311,6 @@ message.creating.secondary.storage=\u6b63\u5728\u521b\u5efa\u8f85\u52a9\u5b58\u5
 message.creating.zone=\u6b63\u5728\u521b\u5efa\u533a\u57df
 message.decline.invitation=\u662f\u5426\u786e\u5b9e\u8981\u62d2\u7edd\u6b64\u9879\u76ee\u9080\u8bf7?
 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
@@ -1352,7 +1326,7 @@ message.desc.secondary.storage=\u6bcf\u4e2a\u533a\u57df\u4e2d\u5fc5\u987b\u81f3\
 message.desc.zone=\u533a\u57df\u662f CloudStack \u4e2d\u6700\u5927\u7684\u7ec4\u7ec7\u5355\u4f4d\uff0c\u4e00\u4e2a\u533a\u57df\u901a\u5e38\u4e0e\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u76f8\u5bf9\u5e94\u3002\u533a\u57df\u53ef\u63d0\u4f9b\u7269\u7406\u9694\u79bb\u548c\u5197\u4f59\u3002\u4e00\u4e2a\u533a\u57df\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u63d0\u4f9b\u70b9\u4ee5\u53ca\u7531\u533a\u57df\u4e2d\u7684\u6240\u6709\u63d0\u4f9b\u70b9\u5171\u4eab\u7684\u4e00\u4e2a\u8f85\u52a9\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.account=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u5e10\u6237\u3002\u901a\u8fc7\u7981\u7528\u6b64\u5e10\u6237\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 VPN \u8bbf\u95ee\u3002
@@ -1366,11 +1340,11 @@ message.edit.confirm=\u8bf7\u5148\u786e\u8ba4\u60a8\u6240\u505a\u7684\u66f4\u653
 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 VPN \u8bbf\u95ee\u529f\u80fd\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 VPN \u8bbf\u95ee\u3002
-message.enabled.vpn.ip.sec=\u60a8\u7684 IPSec \u9884\u5171\u4eab\u5bc6\u94a5
-message.enabled.vpn=\u60a8\u7684 VPN \u8bbf\u95ee\u529f\u80fd\u5f53\u524d\u5df2\u542f\u7528\uff0c\u53ef\u4ee5\u901a\u8fc7 IP \u8fdb\u884c\u8bbf\u95ee
 message.enabling.security.group.provider=\u6b63\u5728\u542f\u7528\u5b89\u5168\u7ec4\u63d0\u4f9b\u7a0b\u5e8f
 message.enabling.zone=\u6b63\u5728\u542f\u7528\u533a\u57df
 message.enter.token=\u8bf7\u8f93\u5165\u60a8\u5728\u9080\u8bf7\u7535\u5b50\u90ae\u4ef6\u4e2d\u6536\u5230\u7684\u4ee4\u724c\u3002
@@ -1383,9 +1357,9 @@ message.installWizard.copy.whatIsAHost=\u4e3b\u673a\u662f\u6307\u4e00\u53f0\u8ba
 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\u533a\u57df\u4e2d\u3002\u6bcf\u4e2a\u533a\u57df\u4e2d\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u63d0\u4f9b\u70b9\uff1b\u5728\u57fa\u672c\u5b89\u88c5\u4e2d\uff0c\u60a8\u7684\u533a\u57df\u4e2d\u5c06\u4ec5\u5305\u542b\u4e00\u4e2a\u63d0\u4f9b\u70b9\u3002
 message.installWizard.copy.whatIsAZone=\u533a\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\u533a\u57df\uff0c\u4f46\u662f\u4e00\u4e2a\u533a\u57df\u901a\u5e38\u4e0e\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u76f8\u5bf9\u5e94\u3002\u5c06\u57fa\u7840\u67b6\u6784\u7f16\u7ec4\u5230\u533a\u57df\u4e2d\u7684\u597d\u5904\u662f\u53ef\u4ee5\u63d0\u4f9b\u7269\u7406\u9694\u79bb\u548c\u5197\u4f59\u3002\u4f8b\u5982\uff0c\u6bcf\u4e2a\u533a\u57df\u90fd\u53ef\u4ee5\u62e5\u6709\u5404\u81ea\u7684\u7535\u6e90\u4f9b\u5e94\u548c\u7f51\u7edc\u4e0a\u884c\u65b9\u6848\uff0c\u5e76\u4e14\u5404\u533a\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\u5171\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\u8f85\u52a9\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.whatIsPrimaryStorage=CloudStack&\#8482; \u4e91\u57fa\u7840\u67b6\u6784\u4f7f\u7528\u4ee5\u4e0b\u4e24\u79cd\u7c7b\u578b\u7684\u5b58\u50a8\: \u4e3b\u5b58\u50a8\u548c\u8f85\u52a9\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=\u8f85\u52a9\u5b58\u50a8\u4e0e\u533a\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.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
@@ -1415,7 +1389,7 @@ message.instanceWizard.noTemplates=\u60a8\u6ca1\u6709\u4efb\u4f55\u53ef\u7528\u6
 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=\u5305\u542b\u64cd\u4f5c\u7cfb\u7edf\u7684\u6570\u636e\u6216\u53ef\u542f\u52a8\u4ecb\u8d28\u7684\u78c1\u76d8\u6620\u50cf
 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.vm.on.private.network=\u662f\u5426\u8981\u5728\u60a8\u7684\u79c1\u4eba\u4e13\u7528\u7f51\u7edc\u4e2d\u542f\u52a8\u5b9e\u4f8b?
 message.launch.zone=\u533a\u57df\u5df2\u51c6\u5907\u5c31\u7eea\uff0c\u53ef\u968f\u65f6\u542f\u52a8\uff1b\u8bf7\u7ee7\u7eed\u6267\u884c\u4e0b\u4e00\u6b65\u9aa4\u3002
 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
@@ -1446,14 +1420,14 @@ message.project.invite.sent=\u53d1\u9001\u7ed9\u7528\u6237\u7684\u9080\u8bf7\uff
 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.redirecting.region=\u6b63\u5728\u91cd\u5b9a\u5411\u5230\u533a\u57df...
-message.remove.region=\u662f\u5426\u786e\u5b9e\u8981\u4ece\u6b64\u7ba1\u7406\u670d\u52a1\u5668\u4e2d\u5220\u9664\u6b64\u533a\u57df?
+message.remove.region=\u4f60\u786e\u5b9a\u60f3\u8981\u4ece\u7ba1\u7406\u670d\u52a1\u5668\u5220\u9664\u6b64\u533a\u57df\u5417?
 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.mgmt.usage.server=\u4e3a\u4e86\u4f7f\u4f60\u7684\u65b0\u8bbe\u7f6e\u751f\u6548\uff0c\u8bf7\u91cd\u65b0\u542f\u52a8\u4f60\u7684\u7ba1\u7406\u670d\u52a1\u5668\u548c\u4f7f\u7528\u670d\u52a1\u5668\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=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8 VPC
 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)
@@ -1497,13 +1471,13 @@ message.vm.create.template.confirm=\u521b\u5efa\u6a21\u677f\u5c06\u81ea\u52a8\u9
 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.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.you.must.have.at.least.one.physical.network=\u60a8\u5fc5\u987b\u81f3\u5c11\u62e5\u6709\u4e00\u4e2a\u7269\u7406\u7f51\u7edc
-message.zone.creation.complete.would.you.like.to.enable.this.zone=\u5df2\u5b8c\u6210\u521b\u5efa\u533a\u57df\u3002\u662f\u5426\u8981\u542f\u7528\u6b64\u533a\u57df?
 message.Zone.creation.complete=\u5df2\u5b8c\u6210\u521b\u5efa\u533a\u57df
+message.zone.creation.complete.would.you.like.to.enable.this.zone=\u5df2\u5b8c\u6210\u521b\u5efa\u533a\u57df\u3002\u662f\u5426\u8981\u542f\u7528\u6b64\u533a\u57df?
 message.zone.no.network.selection=\u6240\u9009\u533a\u57df\u65e0\u4efb\u4f55\u7f51\u7edc\u9009\u9879\u3002
 message.zone.step.1.desc=\u8bf7\u4e3a\u60a8\u7684\u533a\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\u533a\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\u533a\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\u4e3b\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u5fc5\u987b\u5728\u5b8c\u6210\u521b\u5efa\u540e\u5c06\u4e3b\u5b58\u50a8\u6dfb\u52a0\u5230\u6b64\u533a\u57df\u4e2d\u3002<br/><br/>2. \u5982\u679c\u9700\u8981\u5728\u672c\u5730\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u5fc5\u987b\u5c06 system.vm.use.local.storage \u8bbe\u7f6e\u4e3a true\u3002<br/><br/><br/>\u662f\u5426\u8981\u7ee7\u7eed?
+message.zoneWizard.enable.local.storage=\u8b66\u544a\: \u5982\u679c\u4e3a\u6b64\u533a\u57df\u542f\u7528\u4e86\u672c\u5730\u5b58\u50a8\uff0c\u5219\u5fc5\u987b\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u5e0c\u671b\u542f\u52a8\u7cfb\u7edf VM \u7684\u4f4d\u7f6e\:<br/><br/>1. \u5982\u679c\u8981\u5728\u4e3b\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u9700\u8981\u5728\u521b\u5efa\u540e\u5c06\u4e3b\u5b58\u50a8\u6dfb\u52a0\u5230\u6b64\u533a\u57df\u4e2d\u3002\u6b64\u5916\uff0c\u8fd8\u5fc5\u987b\u542f\u52a8\u5904\u4e8e\u7981\u7528\u72b6\u6001\u7684\u533a\u57df\u3002<br/><br/>2. \u5982\u679c\u8981\u5728\u672c\u5730\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u9700\u8981\u5148\u5c06 system.vm.use.local.storage \u8bbe\u7f6e\u4e3a True\uff0c\u7136\u540e\u518d\u542f\u7528\u6b64\u533a\u57df\u3002<br/><br/><br/>\u662f\u5426\u8981\u7ee7\u7eed?
 mode=\u6a21\u5f0f
 network.rate=\u7f51\u7edc\u901f\u7387
 notification.reboot.instance=\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b
@@ -1521,14 +1495,14 @@ state.Creating=\u6b63\u5728\u521b\u5efa
 state.Declined=\u5df2\u62d2\u7edd
 state.Destroyed=\u5df2\u9500\u6bc1
 state.Disabled=\u5df2\u7981\u7528
-state.Enabled=\u5df2\u542f\u7528
 state.enabled=\u5df2\u542f\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.ready=\u5df2\u5c31\u7eea
+state.Ready=\u5df2\u5c31\u7eea
 state.Running=\u6b63\u5728\u8fd0\u884c
 state.Starting=\u6b63\u5728\u542f\u52a8
 state.Stopped=\u5df2\u505c\u6b62


[06/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
fix can't find host ip address on Mac OS


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

Branch: refs/heads/vmsync
Commit: b59b1b4c9341eb1a71845eb144426bd1bb7e9cca
Parents: 810c64e
Author: Edison Su <su...@gmail.com>
Authored: Tue Jul 2 15:19:32 2013 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Wed Jul 3 14:34:37 2013 -0700

----------------------------------------------------------------------
 utils/src/com/cloud/utils/net/NetUtils.java | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b59b1b4c/utils/src/com/cloud/utils/net/NetUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/NetUtils.java b/utils/src/com/cloud/utils/net/NetUtils.java
index 6099379..68f4965 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -26,14 +26,7 @@ import java.net.NetworkInterface;
 import java.net.SocketException;
 import java.net.URI;
 import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Formatter;
-import java.util.List;
-import java.util.Random;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -46,6 +39,7 @@ import com.googlecode.ipv6.IPv6Network;
 import com.cloud.utils.IteratorUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.script.Script;
+import org.apache.commons.lang.SystemUtils;
 
 public class NetUtils {
     protected final static Logger s_logger = Logger.getLogger(NetUtils.class);
@@ -158,8 +152,10 @@ public class NetUtils {
         return false;
     }
 
+
+
     public static String getDefaultHostIp() {
-        if(isWindows()) {
+        if(SystemUtils.IS_OS_WINDOWS) {
             Pattern pattern = Pattern.compile("\\s*0.0.0.0\\s*0.0.0.0\\s*(\\S*)\\s*(\\S*)\\s*");
             try {
                 Process result = Runtime.getRuntime().exec("route print -4");
@@ -197,6 +193,10 @@ public class NetUtils {
     }
 
     public static String getDefaultEthDevice() {
+        if (SystemUtils.IS_OS_MAC) {
+            String defDev = Script.runSimpleBashScript("/sbin/route -n get default | grep interface | awk '{print $2}'");
+            return defDev;
+        }
         String defaultRoute = Script.runSimpleBashScript("/sbin/route | grep default");
 
         if (defaultRoute == null) {
@@ -212,6 +212,8 @@ public class NetUtils {
         return defaultRouteList[7];
     }
 
+
+
     public static InetAddress getFirstNonLoopbackLocalInetAddress() {
         InetAddress[] addrs = getAllLocalInetAddresses();
         if (addrs != null) {


[03/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
Update L10N strings from Transifex to repo


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

Branch: refs/heads/vmsync
Commit: 0a241b8ea8e1fe7fde0a52bfe0939479a92aac5d
Parents: ab5f580
Author: Milamber <mi...@apache.org>
Authored: Wed Jul 3 20:46:31 2013 +0100
Committer: Milamber <mi...@apache.org>
Committed: Wed Jul 3 20:52:32 2013 +0100

----------------------------------------------------------------------
 .../classes/resources/messages_ar.properties    |   2 +-
 .../classes/resources/messages_fr_FR.properties |  13 +-
 .../classes/resources/messages_it_IT.properties |   6 +-
 .../classes/resources/messages_ja.properties    | 540 ++++++++-----------
 .../classes/resources/messages_ko_KR.properties |   2 -
 .../classes/resources/messages_pt_BR.properties |   4 +-
 .../classes/resources/messages_ru_RU.properties |   2 -
 .../classes/resources/messages_zh_CN.properties | 422 +++++++--------
 8 files changed, 449 insertions(+), 542 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_ar.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ar.properties b/client/WEB-INF/classes/resources/messages_ar.properties
index 5b3afea..bb3fe83 100644
--- a/client/WEB-INF/classes/resources/messages_ar.properties
+++ b/client/WEB-INF/classes/resources/messages_ar.properties
@@ -251,7 +251,7 @@ message.pending.projects.1=\u0644\u062f\u064a\u0643 \u062f\u0639\u0648\u0627\u06
 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.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

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_fr_FR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_fr_FR.properties b/client/WEB-INF/classes/resources/messages_fr_FR.properties
index 33ffcfc..284fde8 100644
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ b/client/WEB-INF/classes/resources/messages_fr_FR.properties
@@ -50,6 +50,7 @@ label.account.name=Nom du compte
 label.accounts=Comptes
 label.account.specific=Sp\u00e9cifique au compte
 label.acquire.new.ip=Acqu\u00e9rir une nouvelle adresse IP
+label.acquire.new.secondary.ip=Acqu\u00e9rir une nouvelle IP secondaire
 label.action.attach.disk.processing=Rattachement du Disque...
 label.action.attach.disk=Rattacher un disque
 label.action.attach.iso.processing=Rattachement de l\\'image ISO
@@ -240,7 +241,7 @@ 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.affinity.group=Ajouter nouvea groupe d\\'affinit\u00e9
+label.add.affinity.group=Ajouter nouveau groupe d\\'affinit\u00e9
 label.add=Ajouter
 label.add.BigSwitchVns.device=Ajouter contr\u00f4leur BigSwitch Vns
 label.add.by=Ajout\u00e9 par
@@ -316,7 +317,7 @@ 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=Groups d\\'Affinit\u00e9
+label.affinity.groups=Groupes d\\'Affinit\u00e9
 label.agent.password=Mot de passe Agent
 label.agent.username=Identifiant Agent
 label.agree=Accepter
@@ -390,7 +391,6 @@ 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
@@ -462,10 +462,14 @@ label.disable.vpn=D\u00e9sactiver le VPN
 label.disabling.vpn.access=D\u00e9sactiver l\\'acc\u00e8s VPN
 label.disk.allocated=Disque Allou\u00e9
 label.disk.offering=Offre de Disque
+label.disk.read.bytes=Lecture Disque (Octets)
+label.disk.read.io=Lecture Disque (IO)
 label.disk.size.gb=Taille du disque (en Go)
 label.disk.size=Taille du disque
 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 commun
 label.display.text=Texte affich\u00e9
 label.dns.1=DNS 1
@@ -653,7 +657,6 @@ label.launch.zone=D\u00e9marrer la zone
 label.LB.isolation=R\u00e9partition de charge isol\u00e9e
 label.least.connections=Le moins de connexions
 label.level=Niveau
-label.linklocal.ip=Adresse IP de lien local
 label.load.balancer=R\u00e9partiteur de charge
 label.load.balancing.policies=R\u00e8gles de r\u00e9partition de charge
 label.load.balancing=R\u00e9partition de charge
@@ -1113,6 +1116,7 @@ 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.appliances=Appliances Virtuelles
@@ -1183,6 +1187,7 @@ label.zoneWizard.trafficType.public=Public \: Trafic entre Internet et les machi
 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.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_it_IT.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_it_IT.properties b/client/WEB-INF/classes/resources/messages_it_IT.properties
index 6ae5bd8..eab29b9 100644
--- a/client/WEB-INF/classes/resources/messages_it_IT.properties
+++ b/client/WEB-INF/classes/resources/messages_it_IT.properties
@@ -212,6 +212,7 @@ 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.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.activate.project=Attivare il Progetto
@@ -220,10 +221,14 @@ 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.cluster=Aggiunta Cluster
 label.add.compute.offering=Aggiungere una offerta computazionale
+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.additional.networks=Network Aggiuntivi
 label.add.netScaler.device=Aggiungere device Netscaler
 label.add.network.ACL=Aggiungere le ACL di rete
@@ -282,7 +287,6 @@ label.community=Community
 label.compute.and.storage=Computazione e Storage
 label.compute=Compute
 label.compute.offering=Offerta computazionale
-label.compute.offerings=Offerte computazionali
 label.configuration=Configurazione
 label.configure=Configurare
 label.configure.network.ACLs=Configurare le ACL di rete


[09/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
Moved HostAllocator and PodAllocator from server to api package, where they are supposed to be.  In the process, I had to change the VO objects used by these two itnerfaces to interface equivalent.  This makes sense because there's really no reasons why allocators require write access to the database.  One of the files have been reformatted because it contained a bunch of tabs instead of spaces for indentation.


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

Branch: refs/heads/vmsync
Commit: 43ab9506ab5d768d74131140f7d57bb5ddb89a71
Parents: 410dff9
Author: Alex Huang <al...@gmail.com>
Authored: Wed Jul 3 17:48:31 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Wed Jul 3 17:48:53 2013 -0700

----------------------------------------------------------------------
 .../agent/manager/allocator/HostAllocator.java  |  85 +++++
 .../agent/manager/allocator/PodAllocator.java   |  33 ++
 .../manager/allocator/impl/RandomAllocator.java |   5 +-
 .../agent/manager/allocator/HostAllocator.java  |  85 -----
 .../agent/manager/allocator/PodAllocator.java   |  35 --
 .../allocator/impl/FirstFitAllocator.java       | 378 ++++++++++---------
 .../allocator/impl/TestingAllocator.java        |   8 +-
 .../impl/UserConcentratedAllocator.java         |  30 +-
 .../src/com/cloud/capacity/CapacityManager.java |   5 +-
 .../com/cloud/capacity/CapacityManagerImpl.java |   7 +-
 .../src/com/cloud/resource/ResourceManager.java |  94 ++---
 .../com/cloud/resource/ResourceManagerImpl.java |  24 +-
 .../src/com/cloud/storage/StorageManager.java   |   5 +-
 .../com/cloud/storage/StorageManagerImpl.java   |  35 +-
 .../com/cloud/storage/VolumeManagerImpl.java    |  41 +-
 .../cloud/resource/MockResourceManagerImpl.java |  24 +-
 16 files changed, 444 insertions(+), 450 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/api/src/com/cloud/agent/manager/allocator/HostAllocator.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/manager/allocator/HostAllocator.java b/api/src/com/cloud/agent/manager/allocator/HostAllocator.java
new file mode 100755
index 0000000..fcd1fc1
--- /dev/null
+++ b/api/src/com/cloud/agent/manager/allocator/HostAllocator.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.manager.allocator;
+
+import java.util.List;
+
+import com.cloud.deploy.DeploymentPlan;
+import com.cloud.deploy.DeploymentPlanner.ExcludeList;
+import com.cloud.host.Host;
+import com.cloud.host.Host.Type;
+import com.cloud.offering.ServiceOffering;
+import com.cloud.utils.component.Adapter;
+import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.VirtualMachineProfile;
+
+public interface HostAllocator extends Adapter {
+
+	/**
+	 * @param UserVm vm
+	 * @param ServiceOffering offering
+	 **/
+	boolean isVirtualMachineUpgradable(final VirtualMachine vm, final ServiceOffering offering);
+
+	/**
+	* Determines which physical hosts are suitable to
+	* allocate the guest virtual machines on
+	* 
+	* @param VirtualMachineProfile vmProfile
+	* @param DeploymentPlan plan
+	* @param GuestType type
+	* @param ExcludeList avoid
+	* @param int returnUpTo (use -1 to return all possible hosts)
+	* @return List<Host> List of hosts that are suitable for VM allocation
+	**/
+	
+	public List<Host> allocateTo(VirtualMachineProfile<?extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo);
+	
+    /**
+    * Determines which physical hosts are suitable to
+    * allocate the guest virtual machines on
+    * 
+    * @param VirtualMachineProfile vmProfile
+    * @param DeploymentPlan plan
+    * @param GuestType type
+    * @param ExcludeList avoid
+    * @param int returnUpTo (use -1 to return all possible hosts)
+    * @param boolean considerReservedCapacity (default should be true, set to false if host capacity calculation should not look at reserved capacity)
+    * @return List<Host> List of hosts that are suitable for VM allocation
+    **/
+    
+    public List<Host> allocateTo(VirtualMachineProfile<?extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo, boolean considerReservedCapacity);
+
+    /**
+     * Determines which physical hosts are suitable to
+     * allocate the guest virtual machines on
+     *
+     * @param VirtualMachineProfile vmProfile
+     * @param DeploymentPlan plan
+     * @param GuestType type
+     * @param ExcludeList avoid
+     * @param List<HostVO> hosts
+     * @param int returnUpTo (use -1 to return all possible hosts)
+     * @param boolean considerReservedCapacity (default should be true, set to false if host capacity calculation should not look at reserved capacity)
+     * @return List<Host> List of hosts that are suitable for VM allocation
+     **/
+    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, List<? extends Host> hosts,
+            int returnUpTo, boolean considerReservedCapacity);
+
+     public static int RETURN_UPTO_ALL = -1;
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/api/src/com/cloud/agent/manager/allocator/PodAllocator.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/manager/allocator/PodAllocator.java b/api/src/com/cloud/agent/manager/allocator/PodAllocator.java
new file mode 100755
index 0000000..44cf640
--- /dev/null
+++ b/api/src/com/cloud/agent/manager/allocator/PodAllocator.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 com.cloud.agent.manager.allocator;
+
+import java.util.Set;
+
+import com.cloud.dc.DataCenter;
+import com.cloud.dc.Pod;
+import com.cloud.offering.ServiceOffering;
+import com.cloud.template.VirtualMachineTemplate;
+import com.cloud.utils.Pair;
+import com.cloud.utils.component.Adapter;
+import com.cloud.vm.VirtualMachineProfile;
+
+public interface PodAllocator extends Adapter {
+    Pair<Pod, Long> allocateTo(VirtualMachineTemplate template, ServiceOffering offering, DataCenter dc, long userId, Set<Long> avoids);
+    
+    Pod allocateTo(VirtualMachineProfile vm, DataCenter dc, Set<? extends Pod> avoids);
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java
----------------------------------------------------------------------
diff --git a/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java b/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java
index 8243f3a..303e438 100755
--- a/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java
+++ b/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java
@@ -11,7 +11,7 @@
 // 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 
+// KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
 package com.cloud.agent.manager.allocator.impl;
@@ -19,7 +19,6 @@ package com.cloud.agent.manager.allocator.impl;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 
 import javax.ejb.Local;
 import javax.inject.Inject;
@@ -55,7 +54,7 @@ public class RandomAllocator extends AdapterBase implements HostAllocator {
 
     @Override
     public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
-            ExcludeList avoid, List<HostVO> hosts, int returnUpTo, boolean considerReservedCapacity) {
+            ExcludeList avoid, List<? extends Host> hosts, int returnUpTo, boolean considerReservedCapacity) {
         long dcId = plan.getDataCenterId();
         Long podId = plan.getPodId();
         Long clusterId = plan.getClusterId();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/agent/manager/allocator/HostAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/HostAllocator.java b/server/src/com/cloud/agent/manager/allocator/HostAllocator.java
deleted file mode 100755
index 6700f22..0000000
--- a/server/src/com/cloud/agent/manager/allocator/HostAllocator.java
+++ /dev/null
@@ -1,85 +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.agent.manager.allocator;
-
-import java.util.List;
-
-import com.cloud.deploy.DeploymentPlan;
-import com.cloud.deploy.DeploymentPlanner.ExcludeList;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.Host.Type;
-import com.cloud.offering.ServiceOffering;
-import com.cloud.utils.component.Adapter;
-import com.cloud.vm.VirtualMachine;
-import com.cloud.vm.VirtualMachineProfile;
-
-public interface HostAllocator extends Adapter {
-
-	/**
-	 * @param UserVm vm
-	 * @param ServiceOffering offering
-	 **/
-	boolean isVirtualMachineUpgradable(final VirtualMachine vm, final ServiceOffering offering);
-
-	/** 
-	* Determines which physical hosts are suitable to 
-	* allocate the guest virtual machines on 
-	* 
-	* @param VirtualMachineProfile vmProfile
-	* @param DeploymentPlan plan
-	* @param GuestType type
-	* @param ExcludeList avoid
-	* @param int returnUpTo (use -1 to return all possible hosts)
-	* @return List<Host> List of hosts that are suitable for VM allocation
-	**/ 
-	
-	public List<Host> allocateTo(VirtualMachineProfile<?extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo);
-	
-    /** 
-    * Determines which physical hosts are suitable to 
-    * allocate the guest virtual machines on 
-    * 
-    * @param VirtualMachineProfile vmProfile
-    * @param DeploymentPlan plan
-    * @param GuestType type
-    * @param ExcludeList avoid
-    * @param int returnUpTo (use -1 to return all possible hosts)
-    * @param boolean considerReservedCapacity (default should be true, set to false if host capacity calculation should not look at reserved capacity)
-    * @return List<Host> List of hosts that are suitable for VM allocation
-    **/ 
-    
-    public List<Host> allocateTo(VirtualMachineProfile<?extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo, boolean considerReservedCapacity);
-
-    /**
-     * Determines which physical hosts are suitable to
-     * allocate the guest virtual machines on
-     *
-     * @param VirtualMachineProfile vmProfile
-     * @param DeploymentPlan plan
-     * @param GuestType type
-     * @param ExcludeList avoid
-     * @param List<HostVO> hosts
-     * @param int returnUpTo (use -1 to return all possible hosts)
-     * @param boolean considerReservedCapacity (default should be true, set to false if host capacity calculation should not look at reserved capacity)
-     * @return List<Host> List of hosts that are suitable for VM allocation
-     **/
-     public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, List<HostVO> hosts, int returnUpTo, boolean considerReservedCapacity);
-
-     public static int RETURN_UPTO_ALL = -1;
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/agent/manager/allocator/PodAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/PodAllocator.java b/server/src/com/cloud/agent/manager/allocator/PodAllocator.java
deleted file mode 100755
index eb5a9db..0000000
--- a/server/src/com/cloud/agent/manager/allocator/PodAllocator.java
+++ /dev/null
@@ -1,35 +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.agent.manager.allocator;
-
-import java.util.Set;
-
-import com.cloud.dc.DataCenter;
-import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.HostPodVO;
-import com.cloud.dc.Pod;
-import com.cloud.service.ServiceOfferingVO;
-import com.cloud.template.VirtualMachineTemplate;
-import com.cloud.utils.Pair;
-import com.cloud.utils.component.Adapter;
-import com.cloud.vm.VirtualMachineProfile;
-
-public interface PodAllocator extends Adapter {
-    Pair<HostPodVO, Long> allocateTo(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long userId, Set<Long> avoids);
-    
-    Pod allocateTo(VirtualMachineProfile vm, DataCenter dc, Set<? extends Pod> avoids);
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
index b6286aa..4329c70 100755
--- a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
@@ -26,16 +26,15 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import com.cloud.dc.ClusterDetailsDao;
-import com.cloud.dc.ClusterDetailsVO;
-import com.cloud.dc.dao.ClusterDao;
-import com.cloud.org.Cluster;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import com.cloud.agent.manager.allocator.HostAllocator;
 import com.cloud.capacity.CapacityManager;
 import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.dc.ClusterDetailsDao;
+import com.cloud.dc.ClusterDetailsVO;
+import com.cloud.dc.dao.ClusterDao;
 import com.cloud.deploy.DeploymentPlan;
 import com.cloud.deploy.DeploymentPlanner.ExcludeList;
 import com.cloud.host.DetailVO;
@@ -45,6 +44,7 @@ import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
 import com.cloud.host.dao.HostDetailsDao;
 import com.cloud.offering.ServiceOffering;
+import com.cloud.org.Cluster;
 import com.cloud.resource.ResourceManager;
 import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.GuestOSCategoryVO;
@@ -67,52 +67,67 @@ import com.cloud.vm.dao.VMInstanceDao;
  * An allocator that tries to find a fit on a computing host.  This allocator does not care whether or not the host supports routing.
  */
 @Component
-@Local(value={HostAllocator.class})
+@Local(value = {HostAllocator.class})
 public class FirstFitAllocator extends AdapterBase implements HostAllocator {
     private static final Logger s_logger = Logger.getLogger(FirstFitAllocator.class);
-    @Inject HostDao _hostDao = null;
-    @Inject HostDetailsDao _hostDetailsDao = null;
-    @Inject UserVmDao _vmDao = null;
-    @Inject ServiceOfferingDao _offeringDao = null;
-    @Inject DomainRouterDao _routerDao = null;
-    @Inject ConsoleProxyDao _consoleProxyDao = null;
-    @Inject SecondaryStorageVmDao _secStorgaeVmDao = null;
-    @Inject ConfigurationDao _configDao = null;
-    @Inject GuestOSDao _guestOSDao = null;
-    @Inject GuestOSCategoryDao _guestOSCategoryDao = null;
-    @Inject VMInstanceDao _vmInstanceDao = null;
-    @Inject ResourceManager _resourceMgr;
-    @Inject ClusterDao _clusterDao;
-    @Inject ClusterDetailsDao _clusterDetailsDao;
+    @Inject
+    HostDao _hostDao = null;
+    @Inject
+    HostDetailsDao _hostDetailsDao = null;
+    @Inject
+    UserVmDao _vmDao = null;
+    @Inject
+    ServiceOfferingDao _offeringDao = null;
+    @Inject
+    DomainRouterDao _routerDao = null;
+    @Inject
+    ConsoleProxyDao _consoleProxyDao = null;
+    @Inject
+    SecondaryStorageVmDao _secStorgaeVmDao = null;
+    @Inject
+    ConfigurationDao _configDao = null;
+    @Inject
+    GuestOSDao _guestOSDao = null;
+    @Inject
+    GuestOSCategoryDao _guestOSCategoryDao = null;
+    @Inject
+    VMInstanceDao _vmInstanceDao = null;
+    @Inject
+    ResourceManager _resourceMgr;
+    @Inject
+    ClusterDao _clusterDao;
+    @Inject
+    ClusterDetailsDao _clusterDetailsDao;
     float _factor = 1;
     boolean _checkHvm = true;
     protected String _allocationAlgorithm = "random";
-    @Inject CapacityManager _capacityMgr;
+    @Inject
+    CapacityManager _capacityMgr;
 
-
-	@Override
-	public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
-			ExcludeList avoid, int returnUpTo) {
-	    return allocateTo(vmProfile, plan, type, avoid, returnUpTo, true);
-	}
+    @Override
+    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
+            ExcludeList avoid, int returnUpTo) {
+        return allocateTo(vmProfile, plan, type, avoid, returnUpTo, true);
+    }
 
     @Override
-    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo, boolean considerReservedCapacity) {
+    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo,
+            boolean considerReservedCapacity) {
 
-	    long dcId = plan.getDataCenterId();
-		Long podId = plan.getPodId();
-		Long clusterId = plan.getClusterId();
-		ServiceOffering offering = vmProfile.getServiceOffering();
-		VMTemplateVO template = (VMTemplateVO)vmProfile.getTemplate();
-		Account account = vmProfile.getOwner();
+        long dcId = plan.getDataCenterId();
+        Long podId = plan.getPodId();
+        Long clusterId = plan.getClusterId();
+        ServiceOffering offering = vmProfile.getServiceOffering();
+        VMTemplateVO template = (VMTemplateVO)vmProfile.getTemplate();
+        Account account = vmProfile.getOwner();
 
         if (type == Host.Type.Storage) {
             // FirstFitAllocator should be used for user VMs only since it won't care whether the host is capable of routing or not
-        	return new ArrayList<Host>();
+            return new ArrayList<Host>();
         }
 
-        if(s_logger.isDebugEnabled()){
-            s_logger.debug("Looking for hosts in dc: " + dcId + "  pod:" + podId + "  cluster:" + clusterId );
+        if (s_logger.isDebugEnabled()) {
+            s_logger.debug("Looking for hosts in dc: " + dcId + "  pod:" + podId + "  cluster:" + clusterId);
         }
 
         String hostTagOnOffering = offering.getHostTag();
@@ -127,40 +142,40 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         if (haVmTag != null) {
             clusterHosts = _hostDao.listByHostTag(type, clusterId, podId, dcId, haVmTag);
         } else {
-            if (hostTagOnOffering == null && hostTagOnTemplate == null){
+            if (hostTagOnOffering == null && hostTagOnTemplate == null) {
                 clusterHosts = _resourceMgr.listAllUpAndEnabledNonHAHosts(type, clusterId, podId, dcId);
             } else {
                 List<HostVO> hostsMatchingOfferingTag = new ArrayList<HostVO>();
                 List<HostVO> hostsMatchingTemplateTag = new ArrayList<HostVO>();
-                if (hasSvcOfferingTag){
-                    if (s_logger.isDebugEnabled()){
+                if (hasSvcOfferingTag) {
+                    if (s_logger.isDebugEnabled()) {
                         s_logger.debug("Looking for hosts having tag specified on SvcOffering:" + hostTagOnOffering);
                     }
                     hostsMatchingOfferingTag = _hostDao.listByHostTag(type, clusterId, podId, dcId, hostTagOnOffering);
-                    if (s_logger.isDebugEnabled()){
+                    if (s_logger.isDebugEnabled()) {
                         s_logger.debug("Hosts with tag '" + hostTagOnOffering + "' are:" + hostsMatchingOfferingTag);
                     }
                 }
-                if (hasTemplateTag){
-                    if (s_logger.isDebugEnabled()){
+                if (hasTemplateTag) {
+                    if (s_logger.isDebugEnabled()) {
                         s_logger.debug("Looking for hosts having tag specified on Template:" + hostTagOnTemplate);
                     }
                     hostsMatchingTemplateTag = _hostDao.listByHostTag(type, clusterId, podId, dcId, hostTagOnTemplate);
-                    if (s_logger.isDebugEnabled()){
-                        s_logger.debug("Hosts with tag '" + hostTagOnTemplate+"' are:" + hostsMatchingTemplateTag);
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Hosts with tag '" + hostTagOnTemplate + "' are:" + hostsMatchingTemplateTag);
                     }
                 }
 
-                if (hasSvcOfferingTag && hasTemplateTag){
+                if (hasSvcOfferingTag && hasTemplateTag) {
                     hostsMatchingOfferingTag.retainAll(hostsMatchingTemplateTag);
                     clusterHosts = _hostDao.listByHostTag(type, clusterId, podId, dcId, hostTagOnTemplate);
-                    if (s_logger.isDebugEnabled()){
-                        s_logger.debug("Found "+ hostsMatchingOfferingTag.size() +" Hosts satisfying both tags, host ids are:" + hostsMatchingOfferingTag);
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Found " + hostsMatchingOfferingTag.size() + " Hosts satisfying both tags, host ids are:" + hostsMatchingOfferingTag);
                     }
 
                     clusterHosts = hostsMatchingOfferingTag;
                 } else {
-                    if (hasSvcOfferingTag){
+                    if (hasSvcOfferingTag) {
                         clusterHosts = hostsMatchingOfferingTag;
                     } else {
                         clusterHosts = hostsMatchingTemplateTag;
@@ -181,7 +196,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
 
     @Override
     public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan,
-            Type type, ExcludeList avoid, List<HostVO> hosts, int returnUpTo, boolean considerReservedCapacity) {
+            Type type, ExcludeList avoid, List<? extends Host> hosts, int returnUpTo, boolean considerReservedCapacity) {
         long dcId = plan.getDataCenterId();
         Long podId = plan.getPodId();
         Long clusterId = plan.getClusterId();
@@ -205,7 +220,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         if (haVmTag != null) {
             hosts.retainAll(_hostDao.listByHostTag(type, clusterId, podId, dcId, haVmTag));
         } else {
-            if (hostTagOnOffering == null && hostTagOnTemplate == null){
+            if (hostTagOnOffering == null && hostTagOnTemplate == null) {
                 hosts.retainAll(_resourceMgr.listAllUpAndEnabledNonHAHosts(type, clusterId, podId, dcId));
             } else {
                 if (hasSvcOfferingTag) {
@@ -226,16 +241,17 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         return suitableHosts;
     }
 
-    protected List<Host> allocateTo(DeploymentPlan plan, ServiceOffering offering, VMTemplateVO template, ExcludeList avoid, List<HostVO> hosts, int returnUpTo, boolean considerReservedCapacity, Account account) {
+    protected List<Host> allocateTo(DeploymentPlan plan, ServiceOffering offering, VMTemplateVO template, ExcludeList avoid, List<? extends Host> hosts, int returnUpTo,
+            boolean considerReservedCapacity, Account account) {
         if (_allocationAlgorithm.equals("random") || _allocationAlgorithm.equals("userconcentratedpod_random")) {
-        	// Shuffle this so that we don't check the hosts in the same order.
+            // Shuffle this so that we don't check the hosts in the same order.
             Collections.shuffle(hosts);
-        }else if(_allocationAlgorithm.equals("userdispersing")){
+        } else if (_allocationAlgorithm.equals("userdispersing")) {
             hosts = reorderHostsByNumberOfVms(plan, hosts, account);
         }
 
-    	if (s_logger.isDebugEnabled()) {
-            s_logger.debug("FirstFitAllocator has " + hosts.size() + " hosts to check for allocation: "+hosts);
+        if (s_logger.isDebugEnabled()) {
+            s_logger.debug("FirstFitAllocator has " + hosts.size() + " hosts to check for allocation: " + hosts);
         }
 
         // We will try to reorder the host lists such that we give priority to hosts that have
@@ -243,7 +259,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         hosts = prioritizeHosts(template, hosts);
 
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Found " + hosts.size() + " hosts for allocation after prioritization: "+ hosts);
+            s_logger.debug("Found " + hosts.size() + " hosts for allocation after prioritization: " + hosts);
         }
 
         if (s_logger.isDebugEnabled()) {
@@ -252,36 +268,38 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
 
         List<Host> suitableHosts = new ArrayList<Host>();
 
-        for (HostVO host : hosts) {
-        	if(suitableHosts.size() == returnUpTo){
-        		break;
-        	}
+        for (Host host : hosts) {
+            if (suitableHosts.size() == returnUpTo) {
+                break;
+            }
             if (avoid.shouldAvoid(host)) {
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Host name: " + host.getName() + ", hostId: "+ host.getId() +" is in avoid set, skipping this and trying other available hosts");
+                    s_logger.debug("Host name: " + host.getName() + ", hostId: " + host.getId() + " is in avoid set, skipping this and trying other available hosts");
                 }
                 continue;
             }
 
             //find number of guest VMs occupying capacity on this host.
-            if (_capacityMgr.checkIfHostReachMaxGuestLimit(host)){
+            if (_capacityMgr.checkIfHostReachMaxGuestLimit(host)) {
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Host name: " + host.getName() + ", hostId: "+ host.getId() +" already has max Running VMs(count includes system VMs), skipping this and trying other available hosts");
+                    s_logger.debug("Host name: " + host.getName() + ", hostId: " + host.getId()
+                            + " already has max Running VMs(count includes system VMs), skipping this and trying other available hosts");
                 }
                 continue;
             }
 
             boolean numCpusGood = host.getCpus().intValue() >= offering.getCpu();
             boolean cpuFreqGood = host.getSpeed().intValue() >= offering.getSpeed();
-    		int cpu_requested = offering.getCpu() * offering.getSpeed();
-    		long ram_requested = offering.getRamSize() * 1024L * 1024L;
+            int cpu_requested = offering.getCpu() * offering.getSpeed();
+            long ram_requested = offering.getRamSize() * 1024L * 1024L;
             Cluster cluster = _clusterDao.findById(host.getClusterId());
-            ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(),"cpuOvercommitRatio");
-            ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(),"memoryOvercommitRatio");
+            ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(), "cpuOvercommitRatio");
+            ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(), "memoryOvercommitRatio");
             Float cpuOvercommitRatio = Float.parseFloat(clusterDetailsCpuOvercommit.getValue());
             Float memoryOvercommitRatio = Float.parseFloat(clusterDetailsRamOvercommmt.getValue());
 
-            boolean hostHasCapacity = _capacityMgr.checkIfHostHasCapacity(host.getId(), cpu_requested, ram_requested, false,cpuOvercommitRatio,memoryOvercommitRatio, considerReservedCapacity);
+            boolean hostHasCapacity = _capacityMgr.checkIfHostHasCapacity(host.getId(), cpu_requested, ram_requested, false, cpuOvercommitRatio, memoryOvercommitRatio,
+                    considerReservedCapacity);
 
             if (numCpusGood && cpuFreqGood && hostHasCapacity) {
                 if (s_logger.isDebugEnabled()) {
@@ -297,14 +315,14 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         }
 
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Host Allocator returning "+suitableHosts.size() +" suitable hosts");
+            s_logger.debug("Host Allocator returning " + suitableHosts.size() + " suitable hosts");
         }
 
         return suitableHosts;
     }
 
-    private List<HostVO> reorderHostsByNumberOfVms(DeploymentPlan plan, List<HostVO> hosts, Account account) {
-        if(account == null){
+    private List<? extends Host> reorderHostsByNumberOfVms(DeploymentPlan plan, List<? extends Host> hosts, Account account) {
+        if (account == null) {
             return hosts;
         }
         long dcId = plan.getDataCenterId();
@@ -313,20 +331,20 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
 
         List<Long> hostIdsByVmCount = _vmInstanceDao.listHostIdsByVmCount(dcId, podId, clusterId, account.getAccountId());
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("List of hosts in ascending order of number of VMs: "+ hostIdsByVmCount);
+            s_logger.debug("List of hosts in ascending order of number of VMs: " + hostIdsByVmCount);
         }
 
         //now filter the given list of Hosts by this ordered list
-        Map<Long, HostVO> hostMap = new HashMap<Long, HostVO>();
-        for (HostVO host : hosts) {
+        Map<Long, Host> hostMap = new HashMap<Long, Host>();
+        for (Host host : hosts) {
             hostMap.put(host.getId(), host);
         }
         List<Long> matchingHostIds = new ArrayList<Long>(hostMap.keySet());
 
         hostIdsByVmCount.retainAll(matchingHostIds);
 
-        List<HostVO> reorderedHosts = new ArrayList<HostVO>();
-        for(Long id: hostIdsByVmCount){
+        List<Host> reorderedHosts = new ArrayList<Host>();
+        for (Long id : hostIdsByVmCount) {
             reorderedHosts.add(hostMap.get(id));
         }
 
@@ -340,133 +358,133 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
         return true;
     }
 
-    protected List<HostVO> prioritizeHosts(VMTemplateVO template, List<HostVO> hosts) {
-    	if (template == null) {
-    		return hosts;
-    	}
-
-    	// Determine the guest OS category of the template
-    	String templateGuestOSCategory = getTemplateGuestOSCategory(template);
-
-    	List<HostVO> prioritizedHosts = new ArrayList<HostVO>();
-	List<HostVO> noHvmHosts = new ArrayList<HostVO>();
-
-    	// If a template requires HVM and a host doesn't support HVM, remove it from consideration
-    	List<HostVO> hostsToCheck = new ArrayList<HostVO>();
-    	if (template.isRequiresHvm()) {
-    		for (HostVO host : hosts) {
-    			if (hostSupportsHVM(host)) {
-    				hostsToCheck.add(host);
-			} else {
-				noHvmHosts.add(host);
-    			}
-    		}
-    	} else {
-    		hostsToCheck.addAll(hosts);
-    	}
-
-	if (s_logger.isDebugEnabled()) {
-		if (noHvmHosts.size() > 0) {
-			s_logger.debug("Not considering hosts: "  + noHvmHosts + "  to deploy template: " + template +" as they are not HVM enabled");
-		}
-	}
-    	// If a host is tagged with the same guest OS category as the template, move it to a high priority list
-    	// If a host is tagged with a different guest OS category than the template, move it to a low priority list
-    	List<HostVO> highPriorityHosts = new ArrayList<HostVO>();
-    	List<HostVO> lowPriorityHosts = new ArrayList<HostVO>();
-    	for (HostVO host : hostsToCheck) {
-    		String hostGuestOSCategory = getHostGuestOSCategory(host);
-    		if (hostGuestOSCategory == null) {
-    			continue;
-    		} else if (templateGuestOSCategory.equals(hostGuestOSCategory)) {
-    			highPriorityHosts.add(host);
-    		} else {
-    			lowPriorityHosts.add(host);
-    		}
-    	}
-
-    	hostsToCheck.removeAll(highPriorityHosts);
-    	hostsToCheck.removeAll(lowPriorityHosts);
-
-    	// Prioritize the remaining hosts by HVM capability
-    	for (HostVO host : hostsToCheck) {
-    		if (!template.isRequiresHvm() && !hostSupportsHVM(host)) {
-    			// Host and template both do not support hvm, put it as first consideration
-    			prioritizedHosts.add(0, host);
-    		} else {
-    			// Template doesn't require hvm, but the machine supports it, make it last for consideration
-    			prioritizedHosts.add(host);
-    		}
-    	}
-
-    	// Merge the lists
-    	prioritizedHosts.addAll(0, highPriorityHosts);
-    	prioritizedHosts.addAll(lowPriorityHosts);
-
-    	return prioritizedHosts;
+    protected List<? extends Host> prioritizeHosts(VMTemplateVO template, List<? extends Host> hosts) {
+        if (template == null) {
+            return hosts;
+        }
+
+        // Determine the guest OS category of the template
+        String templateGuestOSCategory = getTemplateGuestOSCategory(template);
+
+        List<Host> prioritizedHosts = new ArrayList<Host>();
+        List<Host> noHvmHosts = new ArrayList<Host>();
+
+        // If a template requires HVM and a host doesn't support HVM, remove it from consideration
+        List<Host> hostsToCheck = new ArrayList<Host>();
+        if (template.isRequiresHvm()) {
+            for (Host host : hosts) {
+                if (hostSupportsHVM(host)) {
+                    hostsToCheck.add(host);
+                } else {
+                    noHvmHosts.add(host);
+                }
+            }
+        } else {
+            hostsToCheck.addAll(hosts);
+        }
+
+        if (s_logger.isDebugEnabled()) {
+            if (noHvmHosts.size() > 0) {
+                s_logger.debug("Not considering hosts: " + noHvmHosts + "  to deploy template: " + template + " as they are not HVM enabled");
+            }
+        }
+        // If a host is tagged with the same guest OS category as the template, move it to a high priority list
+        // If a host is tagged with a different guest OS category than the template, move it to a low priority list
+        List<Host> highPriorityHosts = new ArrayList<Host>();
+        List<Host> lowPriorityHosts = new ArrayList<Host>();
+        for (Host host : hostsToCheck) {
+            String hostGuestOSCategory = getHostGuestOSCategory(host);
+            if (hostGuestOSCategory == null) {
+                continue;
+            } else if (templateGuestOSCategory.equals(hostGuestOSCategory)) {
+                highPriorityHosts.add(host);
+            } else {
+                lowPriorityHosts.add(host);
+            }
+        }
+
+        hostsToCheck.removeAll(highPriorityHosts);
+        hostsToCheck.removeAll(lowPriorityHosts);
+
+        // Prioritize the remaining hosts by HVM capability
+        for (Host host : hostsToCheck) {
+            if (!template.isRequiresHvm() && !hostSupportsHVM(host)) {
+                // Host and template both do not support hvm, put it as first consideration
+                prioritizedHosts.add(0, host);
+            } else {
+                // Template doesn't require hvm, but the machine supports it, make it last for consideration
+                prioritizedHosts.add(host);
+            }
+        }
+
+        // Merge the lists
+        prioritizedHosts.addAll(0, highPriorityHosts);
+        prioritizedHosts.addAll(lowPriorityHosts);
+
+        return prioritizedHosts;
     }
 
-    protected boolean hostSupportsHVM(HostVO host) {
-        if ( !_checkHvm ) {
+    protected boolean hostSupportsHVM(Host host) {
+        if (!_checkHvm) {
             return true;
         }
-    	// Determine host capabilities
-		String caps = host.getCapabilities();
+        // Determine host capabilities
+        String caps = host.getCapabilities();
 
-		if (caps != null) {
+        if (caps != null) {
             String[] tokens = caps.split(",");
             for (String token : tokens) {
-            	if (token.contains("hvm")) {
-            	    return true;
-            	}
+                if (token.contains("hvm")) {
+                    return true;
+                }
             }
-		}
+        }
 
-		return false;
+        return false;
     }
 
-    protected String getHostGuestOSCategory(HostVO host) {
-		DetailVO hostDetail = _hostDetailsDao.findDetail(host.getId(), "guest.os.category.id");
-		if (hostDetail != null) {
-			String guestOSCategoryIdString = hostDetail.getValue();
-			long guestOSCategoryId;
-
-			try {
-				guestOSCategoryId = Long.parseLong(guestOSCategoryIdString);
-			} catch (Exception e) {
-				return null;
-			}
-
-			GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
-
-			if (guestOSCategory != null) {
-				return guestOSCategory.getName();
-			} else {
-				return null;
-			}
-		} else {
-			return null;
-		}
+    protected String getHostGuestOSCategory(Host host) {
+        DetailVO hostDetail = _hostDetailsDao.findDetail(host.getId(), "guest.os.category.id");
+        if (hostDetail != null) {
+            String guestOSCategoryIdString = hostDetail.getValue();
+            long guestOSCategoryId;
+
+            try {
+                guestOSCategoryId = Long.parseLong(guestOSCategoryIdString);
+            } catch (Exception e) {
+                return null;
+            }
+
+            GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
+
+            if (guestOSCategory != null) {
+                return guestOSCategory.getName();
+            } else {
+                return null;
+            }
+        } else {
+            return null;
+        }
     }
 
     protected String getTemplateGuestOSCategory(VMTemplateVO template) {
-    	long guestOSId = template.getGuestOSId();
-    	GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
-    	long guestOSCategoryId = guestOS.getCategoryId();
-    	GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
-    	return guestOSCategory.getName();
+        long guestOSId = template.getGuestOSId();
+        GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
+        long guestOSCategoryId = guestOS.getCategoryId();
+        GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
+        return guestOSCategory.getName();
     }
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
-    	if (_configDao != null) {
-    		Map<String, String> configs = _configDao.getConfiguration(params);
+        if (_configDao != null) {
+            Map<String, String> configs = _configDao.getConfiguration(params);
             String opFactor = configs.get("cpu.overprovisioning.factor");
             _factor = NumbersUtil.parseFloat(opFactor, 1);
 
             String allocationAlgorithm = configs.get("vm.allocation.algorithm");
             if (allocationAlgorithm != null) {
-            	_allocationAlgorithm = allocationAlgorithm;
+                _allocationAlgorithm = allocationAlgorithm;
             }
             String value = configs.get("xen.check.hvm");
             _checkHvm = value == null ? true : Boolean.parseBoolean(value);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java
index 890c047..3c69694 100755
--- a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java
@@ -23,13 +23,10 @@ import java.util.Map;
 import javax.ejb.Local;
 import javax.inject.Inject;
 
-import org.springframework.stereotype.Component;
-
 import com.cloud.agent.manager.allocator.HostAllocator;
 import com.cloud.deploy.DeploymentPlan;
 import com.cloud.deploy.DeploymentPlanner.ExcludeList;
 import com.cloud.host.Host;
-import com.cloud.host.HostVO;
 import com.cloud.host.Host.Type;
 import com.cloud.host.dao.HostDao;
 import com.cloud.offering.ServiceOffering;
@@ -37,7 +34,6 @@ import com.cloud.utils.component.AdapterBase;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 
-@Component
 @Local(value={HostAllocator.class})
 public class TestingAllocator extends AdapterBase implements HostAllocator {
     @Inject HostDao _hostDao;
@@ -53,7 +49,7 @@ public class TestingAllocator extends AdapterBase implements HostAllocator {
 
     @Override
     public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
-            ExcludeList avoid, List<HostVO> hosts, int returnUpTo, boolean considerReservedCapacity) {
+            ExcludeList avoid, List<? extends Host> hosts, int returnUpTo, boolean considerReservedCapacity) {
         return allocateTo(vmProfile, plan, type, avoid, returnUpTo, considerReservedCapacity);
     }
 
@@ -61,7 +57,7 @@ public class TestingAllocator extends AdapterBase implements HostAllocator {
     public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
             ExcludeList avoid, int returnUpTo, boolean considerReservedCapacity) {
         List<Host> availableHosts = new ArrayList<Host>();
-        Host host = null;    	
+        Host host = null;
         if (type == Host.Type.Routing && _routingHost != null) {
             host = _hostDao.findById(_routingHost);
         } else if (type == Host.Type.Storage && _storageHost != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
index af4e411..82548c9 100755
--- a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
@@ -34,15 +34,12 @@ import com.cloud.capacity.CapacityVO;
 import com.cloud.capacity.dao.CapacityDao;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.DataCenter;
-import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
 import com.cloud.dc.Pod;
 import com.cloud.dc.dao.HostPodDao;
 import com.cloud.offering.ServiceOffering;
-import com.cloud.service.ServiceOfferingVO;
 import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.VolumeVO;
-import com.cloud.storage.dao.VMTemplateHostDao;
 import com.cloud.storage.dao.VMTemplatePoolDao;
 import com.cloud.storage.dao.VolumeDao;
 import com.cloud.template.VirtualMachineTemplate;
@@ -85,7 +82,7 @@ public class UserConcentratedAllocator extends AdapterBase implements PodAllocat
     private int _secondsToSkipDestroyedVMs = 0;
 
     @Override
-    public Pair<HostPodVO, Long> allocateTo(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO zone, long accountId,
+    public Pair<Pod, Long> allocateTo(VirtualMachineTemplate template, ServiceOffering offering, DataCenter zone, long accountId,
             Set<Long> avoids) {
         long zoneId = zone.getId();
         List<HostPodVO> podsInZone = _podDao.listByDataCenterId(zoneId);
@@ -138,12 +135,12 @@ public class UserConcentratedAllocator extends AdapterBase implements PodAllocat
                 // If the pod has VMs or volumes in it, return this pod
                 List<UserVmVO> vmsInPod = _vmDao.listByAccountAndPod(accountId, pod.getId());
                 if (!vmsInPod.isEmpty()) {
-                    return new Pair<HostPodVO, Long>(pod, podHostCandidates.get(podId));
+                    return new Pair<Pod, Long>(pod, podHostCandidates.get(podId));
                 }
 
                 List<VolumeVO> volumesInPod = _volumeDao.findByAccountAndPod(accountId, pod.getId());
                 if (!volumesInPod.isEmpty()) {
-                    return new Pair<HostPodVO, Long>(pod, podHostCandidates.get(podId));
+                    return new Pair<Pod, Long>(pod, podHostCandidates.get(podId));
                 }
 
                 availablePods.add(pod);
@@ -158,7 +155,7 @@ public class UserConcentratedAllocator extends AdapterBase implements PodAllocat
             int next = _rand.nextInt(availablePods.size());
             HostPodVO selectedPod = availablePods.get(next);
             s_logger.debug("Found pod " + selectedPod.getName() + " in zone " + zone.getName());
-            return new Pair<HostPodVO, Long>(selectedPod, podHostCandidates.get(selectedPod.getId()));
+            return new Pair<Pod, Long>(selectedPod, podHostCandidates.get(selectedPod.getId()));
         }
     }
 
@@ -319,25 +316,6 @@ public class UserConcentratedAllocator extends AdapterBase implements PodAllocat
         _secondsToSkipStoppedVMs = NumbersUtil.parseInt(stoppedValue, 86400);
         _secondsToSkipDestroyedVMs = NumbersUtil.parseInt(destroyedValue, 0);
 
-        /*
-         * ComponentLocator locator = ComponentLocator.getCurrentLocator(); _vmDao = locator.getDao(UserVmDao.class); if (_vmDao
-         * == null) { throw new ConfigurationException("Unable to find UserVMDao."); }
-         *
-         * _volumeDao = locator.getDao(VolumeDao.class); if (_volumeDao == null) { throw new
-         * ConfigurationException("Unable to find VolumeDao."); }
-         *
-         * _templateHostDao = locator.getDao(VMTemplateHostDao.class); if (_templateHostDao == null) { throw new
-         * ConfigurationException("Unable to get template host dao."); }
-         *
-         * _templatePoolDao = locator.getDao(VMTemplatePoolDao.class); if (_templatePoolDao == null) { throw new
-         * ConfigurationException("Unable to get template pool dao."); }
-         *
-         * _podDao = locator.getDao(HostPodDao.class); if (_podDao == null) { throw new
-         * ConfigurationException("Unable to find HostPodDao."); }
-         *
-         * _capacityDao = locator.getDao(CapacityDao.class); if (_capacityDao == null) { throw new
-         * ConfigurationException("Unable to retrieve " + CapacityDao.class); }
-         */
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/capacity/CapacityManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/CapacityManager.java b/server/src/com/cloud/capacity/CapacityManager.java
index ab02e77..ded1f80 100755
--- a/server/src/com/cloud/capacity/CapacityManager.java
+++ b/server/src/com/cloud/capacity/CapacityManager.java
@@ -19,7 +19,6 @@ package com.cloud.capacity;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 
 import com.cloud.host.Host;
-import com.cloud.host.HostVO;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.utils.component.Manager;
 import com.cloud.vm.VirtualMachine;
@@ -46,7 +45,7 @@ public interface CapacityManager extends Manager {
     
 	/**
      * @param pool storage pool
-     * @param templateForVmCreation template that will be used for vm creation 
+     * @param templateForVmCreation template that will be used for vm creation
      * @return total allocated capacity for the storage pool
      */
     long getAllocatedPoolCapacity(StoragePoolVO pool, VMTemplateVO templateForVmCreation);
@@ -56,5 +55,5 @@ public interface CapacityManager extends Manager {
      * @param host the host to be checked
      * @return true if the count of host's running VMs >= hypervisor limit
      */
-    boolean checkIfHostReachMaxGuestLimit(HostVO host);
+    boolean checkIfHostReachMaxGuestLimit(Host host);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/capacity/CapacityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java
index b2f10f2..108de3b 100755
--- a/server/src/com/cloud/capacity/CapacityManagerImpl.java
+++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java
@@ -27,11 +27,12 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.PublishScope;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.Listener;
@@ -906,7 +907,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
 	}
 
     @Override
-    public boolean checkIfHostReachMaxGuestLimit(HostVO host) {
+    public boolean checkIfHostReachMaxGuestLimit(Host host) {
         Long vmCount = _vmDao.countRunningByHostId(host.getId());
         HypervisorType hypervisorType = host.getHypervisorType();
         String hypervisorVersion = host.getHypervisorVersion();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/resource/ResourceManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManager.java b/server/src/com/cloud/resource/ResourceManager.java
index b0ab926..e35e89a 100755
--- a/server/src/com/cloud/resource/ResourceManager.java
+++ b/server/src/com/cloud/resource/ResourceManager.java
@@ -24,6 +24,7 @@ import com.cloud.agent.api.StartupCommand;
 import com.cloud.agent.api.StartupRoutingCommand;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.dc.PodCluster;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.host.Host;
@@ -42,7 +43,7 @@ import com.cloud.utils.fsm.NoTransitionException;
  * ResourceManager manages how physical resources are organized within the
  * CloudStack. It also manages the life cycle of the physical resources.
  */
-public interface ResourceManager extends ResourceService{
+public interface ResourceManager extends ResourceService {
     /**
      * Register a listener for different types of resource life cycle events.
      * There can only be one type of listener per type of host.
@@ -51,69 +52,70 @@ public interface ResourceManager extends ResourceService{
      * @param listener the listener to notify.
      */
     public void registerResourceEvent(Integer event, ResourceListener listener);
-    
+
     public void unregisterResourceEvent(ResourceListener listener);
-    
+
     /**
      * 
      * @param name of adapter
      * @param adapter
-     * @param hates, a list of names which will be eliminated by this adapter. Especially for the case where 
+     * @param hates, a list of names which will be eliminated by this adapter. Especially for the case where
      * can be only one adapter responds to an event, e.g. startupCommand
      */
     public void registerResourceStateAdapter(String name, ResourceStateAdapter adapter);
-    
+
     public void unregisterResourceStateAdapter(String name);
-    
-	public Host createHostAndAgent(Long hostId, ServerResource resource, Map<String, String> details, boolean old, List<String> hostTags,
-	        boolean forRebalance);
-	
-	public Host addHost(long zoneId, ServerResource resource, Type hostType, Map<String, String> hostDetails);
-	
-	public HostVO createHostVOForConnectedAgent(StartupCommand[] cmds);
-	
-	public void checkCIDR(HostPodVO pod, DataCenterVO dc, String serverPrivateIP, String serverPrivateNetmask);
-	
-	public HostVO fillRoutingHostVO(HostVO host, StartupRoutingCommand ssCmd, HypervisorType hyType, Map<String, String> details, List<String> hostTags);
-	
-	public void deleteRoutingHost(HostVO host, boolean isForced, boolean forceDestroyStorage) throws UnableDeleteHostException;
-	
+
+    public Host createHostAndAgent(Long hostId, ServerResource resource, Map<String, String> details, boolean old, List<String> hostTags,
+            boolean forRebalance);
+
+    public Host addHost(long zoneId, ServerResource resource, Type hostType, Map<String, String> hostDetails);
+
+    public HostVO createHostVOForConnectedAgent(StartupCommand[] cmds);
+
+    public void checkCIDR(HostPodVO pod, DataCenterVO dc, String serverPrivateIP, String serverPrivateNetmask);
+
+    public HostVO fillRoutingHostVO(HostVO host, StartupRoutingCommand ssCmd, HypervisorType hyType, Map<String, String> details, List<String> hostTags);
+
+    public void deleteRoutingHost(HostVO host, boolean isForced, boolean forceDestroyStorage) throws UnableDeleteHostException;
+
     public boolean executeUserRequest(long hostId, ResourceState.Event event) throws AgentUnavailableException;
 
-	boolean resourceStateTransitTo(Host host, Event event, long msId) throws NoTransitionException;
+    boolean resourceStateTransitTo(Host host, Event event, long msId) throws NoTransitionException;
+
+    boolean umanageHost(long hostId);
+
+    boolean maintenanceFailed(long hostId);
 
-	boolean umanageHost(long hostId);
+    public boolean maintain(final long hostId) throws AgentUnavailableException;
 
-	boolean maintenanceFailed(long hostId);
-	
-	public boolean maintain(final long hostId) throws AgentUnavailableException;
-	
     @Override
     public boolean deleteHost(long hostId, boolean isForced, boolean isForceDeleteStorage);
-    
+
     public List<HostVO> findDirectlyConnectedHosts();
-    
+
     public List<HostVO> listAllUpAndEnabledHosts(Host.Type type, Long clusterId, Long podId, long dcId);
-    
+
     public List<HostVO> listAllHostsInCluster(long clusterId);
-    
+
     public List<HostVO> listHostsInClusterByStatus(long clusterId, Status status);
-    
+
     public List<HostVO> listAllUpAndEnabledHostsInOneZoneByType(Host.Type type, long dcId);
+
     public List<HostVO> listAllUpAndEnabledHostsInOneZoneByHypervisor(HypervisorType type, long dcId);
-    
+
     public List<HostVO> listAllHostsInOneZoneByType(Host.Type type, long dcId);
-    
+
     public List<HostVO> listAllHostsInAllZonesByType(Type type);
-    
+
     public List<HypervisorType> listAvailHypervisorInZone(Long hostId, Long zoneId);
-    
+
     public HostVO findHostByGuid(String guid);
-    
+
     public HostVO findHostByName(String name);
-    
+
     public List<HostVO> listHostsByNameLike(String name);
-    
+
     /**
      * Find a pod based on the user id, template, and data center.
      * 
@@ -122,25 +124,25 @@ public interface ResourceManager extends ResourceService{
      * @param userId
      * @return
      */
-    Pair<HostPodVO, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId, Set<Long> avoids);
-    
+    Pair<Pod, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId, Set<Long> avoids);
+
     HostStats getHostStatistics(long hostId);
-    
+
     Long getGuestOSCategoryId(long hostId);
-    
+
     String getHostTags(long hostId);
-    
+
     List<PodCluster> listByDataCenter(long dcId);
 
-	List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId);
+    List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId);
 
-	HypervisorType getDefaultHypervisor(long zoneId);
+    HypervisorType getDefaultHypervisor(long zoneId);
 
-	HypervisorType getAvailableHypervisor(long zoneId);
+    HypervisorType getAvailableHypervisor(long zoneId);
 
     Discoverer getMatchingDiscover(HypervisorType hypervisorType);
 
-	List<HostVO> findHostByGuid(long dcId, String guid);
+    List<HostVO> findHostByGuid(long dcId, String guid);
 
     /**
      * @param type

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index a0ea54e..054ac40 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -30,7 +30,9 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import com.cloud.dc.*;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd;
 import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd;
@@ -48,8 +50,6 @@ import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 import org.apache.cloudstack.region.dao.RegionDao;
 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 com.cloud.agent.AgentManager;
 import com.cloud.agent.AgentManager.TapAgentsAction;
@@ -78,9 +78,12 @@ import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.ClusterDetailsDao;
 import com.cloud.dc.ClusterDetailsVO;
 import com.cloud.dc.ClusterVO;
+import com.cloud.dc.DataCenter.NetworkType;
 import com.cloud.dc.DataCenterIpAddressVO;
 import com.cloud.dc.DataCenterVO;
+import com.cloud.dc.DedicatedResourceVO;
 import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.dc.PodCluster;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.dc.dao.ClusterVSMMapDao;
@@ -164,7 +167,6 @@ import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.VirtualMachineManager;
 import com.cloud.vm.dao.VMInstanceDao;
-import com.cloud.dc.DataCenter.NetworkType;
 
 @Component
 @Local({ ResourceManager.class, ResourceService.class })
@@ -634,12 +636,12 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 
     @Override
     public S3 discoverS3(final AddS3Cmd cmd) throws DiscoveryException {
-        return this._s3Mgr.addS3(cmd);
+        return _s3Mgr.addS3(cmd);
     }
 
     @Override
     public List<S3VO> listS3s(final ListS3sCmd cmd) {
-        return this._s3Mgr.listS3s(cmd);
+        return _s3Mgr.listS3s(cmd);
     }
 
 
@@ -704,7 +706,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
                 // already have a lot of information
                 // in cluster object, to simplify user input, we will construct
                 // neccessary information here
-                Map<String, String> clusterDetails = this._clusterDetailsDao.findDetails(clusterId);
+                Map<String, String> clusterDetails = _clusterDetailsDao.findDetails(clusterId);
                 username = clusterDetails.get("username");
                 assert (username != null);
 
@@ -1971,7 +1973,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 
         Map<String, String> details = hostDetails;
         String guid = details.get("guid");
-        List<HostVO> currentHosts = this.listAllUpAndEnabledHostsInOneZoneByType(hostType, zoneId);
+        List<HostVO> currentHosts = listAllUpAndEnabledHostsInOneZoneByType(hostType, zoneId);
         for (HostVO currentHost : currentHosts) {
             if (currentHost.getGuid().equals(guid)) {
                 return currentHost;
@@ -2294,7 +2296,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
             return doUpdateHostPassword(cmd.getHostId());
         } else {
             // get agents for the cluster
-            List<HostVO> hosts = this.listAllHostsInCluster(cmd.getClusterId());
+            List<HostVO> hosts = listAllHostsInCluster(cmd.getClusterId());
             for (HostVO h : hosts) {
                 try {
                     /*
@@ -2468,10 +2470,10 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
     }
 
     @Override
-    public Pair<HostPodVO, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId,
+    public Pair<Pod, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId,
             Set<Long> avoids) {
         for (PodAllocator allocator : _podAllocators) {
-            final Pair<HostPodVO, Long> pod = allocator.allocateTo(template, offering, dc, accountId, avoids);
+            final Pair<Pod, Long> pod = allocator.allocateTo(template, offering, dc, accountId, avoids);
             if (pod != null) {
                 return pod;
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/storage/StorageManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManager.java b/server/src/com/cloud/storage/StorageManager.java
index df69092..af4e8c2 100755
--- a/server/src/com/cloud/storage/StorageManager.java
+++ b/server/src/com/cloud/storage/StorageManager.java
@@ -30,13 +30,12 @@ import com.cloud.agent.api.StoragePoolInfo;
 import com.cloud.agent.manager.Commands;
 import com.cloud.capacity.CapacityVO;
 import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.exception.ConnectionException;
 import com.cloud.exception.StorageUnavailableException;
 import com.cloud.host.Host;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.service.ServiceOfferingVO;
-import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.utils.Pair;
 import com.cloud.vm.DiskProfile;
@@ -108,7 +107,7 @@ public interface StorageManager extends StorageService {
     boolean registerHostListener(String providerUuid, HypervisorHostListener listener);
 
     StoragePool findStoragePool(DiskProfile dskCh, DataCenterVO dc,
-            HostPodVO pod, Long clusterId, Long hostId, VMInstanceVO vm,
+            Pod pod, Long clusterId, Long hostId, VMInstanceVO vm,
             Set<StoragePool> avoid);
 
     void connectHostToSharedPool(long hostId, long poolId)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index 9ddcb78..d9ef853 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -41,6 +41,9 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
 import org.apache.cloudstack.api.command.admin.storage.AddImageStoreCmd;
 import org.apache.cloudstack.api.command.admin.storage.CancelPrimaryStorageMaintenanceCmd;
 import org.apache.cloudstack.api.command.admin.storage.CreateCacheStoreCmd;
@@ -80,8 +83,6 @@ import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -103,7 +104,7 @@ import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.ClusterVO;
 import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.deploy.DataCenterDeployment;
@@ -302,7 +303,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
 
     private int _customDiskOfferingMinSize = 1;
     private int _customDiskOfferingMaxSize = 1024;
-    private Map<String, HypervisorHostListener> hostListeners = new HashMap<String, HypervisorHostListener>();
+    private final Map<String, HypervisorHostListener> hostListeners = new HashMap<String, HypervisorHostListener>();
 
     private boolean _recreateSystemVmEnabled;
 
@@ -399,7 +400,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
     }
 
     @Override
-    public StoragePool findStoragePool(DiskProfile dskCh, final DataCenterVO dc, HostPodVO pod, Long clusterId, Long hostId, VMInstanceVO vm,
+    public StoragePool findStoragePool(DiskProfile dskCh, final DataCenterVO dc, Pod pod, Long clusterId, Long hostId, VMInstanceVO vm,
                                        final Set<StoragePool> avoid) {
 
         VirtualMachineProfile<VMInstanceVO> profile = new VirtualMachineProfileImpl<VMInstanceVO>(vm);
@@ -413,7 +414,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
 
             final List<StoragePool> poolList = allocator.allocateToPool(dskCh, profile, plan, avoidList, 1);
             if (poolList != null && !poolList.isEmpty()) {
-                return (StoragePool) this.dataStoreMgr.getDataStore(poolList.get(0).getId(), DataStoreRole.Primary);
+                return (StoragePool) dataStoreMgr.getDataStore(poolList.get(0).getId(), DataStoreRole.Primary);
             }
         }
         return null;
@@ -604,7 +605,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
                     pool = _storagePoolDao.findPoolByHostPath(host.getDataCenterId(), host.getPodId(), pInfo.getHost(), "", pInfo.getUuid());
                 }
             }
-            DataStoreProvider provider = this.dataStoreProviderMgr.getDefaultPrimaryDataStoreProvider();
+            DataStoreProvider provider = dataStoreProviderMgr.getDefaultPrimaryDataStoreProvider();
             DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle();
             if (pool == null) {
                 Map<String, Object> params = new HashMap<String, Object>();
@@ -808,7 +809,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
                 // force expunge non-destroyed volumes
                 List<VolumeVO> vols = _volsDao.listVolumesToBeDestroyed();
                 for (VolumeVO vol : vols) {
-                    AsyncCallFuture<VolumeApiResult> future = this.volService.expungeVolumeAsync(this.volFactory.getVolume(vol.getId()));
+                    AsyncCallFuture<VolumeApiResult> future = volService.expungeVolumeAsync(volFactory.getVolume(vol.getId()));
                     try {
                         future.get();
                     } catch (InterruptedException e) {
@@ -847,7 +848,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
 
     @Override
     public void connectHostToSharedPool(long hostId, long poolId) throws StorageUnavailableException {
-        StoragePool pool = (StoragePool) this.dataStoreMgr.getDataStore(poolId, DataStoreRole.Primary);
+        StoragePool pool = (StoragePool) dataStoreMgr.getDataStore(poolId, DataStoreRole.Primary);
         assert (pool.isShared()) : "Now, did you actually read the name of this method?";
         s_logger.debug("Adding pool " + pool.getName() + " to  host " + hostId);
 
@@ -1032,7 +1033,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
                     for (VolumeVO vol : vols) {
                         try {
 
-                            this.volService.expungeVolumeAsync(this.volFactory.getVolume(vol.getId()));
+                            volService.expungeVolumeAsync(volFactory.getVolume(vol.getId()));
 
                         } catch (Exception e) {
                             s_logger.warn("Unable to destroy " + vol.getId(), e);
@@ -1107,11 +1108,11 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
         // so here we don't need to issue DeleteCommand to resource anymore, only need to remove db entry.
         try {
             // Cleanup templates in template_store_ref
-            List<DataStore> imageStores = this.dataStoreMgr.getImageStoresByScope(new ZoneScope(null));
+            List<DataStore> imageStores = dataStoreMgr.getImageStoresByScope(new ZoneScope(null));
             for (DataStore store : imageStores) {
                 try {
                     long storeId = store.getId();
-                    List<TemplateDataStoreVO> destroyedTemplateStoreVOs = this._templateStoreDao.listDestroyed(storeId);
+                    List<TemplateDataStoreVO> destroyedTemplateStoreVOs = _templateStoreDao.listDestroyed(storeId);
                     s_logger.debug("Secondary storage garbage collector found " + destroyedTemplateStoreVOs.size()
                             + " templates to cleanup on template_store_ref for store: " + store.getName());
                     for (TemplateDataStoreVO destroyedTemplateStoreVO : destroyedTemplateStoreVOs) {
@@ -1311,7 +1312,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
         if (hostId != null) {
             hosts.add(hostId);
         } else {
-            List<DataStore> stores = this._dataStoreMgr.getImageStoresByScope(new ZoneScope(zoneId));
+            List<DataStore> stores = _dataStoreMgr.getImageStoresByScope(new ZoneScope(zoneId));
             if (stores != null) {
                 for (DataStore store : stores) {
                     hosts.add(store.getId());
@@ -1699,16 +1700,16 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
 
         if (((ImageStoreProvider) storeProvider).needDownloadSysTemplate()) {
             // trigger system vm template download
-            this._imageSrv.downloadBootstrapSysTemplate(store);
+            _imageSrv.downloadBootstrapSysTemplate(store);
         }
         else {
             // populate template_store_ref table
-            this._imageSrv.addSystemVMTemplatesToSecondary(store);
+            _imageSrv.addSystemVMTemplatesToSecondary(store);
         }
 
         // associate builtin template with zones associated with this image
         // store
-        this.associateCrosszoneTemplatesToZone(dcId);
+        associateCrosszoneTemplatesToZone(dcId);
 
         return (ImageStore) _dataStoreMgr.getDataStore(store.getId(), DataStoreRole.Image);
     }
@@ -1765,7 +1766,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
         }
 
         // search if there are user templates stored on this image store, excluding system, builtin templates
-        List<TemplateJoinVO> templates = this._templateViewDao.listActiveTemplates(storeId);
+        List<TemplateJoinVO> templates = _templateViewDao.listActiveTemplates(storeId);
         if (templates != null && templates.size() > 0) {
             throw new InvalidParameterValueException("Cannot delete image store with active templates backup!");
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/src/com/cloud/storage/VolumeManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeManagerImpl.java b/server/src/com/cloud/storage/VolumeManagerImpl.java
index d90e798..d63e631 100644
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@ -31,6 +31,7 @@ import java.util.concurrent.ExecutionException;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -41,10 +42,9 @@ 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.UpdateVolumeCmd;
 import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
-
-import com.cloud.storage.dao.*;
-import org.apache.cloudstack.api.command.user.volume.*;
+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.DataStoreProviderManager;
@@ -55,7 +55,6 @@ import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
 import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 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.ChapInfo;
 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;
@@ -73,7 +72,6 @@ import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 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.commons.lang.StringUtils;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -99,6 +97,7 @@ import com.cloud.dc.ClusterVO;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.HostPodDao;
@@ -142,6 +141,7 @@ import com.cloud.storage.dao.VMTemplatePoolDao;
 import com.cloud.storage.dao.VMTemplateS3Dao;
 import com.cloud.storage.dao.VMTemplateSwiftDao;
 import com.cloud.storage.dao.VolumeDao;
+import com.cloud.storage.dao.VolumeDetailsDao;
 import com.cloud.storage.download.DownloadMonitor;
 import com.cloud.storage.s3.S3Manager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
@@ -154,8 +154,8 @@ import com.cloud.template.TemplateManager;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
 import com.cloud.user.ResourceLimitService;
-import com.cloud.user.VmDiskStatisticsVO;
 import com.cloud.user.UserContext;
+import com.cloud.user.VmDiskStatisticsVO;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.user.dao.UserDao;
 import com.cloud.user.dao.VmDiskStatisticsDao;
@@ -534,8 +534,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
         StoragePool pool = null;
 
         Set<Long> podsToAvoid = new HashSet<Long>();
-        Pair<HostPodVO, Long> pod = null;
-
+        Pair<Pod, Long> pod = null;
 
         DiskOfferingVO diskOffering = _diskOfferingDao
                 .findByIdIncludingRemoved(volume.getDiskOfferingId());
@@ -544,14 +543,12 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
                 snapshot.getHypervisorType());
 
         // Determine what pod to store the volume in
-        while ((pod = _resourceMgr.findPod(null, null, dc, account.getId(),
-                podsToAvoid)) != null) {
+        while ((pod = _resourceMgr.findPod(null, null, dc, account.getId(), podsToAvoid)) != null) {
             podsToAvoid.add(pod.first().getId());
             // Determine what storage pool to store the volume in
             while ((pool = storageMgr.findStoragePool(dskCh, dc, pod.first(), null, null,
                     null, poolsToAvoid)) != null) {
                 break;
-
             }
         }
 
@@ -1415,7 +1412,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
             vol.setDeviceId(1l);
         }
 
-        vol.setFormat(this.getSupportedImageFormatForCluster(vm.getHypervisorType()));
+        vol.setFormat(getSupportedImageFormatForCluster(vm.getHypervisorType()));
         vol = _volsDao.persist(vol);
 
         // Save usage event and update resource count for user vm volumes
@@ -1446,7 +1443,7 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
         VolumeVO vol = new VolumeVO(type, name, vm.getDataCenterId(),
                 owner.getDomainId(), owner.getId(), offering.getId(), size,
                 offering.getMinIops(), offering.getMaxIops(), null);
-        vol.setFormat(this.getSupportedImageFormatForCluster(template.getHypervisorType()));
+        vol.setFormat(getSupportedImageFormatForCluster(template.getHypervisorType()));
         if (vm != null) {
             vol.setInstanceId(vm.getId());
         }
@@ -1558,10 +1555,10 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
             }
         }
 
-        VolumeVO volVO = this._volsDao.findById(vol.getId());
-        volVO.setFormat(this.getSupportedImageFormatForCluster(rootDiskHyperType));
-        this._volsDao.update(volVO.getId(), volVO);
-        return this.volFactory.getVolume(volVO.getId());
+        VolumeVO volVO = _volsDao.findById(vol.getId());
+        volVO.setFormat(getSupportedImageFormatForCluster(rootDiskHyperType));
+        _volsDao.update(volVO.getId(), volVO);
+        return volFactory.getVolume(volVO.getId());
     }
 
     private boolean needMoveVolume(VolumeVO rootVolumeOfVm, VolumeInfo volume) {
@@ -2768,15 +2765,15 @@ public class VolumeManagerImpl extends ManagerBase implements VolumeManager {
 
         // Clean up code to remove all those previous uploadVO and uploadMonitor code. Previous code is trying to fake an async operation purely in
         // db table with uploadVO and async_job entry, but internal implementation is actually synchronous.
-        StoragePool srcPool = (StoragePool) this.dataStoreMgr.getPrimaryDataStore(volume.getPoolId());
-        ImageStoreEntity secStore = (ImageStoreEntity) this.dataStoreMgr.getImageStore(zoneId);
+        StoragePool srcPool = (StoragePool) dataStoreMgr.getPrimaryDataStore(volume.getPoolId());
+        ImageStoreEntity secStore = (ImageStoreEntity) dataStoreMgr.getImageStore(zoneId);
         String secondaryStorageURL = secStore.getUri();
 
-        String value = this._configDao.getValue(Config.CopyVolumeWait.toString());
+        String value = _configDao.getValue(Config.CopyVolumeWait.toString());
         int copyvolumewait = NumbersUtil.parseInt(value, Integer.parseInt(Config.CopyVolumeWait.getDefaultValue()));
         // Copy volume from primary to secondary storage
-        VolumeInfo srcVol = this.volFactory.getVolume(volume.getId());
-        AsyncCallFuture<VolumeApiResult> cvAnswer = this.volService.copyVolume(srcVol, secStore);
+        VolumeInfo srcVol = volFactory.getVolume(volume.getId());
+        AsyncCallFuture<VolumeApiResult> cvAnswer = volService.copyVolume(srcVol, secStore);
         // Check if you got a valid answer.
         VolumeApiResult cvResult = null;
         try {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/43ab9506/server/test/com/cloud/resource/MockResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/resource/MockResourceManagerImpl.java b/server/test/com/cloud/resource/MockResourceManagerImpl.java
index a1c52aa..18cff80 100644
--- a/server/test/com/cloud/resource/MockResourceManagerImpl.java
+++ b/server/test/com/cloud/resource/MockResourceManagerImpl.java
@@ -26,38 +26,42 @@ import javax.naming.ConfigurationException;
 
 import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd;
 import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd;
-import org.apache.cloudstack.api.command.admin.host.*;
-import org.apache.cloudstack.api.command.admin.storage.*;
-import org.apache.cloudstack.api.command.admin.swift.*;
+import org.apache.cloudstack.api.command.admin.host.AddHostCmd;
+import org.apache.cloudstack.api.command.admin.host.AddSecondaryStorageCmd;
+import org.apache.cloudstack.api.command.admin.host.CancelMaintenanceCmd;
+import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
+import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
+import org.apache.cloudstack.api.command.admin.host.UpdateHostCmd;
+import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
+import org.apache.cloudstack.api.command.admin.storage.AddS3Cmd;
+import org.apache.cloudstack.api.command.admin.storage.ListS3sCmd;
+import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
+import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 
 import com.cloud.agent.api.StartupCommand;
 import com.cloud.agent.api.StartupRoutingCommand;
-
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.HostPodVO;
+import com.cloud.dc.Pod;
 import com.cloud.dc.PodCluster;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.exception.DiscoveryException;
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.exception.ResourceInUseException;
 import com.cloud.host.Host;
+import com.cloud.host.Host.Type;
 import com.cloud.host.HostStats;
 import com.cloud.host.HostVO;
 import com.cloud.host.Status;
-import com.cloud.host.Host.Type;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.org.Cluster;
 import com.cloud.resource.ResourceState.Event;
 import com.cloud.service.ServiceOfferingVO;
-import com.cloud.storage.ImageStore;
 import com.cloud.storage.S3;
 import com.cloud.storage.Swift;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.ManagerBase;
-import com.cloud.utils.component.Manager;
-
-
 import com.cloud.utils.fsm.NoTransitionException;
 
 @Local(value = {ResourceManager.class})
@@ -470,7 +474,7 @@ public class MockResourceManagerImpl extends ManagerBase implements ResourceMana
      * @see com.cloud.resource.ResourceManager#findPod(com.cloud.template.VirtualMachineTemplate, com.cloud.service.ServiceOfferingVO, com.cloud.dc.DataCenterVO, long, java.util.Set)
      */
     @Override
-    public Pair<HostPodVO, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc,
+    public Pair<Pod, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc,
             long accountId, Set<Long> avoids) {
         // TODO Auto-generated method stub
         return null;


[04/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
CLOUDSTACK-3347: fixed project deletion for project's owned template

Conflicts:
	server/src/com/cloud/template/TemplateAdapterBase.java


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

Branch: refs/heads/vmsync
Commit: d8560281a4ffc2cf934b3f673bcd7b6f1a8b9429
Parents: 0a241b8
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Wed Jul 3 13:40:32 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Wed Jul 3 13:48:06 2013 -0700

----------------------------------------------------------------------
 .../com/cloud/template/TemplateAdapterBase.java  | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8560281/server/src/com/cloud/template/TemplateAdapterBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java
index c5d4a6b..fce2506 100755
--- a/server/src/com/cloud/template/TemplateAdapterBase.java
+++ b/server/src/com/cloud/template/TemplateAdapterBase.java
@@ -25,8 +25,8 @@ import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
 import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
 import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
-import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
 import org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd;
+import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
@@ -46,6 +46,7 @@ import com.cloud.exception.ResourceAllocationException;
 import com.cloud.host.dao.HostDao;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.org.Grouping;
+import com.cloud.projects.ProjectManager;
 import com.cloud.server.ConfigurationServer;
 import com.cloud.storage.GuestOS;
 import com.cloud.storage.Storage.ImageFormat;
@@ -86,8 +87,9 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
 	protected @Inject ResourceLimitService _resourceLimitMgr;
 	protected @Inject DataStoreManager storeMgr;
 	@Inject TemplateManager templateMgr;
-	@Inject ConfigurationServer _configServer;
-
+    @Inject ConfigurationServer _configServer;
+    @Inject ProjectManager _projectMgr;
+	
 	@Override
 	public boolean stop() {
 		return true;
@@ -289,9 +291,16 @@ public abstract class TemplateAdapterBase extends AdapterBase implements Templat
 
 				if ((template != null)
 						&& (!template.isPublicTemplate() && (account.getId() != template.getAccountId()) && (template.getTemplateType() != TemplateType.PERHOST))) {
-					throw new PermissionDeniedException(msg + ". Permission denied.");
+				    //special handling for the project case
+				    Account owner = _accountMgr.getAccount(template.getAccountId());
+				    if (owner.getType() == Account.ACCOUNT_TYPE_PROJECT) {
+				        if (!_projectMgr.canAccessProjectAccount(account, owner.getId())) {
+	                        throw new PermissionDeniedException(msg + ". Permission denied. The caller can't access project's template");
+				        }
+		            } else {
+		                throw new PermissionDeniedException(msg + ". Permission denied.");
+		            }
 				}
-
 			} else {
 				if ((vmInstanceCheck != null) && !_domainDao.isChildDomain(account.getDomainId(), vmInstanceCheck.getDomainId())) {
 					throw new PermissionDeniedException(msg + ". Permission denied.");


[08/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
CLOUDSTACK-1676: UI > zone wizard > basic zone > pass securitygroupenabled=true if selected network offering includes security group service; pass securitygroupenabled=false if selected network offering does not include security group service.


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

Branch: refs/heads/vmsync
Commit: 410dff9d897a36e5b55a653efe444aa02ddb16b8
Parents: 1bd7442
Author: Jessica Wang <je...@apache.org>
Authored: Wed Jul 3 17:05:00 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Wed Jul 3 17:05:00 2013 -0700

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js | 49 +++++++++++++++++++------------------------
 1 file changed, 21 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/410dff9d/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index cb92c4e..08e9fe3 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -324,42 +324,28 @@
           var $form = args.$form;
 
           if (args.data['network-model'] == 'Basic') { //Basic zone
-            args.$form.find('[rel=networkOfferingId]').show();
+            args.$form.find('[rel=networkOfferingId]').show(); //will be used to create a guest network during zone creation 
             args.$form.find('[rel=guestcidraddress]').hide();						
 	    
             args.$form.find('[rel=ip6dns1]').hide();
-	    args.$form.find('[rel=ip6dns2]').hide();
+	          args.$form.find('[rel=ip6dns2]').hide();
           }
-          else { //Advanced zone
-            args.$form.find('[rel=networkOfferingId]').hide();
-						
-	    if(args.data["zone-advanced-sg-enabled"] !=	"on") { //Advanced SG-disabled zone
+          else { //Advanced zone 					
+	          if(args.data["zone-advanced-sg-enabled"] !=	"on") { //Advanced SG-disabled zone
+	            args.$form.find('[rel=networkOfferingId]').hide();
               args.$form.find('[rel=guestcidraddress]').show();
               					  
-	      args.$form.find('[rel=ip6dns1]').show();
-	      args.$form.find('[rel=ip6dns2]').show();
+	            args.$form.find('[rel=ip6dns1]').show();
+	            args.$form.find('[rel=ip6dns2]').show();
             }
-	    else { //Advanced SG-enabled zone
-	      args.$form.find('[rel=guestcidraddress]').hide();
+	          else { //Advanced SG-enabled zone
+	            args.$form.find('[rel=networkOfferingId]').show(); //will be used to create a guest network during zone creation 
+	            args.$form.find('[rel=guestcidraddress]').hide();
 
               args.$form.find('[rel=ip6dns1]').hide();
-	      args.$form.find('[rel=ip6dns2]').hide();
-            }
-          
-	  }													
-										
-      /*    setTimeout(function() {
-            if ($form.find('input[name=ispublic]').is(':checked')) {
-              $form.find('[rel=domain]').show();
-              $form.find('[rel=accountId]').show();
-            }
- 
-            else{
-
-              $form.find('[rel=domain]').hide();
-              $form.find('[rel=accountId]').hide();
-            }
-          });*/
+	            args.$form.find('[rel=ip6dns2]').hide();
+            }          
+	        }			
         },
         fields: {
           name: {
@@ -1723,7 +1709,14 @@
           var array1 = [];
           var networkType = args.data.zone.networkType;  //"Basic", "Advanced"
           array1.push("&networktype=" + todb(networkType));
-          if(networkType == "Advanced") {            
+          
+          if (networkType == "Basic") {        
+            if(selectedNetworkOfferingHavingSG == true)
+              array1.push("&securitygroupenabled=true");  
+            else
+              array1.push("&securitygroupenabled=false");             
+          }
+          else { // networkType == "Advanced"            
 						if(args.data.zone.sgEnabled	!= true) {
 							array1.push("&securitygroupenabled=false"); 
 							


[07/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
CLOUDSTACK-3207: UI > domain page > get total number of instances, volumes by both listAccounts API and listProjects API.


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

Branch: refs/heads/vmsync
Commit: 1bd74420cca0b61dca804bf8b1702373de9bc49d
Parents: b59b1b4
Author: Jessica Wang <je...@apache.org>
Authored: Wed Jul 3 15:22:19 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Wed Jul 3 15:24:52 2013 -0700

----------------------------------------------------------------------
 ui/scripts/domains.js | 48 ++++++++++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1bd74420/ui/scripts/domains.js
----------------------------------------------------------------------
diff --git a/ui/scripts/domains.js b/ui/scripts/domains.js
index e82f8ff..01f4236 100644
--- a/ui/scripts/domains.js
+++ b/ui/scripts/domains.js
@@ -435,6 +435,9 @@
             ],
             dataProvider: function(args) {
               var domainObj = args.context.domains[0];
+              var totalVMs=0;
+              var totalVolumes=0;       
+              
               $.ajax({
                 url: createURL("listAccounts&domainid=" + domainObj.id),
                 async: false,
@@ -443,26 +446,39 @@
 								},
                 success: function(json) {
                   var items = json.listaccountsresponse.account;
-                  var total;
-                  if (items != null)
-                    total = items.length;
-                  else
-                    total = 0;
-                  domainObj["accountTotal"] = total;
-                  var itemsAcc;
-                  var totalVMs=0;
-                  var totalVolumes=0;
-                  for(var i=0;i<total;i++) {
-                        itemsAcc = json.listaccountsresponse.account[i];
-                        totalVMs = totalVMs + itemsAcc.vmtotal;
-                        totalVolumes = totalVolumes + itemsAcc.volumetotal;
+                  if(items != null) {
+                    domainObj["accountTotal"] = items.length;
+                    for(var i = 0; i < items.length; i++) {
+                      totalVMs += items[i].vmtotal;
+                      totalVolumes += items[i].volumetotal;
+                    }                    
                   }
-                  domainObj["vmTotal"] = totalVMs;
-                  domainObj["volumeTotal"] = totalVolumes;
-
+                  else {
+                    domainObj["accountTotal"] = 0;
+                  }   
                 }
               });
 
+              $.ajax({
+                url: createURL("listProjects&domainid=" + domainObj.id),
+                async: false,
+                data: {
+                  details: 'min'
+                },
+                success: function(json) {
+                  var items = json.listprojectsresponse.project;
+                  if(items != null) {                    
+                    for(var i = 0; i < items.length; i++) {
+                      totalVMs += items[i].vmtotal;
+                      totalVolumes += items[i].volumetotal;
+                    }                    
+                  }                  
+                }
+              });
+              
+              domainObj["vmTotal"] = totalVMs;
+              domainObj["volumeTotal"] = totalVolumes;
+              
               /* $.ajax({
                 url: createURL("listVirtualMachines&details=min&domainid=" + domainObj.id),
                 async: false,


[02/10] Update L10N strings from Transifex to repo

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0a241b8e/client/WEB-INF/classes/resources/messages_ja.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ja.properties b/client/WEB-INF/classes/resources/messages_ja.properties
index 63d30e7..51c4316 100644
--- a/client/WEB-INF/classes/resources/messages_ja.properties
+++ b/client/WEB-INF/classes/resources/messages_ja.properties
@@ -14,18 +14,13 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-label.view.secondary.ips=\u30bb\u30ab\u30f3\u30c0\u30ea IP \u30a2\u30c9\u30ec\u30b9\u306e\u8868\u793a
-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.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.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
-label.action.delete.nic=NIC \u306e\u524a\u9664
-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
-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
+
+changed.item.properties=\u9805\u76ee\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u5909\u66f4
+confirm.enable.s3=S3\u57fa\u76e4\u30bb\u30ab\u30f3\u30c0\u30ea\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u6709\u52b9\u5316\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
+confirm.enable.swift=Swift1 \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.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.invalid.username.password=\u7121\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9
 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
@@ -34,14 +29,14 @@ error.please.specify.physical.network.tags=\u3053\u306e\u7269\u7406\u30cd\u30c3\
 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
+error.unresolved.internet.name=\u3042\u306a\u305f\u306e\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u540d\u306f\u89e3\u6c7a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002
 extractable=\u62bd\u51fa\u53ef\u80fd
 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.delete=\u5f37\u5236\u524a\u9664
 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.remove=\u5f37\u5236\u89e3\u9664
 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
+force.stop=\u5f37\u5236\u505c\u6b62
 ICMP.code=ICMP \u30b3\u30fc\u30c9
 ICMP.type=ICMP \u306e\u7a2e\u985e
 image.directory=\u753b\u50cf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea
@@ -52,21 +47,20 @@ label.account.and.security.group=\u30a2\u30ab\u30a6\u30f3\u30c8\u3001\u30bb\u30a
 label.account.id=\u30a2\u30ab\u30a6\u30f3\u30c8 ID
 label.account.name=\u30a2\u30ab\u30a6\u30f3\u30c8\u540d
 label.account.specific=\u30a2\u30ab\u30a6\u30f3\u30c8\u56fa\u6709
-label.account=\u30a2\u30ab\u30a6\u30f3\u30c8
 label.accounts=\u30a2\u30ab\u30a6\u30f3\u30c8
+label.account=\u30a2\u30ab\u30a6\u30f3\u30c8
 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.processing=ISO \u3092\u30a2\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
 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.copy.ISO.processing=ISO \u3092\u30b3\u30d4\u30fc\u3057\u3066\u3044\u307e\u3059...
 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
@@ -89,10 +83,10 @@ label.action.delete.firewall.processing=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30
 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.processing=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
 label.action.delete.IP.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u524a\u9664
-label.action.delete.ISO.processing=ISO \u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
+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=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
 label.action.delete.load.balancer=\u8ca0\u8377\u5206\u6563\u898f\u5247\u306e\u524a\u9664
 label.action.delete.network.processing=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
@@ -126,8 +120,8 @@ label.action.destroy.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u783
 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.processing=ISO \u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
 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...
@@ -166,7 +160,7 @@ 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.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
@@ -203,14 +197,13 @@ label.action.reboot.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u518d\u8d77\u52d
 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=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u767b\u9332
-label.action.release.ip.processing=IP \u30a2\u30c9\u30ec\u30b9\u3092\u89e3\u653e\u3057\u3066\u3044\u307e\u3059...
 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.resize.volume.processing=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30ea\u30b5\u30a4\u30ba\n
 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
@@ -226,27 +219,24 @@ label.action.stop.router.processing=\u30eb\u30fc\u30bf\u30fc\u3092\u505c\u6b62\u
 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.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.processing=OS \u57fa\u672c\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059...
 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\u3092\u5143\u306b\u623b\u3059
-label.actions=\u64cd\u4f5c
+label.action.vmsnapshot.create=\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u3068\u308b
+label.action.vmsnapshot.delete=\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u6d88\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.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.accounts.to=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0\u5148:
+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=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u8ffd\u52a0
+label.add.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
 label.add.ACL=ACL \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.BigSwitchVns.device=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\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
@@ -260,8 +250,17 @@ 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.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.ip.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8ffd\u52a0
+label.additional.networks=\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
 label.add.load.balancer=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\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
@@ -274,12 +273,11 @@ label.add.new.gateway=\u65b0\u3057\u3044\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30
 label.add.new.NetScaler=\u65b0\u3057\u3044 NetScaler \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.NiciraNvp.device=NVP \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u8ffd\u52a0
+label.add.NiciraNvp.device=NVP\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\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.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.region=\u9818\u57df\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
@@ -291,37 +289,25 @@ 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.to.group=\u30b0\u30eb\u30fc\u30d7\u3078\u306e\u8ffd\u52a0
+label.add=\u8ffd\u52a0
 label.add.user=\u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0
 label.add.vlan=VLAN \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.vms.to.lb=\u8ca0\u8377\u5206\u6563\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.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\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.zone=\u30be\u30fc\u30f3\u306e\u8ffd\u52a0
-label.add=\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.adding.succeeded=\u8ffd\u52a0\u3057\u307e\u3057\u305f
-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.adding=\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.additional.networks=\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
 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.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.affinity.groups=\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.username=\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8 \u30e6\u30fc\u30b6\u30fc\u540d
 label.agree=\u540c\u610f\u3059\u308b
@@ -329,31 +315,27 @@ 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.anti.affinity.group=\u30a2\u30f3\u30c1\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.anti.affinity.groups=\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.apply=\u9069\u7528
 label.assign.to.load.balancer=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u5272\u308a\u5f53\u3066\u3066\u3044\u307e\u3059
 label.assign=\u5272\u308a\u5f53\u3066
 label.associated.network.id=\u95a2\u9023\u3065\u3051\u3089\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
 label.associated.network=\u95a2\u9023\u3065\u3051\u3089\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-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.availability.zone=\u5229\u7528\u53ef\u80fd\u30be\u30fc\u30f3
+label.attached.iso=\u30a2\u30bf\u30c3\u30c1\u3055\u308c\u305f ISO
+label.author.email=\u30e1\u30fc\u30eb\u306e\u7b46\u8005
+label.author.name=\u7b46\u8005\u306e\u540d\u524d
 label.availability=\u53ef\u7528\u6027
+label.availability.zone=\u5229\u7528\u53ef\u80fd\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.basic.mode=\u57fa\u672c\u30e2\u30fc\u30c9
 label.basic=\u57fa\u672c
-label.bigswitch.controller.address=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30a2\u30c9\u30ec\u30b9
 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.broadcast.uri=Broadcast URI
 label.by.account=\u30a2\u30ab\u30a6\u30f3\u30c8
 label.by.availability=\u53ef\u7528\u6027
 label.by.domain=\u30c9\u30e1\u30a4\u30f3
@@ -363,12 +345,12 @@ 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.bytes.received=\u53d7\u4fe1\u30d0\u30a4\u30c8
-label.bytes.sent=\u9001\u4fe1\u30d0\u30a4\u30c8
 label.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
 label.capacity=\u51e6\u7406\u80fd\u529b
 label.certificate=\u8a3c\u660e\u66f8
@@ -377,32 +359,31 @@ label.change.value=\u5024\u306e\u5909\u66f4
 label.character=\u6587\u5b57
 label.checksum=MD5 \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.cidr=CIDR
-label.clean.up=\u30af\u30ea\u30fc\u30f3 \u30a2\u30c3\u30d7\u3059\u308b
+label.clean.up=\u30af\u30ea\u30fc\u30f3 \u30a2\u30c3\u30d7
 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.clusters=\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.offering=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.compute.offerings=\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.network.ACLs=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL \u306e\u69cb\u6210
-label.configure.vpc=VPC \u306e\u69cb\u6210
 label.configure=\u69cb\u6210
-label.confirm.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u78ba\u8a8d\u5165\u529b
+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
@@ -411,16 +392,16 @@ label.continue=\u7d9a\u884c
 label.corrections.saved=\u63a5\u7d9a\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f
 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 \u4e0a\u9650
-label.cpu.limits=CPU \u5236\u9650
+label.CPU.cap=CPU \u5236\u9650
+label.cpu=CPU
+label.cpu.limits=CPU\u306e\u9650\u5ea6
 label.cpu.mhz=CPU (MHz)
 label.cpu.utilized=CPU \u4f7f\u7528\u7387
-label.cpu=CPU
+label.created.by.system=\u30b7\u30b9\u30c6\u30e0\u4f5c\u6210
+label.created=\u4f5c\u6210\u65e5\u6642
 label.create.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\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.created.by.system=\u30b7\u30b9\u30c6\u30e0\u4f5c\u6210
-label.created=\u4f5c\u6210\u65e5\u6642
 label.cross.zones=\u30af\u30ed\u30b9 \u30be\u30fc\u30f3
 label.custom.disk.size=\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30b9\u30af \u30b5\u30a4\u30ba
 label.daily=\u6bce\u65e5
@@ -428,25 +409,23 @@ label.data.disk.offering=\u30c7\u30fc\u30bf \u30c7\u30a3\u30b9\u30af \u30aa\u30d
 label.date=\u65e5\u6642
 label.day.of.month=\u6bce\u6708\u6307\u5b9a\u65e5
 label.day.of.week=\u6bce\u9031\u6307\u5b9a\u65e5
-label.dead.peer.detection=\u505c\u6b62\u30d4\u30a2\u3092\u691c\u51fa\u3059\u308b
+label.dead.peer.detection=\u505c\u6b62\u30d4\u30a2\u306e\u691c\u51fa
 label.decline.invitation=\u62db\u5f85\u306e\u8f9e\u9000
 label.dedicated=\u5c02\u7528
+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.default=\u30c7\u30d5\u30a9\u30eb\u30c8
-label.delete.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u524a\u9664
-label.delete.BigSwitchVns=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
 label.delete.F5=F5 \u306e\u524a\u9664
 label.delete.gateway=\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u524a\u9664
 label.delete.NetScaler=NetScaler \u306e\u524a\u9664
-label.delete.NiciraNvp=NVP \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
+label.delete.NiciraNvp=NVP\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
 label.delete.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u524a\u9664
 label.delete.SRX=SRX \u306e\u524a\u9664
+label.delete=\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.delete=\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.description=\u8aac\u660e
@@ -455,84 +434,73 @@ 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.detaching.disk=\u30c7\u30a3\u30b9\u30af\u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059
-label.details=\u8a73\u7d30 
+label.details=\u8a73\u7d30
 label.device.id=\u30c7\u30d0\u30a4\u30b9 ID
 label.devices=\u30c7\u30d0\u30a4\u30b9
-label.DHCP.server.type=DHCP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e
 label.dhcp=DHCP
-label.direct.ips=\u5171\u6709\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e IP \u30a2\u30c9\u30ec\u30b9
+label.DHCP.server.type=DHCP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e
+label.direct.ips=\u76f4\u63a5 IP \u30a2\u30c9\u30ec\u30b9
+label.disabled=\u7121\u52b9
 label.disable.provider=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u7121\u52b9\u5316
 label.disable.vpn=VPN \u306e\u7121\u52b9\u5316
-label.disabled=\u7121\u52b9 
 label.disabling.vpn.access=VPN \u30a2\u30af\u30bb\u30b9\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
 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.read.rate=\u30c7\u30a3\u30b9\u30af\u8aad\u307f\u53d6\u308a\u901f\u5ea6 (IOPS)
-label.disk.iops.write.rate=\u30c7\u30a3\u30b9\u30af\u66f8\u304d\u8fbc\u307f\u901f\u5ea6 (IOPS)
 label.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-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 \u5358\u4f4d)
 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.dns.1=DNS 1
 label.dns.2=DNS 2
-label.DNS.domain.for.guest.networks=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e DNS \u30c9\u30e1\u30a4\u30f3
 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.id=\u30c9\u30e1\u30a4\u30f3 ID
 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.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.edit.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u7de8\u96c6
 label.edit.lb.rule=\u8ca0\u8377\u5206\u6563\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.tags=\u30bf\u30b0\u306e\u7de8\u96c6
 label.edit.traffic.type=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u306e\u7de8\u96c6
-label.edit.vpc=VPC \u306e\u7de8\u96c6
 label.edit=\u7de8\u96c6
+label.edit.vpc=VPC \u306e\u7de8\u96c6
+label.egress.rules=\u9001\u4fe1\u30eb\u30fc\u30eb
 label.egress.rule=\u9001\u4fe1\u898f\u5247
-label.egress.rules=\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\u8ca0\u8377\u5206\u6563
 label.elastic=\u30a8\u30e9\u30b9\u30c6\u30a3\u30c3\u30af
 label.email=\u96fb\u5b50\u30e1\u30fc\u30eb
 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.s3=S3\u57fa\u76e4\u30bb\u30ab\u30f3\u30c0\u30ea\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u6709\u52b9\u5316
 label.enable.swift=Swift \u306e\u6709\u52b9\u5316
 label.enable.vpn=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.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.enter.token=\u30c8\u30fc\u30af\u30f3\u306e\u5165\u529b
 label.error.code=\u30a8\u30e9\u30fc \u30b3\u30fc\u30c9
 label.error=\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.example=\u4f8b
-label.external.link=\u5916\u90e8\u30ea\u30f3\u30af
 label.f5=F5
-label.failed=\u5931\u6557 
+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
@@ -569,19 +537,19 @@ label.hints=\u30d2\u30f3\u30c8
 label.host.alerts=\u30db\u30b9\u30c8 \u30a2\u30e9\u30fc\u30c8
 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=\u30db\u30b9\u30c8
-label.hosts=\u30db\u30b9\u30c8
 label.hourly=\u6bce\u6642
 label.hypervisor.capabilities=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u6a5f\u80fd
 label.hypervisor.type=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u7a2e\u985e
-label.hypervisor.version=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
 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.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.lifetime=IKE \u751f\u5b58\u6642\u9593\\'(\\'\u79d2\u2019)\u2019\n
 label.IKE.policy=IKE \u30dd\u30ea\u30b7\u30fc
 label.info=\u60c5\u5831
 label.ingress.rule=\u53d7\u4fe1\u898f\u5247
@@ -594,18 +562,18 @@ label.installWizard.addPodIntro.subtitle=\u30dd\u30c3\u30c9\u306b\u3064\u3044\u3
 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.subtitle=\u30bb\u30ab\u30f3\u30c0\u30ea\u30fc\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u306f\uff1f
 label.installWizard.addSecondaryStorageIntro.title=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addZone.title=\u30be\u30fc\u30f3\u306e\u8ffd\u52a0
 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.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=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
 label.instances=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
+label.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
 label.internal.dns.1=\u5185\u90e8 DNS 1
 label.internal.dns.2=\u5185\u90e8 DNS 2
 label.internal.name=\u5185\u90e8\u540d
@@ -614,95 +582,84 @@ 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.invite.to=\u62db\u5f85\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8:
-label.invite=\u62db\u5f85
 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.ip=IP
-label.ipaddress=IP \u30a2\u30c9\u30ec\u30b9
-label.ips=IP \u30a2\u30c9\u30ec\u30b9
 label.IPsec.preshared.key=IPsec \u4e8b\u524d\u5171\u6709\u30ad\u30fc
-label.is.default=\u30c7\u30d5\u30a9\u30eb\u30c8 
-label.is.redundant.router=\u5197\u9577
-label.is.shared=\u5171\u6709 
-label.is.system=\u30b7\u30b9\u30c6\u30e0
+label.ips=IP
 label.iscsi=iSCSI
+label.is.default=\u30c7\u30d5\u30a9\u30eb\u30c8
 label.iso.boot=ISO \u8d77\u52d5
-label.iso=ISO 
+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.isolation.uri=Isolation 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.keep=\u7dad\u6301
-label.key=\u30ad\u30fc
 label.keyboard.type=\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u7a2e\u985e
-label.kvm.traffic.label=KVM \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
+label.key=\u30ad\u30fc
+label.kvm.traffic.label=KVM \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\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.brportugese=Brazilian Portugese
 label.lang.chinese=\u7c21\u4f53\u5b57\u4e2d\u56fd\u8a9e
 label.lang.english=\u82f1\u8a9e
-label.lang.french=\u30d5\u30e9\u30f3\u30b9\u8a9e
-label.lang.german=\u30c9\u30a4\u30c4\u8a9e
-label.lang.italian=\u30a4\u30bf\u30ea\u30a2\u8a9e
+label.lang.french=French
 label.lang.japanese=\u65e5\u672c\u8a9e
-label.lang.korean=\u97d3\u56fd\u8a9e
-label.lang.norwegian=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e
-label.lang.russian=\u30ed\u30b7\u30a2\u8a9e
+label.lang.korean=\u97d3\u56fd
+label.lang.russian=Russian
 label.lang.spanish=\u30b9\u30da\u30a4\u30f3\u8a9e
 label.last.disconnected=\u6700\u7d42\u5207\u65ad\u65e5\u6642
 label.last.name=\u59d3
 label.latest.events=\u6700\u65b0\u30a4\u30d9\u30f3\u30c8
-label.launch.vm=VM \u306e\u8d77\u52d5
-label.launch.zone=\u30be\u30fc\u30f3\u306e\u8d77\u52d5
 label.launch=\u8d77\u52d5
+label.launch.vm=VM \u306e\u8d77\u52d5
 label.LB.isolation=\u8ca0\u8377\u5206\u6563\u5206\u96e2
 label.least.connections=\u6700\u5c0f\u63a5\u7d9a
 label.level=\u30ec\u30d9\u30eb
-label.linklocal.ip=\u30ea\u30f3\u30af \u30ed\u30fc\u30ab\u30eb IP \u30a2\u30c9\u30ec\u30b9
 label.load.balancer=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e
 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.storage.enabled=\u30ed\u30fc\u30ab\u30eb \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u6709\u52b9\u306b\u3059\u308b
+label.local.storage.enabled=\u30ed\u30fc\u30ab\u30eb \u30b9\u30c8\u30ec\u30fc\u30b8\u306f\u6709\u52b9\u3067\u3059
 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.number=LUN \u756a\u53f7
 label.lun=LUN
+label.LUN.number=LUN \u756a\u53f7
 label.make.project.owner=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6240\u6709\u8005\u5316
-label.manage.resources=\u30ea\u30bd\u30fc\u30b9\u306e\u7ba1\u7406
-label.manage=\u7ba1\u7406
 label.management.ips=\u7ba1\u7406 IP \u30a2\u30c9\u30ec\u30b9
 label.management=\u7ba1\u7406
-label.max.cpus=\u6700\u5927 CPU \u30b3\u30a2\u6570
+label.manage.resources=\u30ea\u30bd\u30fc\u30b9\u306e\u7ba1\u7406
+label.manage=\u7ba1\u7406
+label.max.cpus=\u6700\u5927CPU\u30b3\u30a2\u6570
 label.max.guest.limit=\u6700\u5927\u30b2\u30b9\u30c8\u5236\u9650
-label.max.memory=\u6700\u5927\u30e1\u30e2\u30ea (MiB)
+label.maximum=\u6700\u5927
 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.maximum=\u6700\u5927
+label.max.vpcs=Max. VPCs
 label.may.continue=\u7d9a\u884c\u3067\u304d\u307e\u3059\u3002
 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.used=\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf
 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
@@ -729,7 +686,6 @@ 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=\u9818\u57df
 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
@@ -737,17 +693,17 @@ label.menu.snapshots=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
 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.vms=\u30b7\u30b9\u30c6\u30e0 VM
 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.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.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.instance.to=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c\u5148\:
+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=\u5225\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3078\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u79fb\u884c
@@ -768,15 +724,16 @@ label.name=\u540d\u524d
 label.nat.port.range=NAT \u30dd\u30fc\u30c8\u306e\u7bc4\u56f2
 label.netmask=\u30cd\u30c3\u30c8\u30de\u30b9\u30af
 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.ACLs=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL
 label.network.desc=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8aac\u660e
 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.name=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u540d
 label.network.offering.display.text=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u8868\u793a\u30c6\u30ad\u30b9\u30c8
@@ -785,26 +742,25 @@ label.network.offering.name=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u3
 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
-label.network.read=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8aad\u307f\u53d6\u308a
+label.network.read=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\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.write=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u66f8\u304d\u8fbc\u307f
 label.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.networking.and.security=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3
-label.networks=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
+label.network.write=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\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.vm=\u65b0\u3057\u3044 VM
 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.nfs=NFS
 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.transportzoneuuid=\u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8 \u30be\u30fc\u30f3\u306e UUID
+label.nicira.controller.address=\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30a2\u30c9\u30ec\u30b9
+label.nicira.l3gatewayserviceuuid=L3 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30b5\u30fc\u30d3\u30b9UUID
+label.nicira.transportzoneuuid=Transport Zone 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
@@ -812,19 +768,19 @@ label.no.data=\u8868\u793a\u3059\u308b\u30c7\u30fc\u30bf\u304c\u3042\u308a\u307e
 label.no.errors=\u6700\u8fd1\u306e\u30a8\u30e9\u30fc\u306f\u3042\u308a\u307e\u305b\u3093
 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.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.no.thanks=\u8a2d\u5b9a\u3057\u306a\u3044
-label.no=\u3044\u3044\u3048
 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.num.cpu.cores=CPU \u30b3\u30a2\u6570
+label.no=\u3044\u3044\u3048
 label.number.of.clusters=\u30af\u30e9\u30b9\u30bf\u30fc\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\u306e\u63d0\u4f9b
@@ -842,56 +798,51 @@ label.password=\u30d1\u30b9\u30ef\u30fc\u30c9
 label.path=\u30d1\u30b9
 label.perfect.forward.secrecy=Perfect Forward Secrecy
 label.physical.network.ID=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
-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.storage.IP=PING \u5bfe\u8c61\u306e\u30b9\u30c8\u30ec\u30fc\u30b8 IP \u30a2\u30c9\u30ec\u30b9
 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.please.wait=\u304a\u5f85\u3061\u304f\u3060\u3055\u3044
 label.pod.name=\u30dd\u30c3\u30c9\u540d
-label.pod=\u30dd\u30c3\u30c9
 label.pods=\u30dd\u30c3\u30c9
+label.pod=\u30dd\u30c3\u30c9
 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.PreSetup=PreSetup
-label.prev=\u623b\u308b
 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.ip=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9
 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=PKC\#8 \u79d8\u5bc6\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.privatekey=PKCS\#8 \u79d8\u5bc6\u30ad\u30fc
 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.project.view=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30d3\u30e5\u30fc
-label.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8
 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=\u30d7\u30ed\u30c8\u30b3\u30eb
 label.providers=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
 label.public.interface=\u30d1\u30d6\u30ea\u30c3\u30af \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9
-label.public.ip=\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\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.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.zone=\u30d1\u30d6\u30ea\u30c3\u30af \u30be\u30fc\u30f3
 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.quickview=\u30af\u30a4\u30c3\u30af\u30d3\u30e5\u30fc
@@ -901,7 +852,6 @@ label.redundant.router.capability=\u5197\u9577\u30eb\u30fc\u30bf\u30fc\u6a5f\u80
 label.redundant.router=\u5197\u9577\u30eb\u30fc\u30bf\u30fc
 label.redundant.state=\u5197\u9577\u72b6\u614b
 label.refresh=\u66f4\u65b0
-label.region=\u9818\u57df
 label.related=\u95a2\u9023
 label.remind.later=\u30a2\u30e9\u30fc\u30e0\u3092\u8868\u793a\u3059\u308b
 label.remove.ACL=ACL \u306e\u524a\u9664
@@ -910,32 +860,27 @@ label.remove.from.load.balancer=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\u304b\u3089
 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.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=\u9818\u57df\u306e\u524a\u9664
 label.remove.rule=\u898f\u5247\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.tier=\u968e\u5c64\u306e\u524a\u9664
 label.remove.vm.from.lb=\u8ca0\u8377\u5206\u6563\u898f\u5247\u304b\u3089\u306e VM \u306e\u524a\u9664
 label.remove.vpc=VPC \u306e\u524a\u9664
-label.removing.user=\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059
 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.required=\u5fc5\u9808\u3067\u3059
 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.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.limits=\u30ea\u30bd\u30fc\u30b9\u5236\u9650
 label.resource.state=\u30ea\u30bd\u30fc\u30b9\u306e\u72b6\u614b
-label.resource=\u30ea\u30bd\u30fc\u30b9
 label.resources=\u30ea\u30bd\u30fc\u30b9
+label.resource=\u30ea\u30bd\u30fc\u30b9
 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.restore=\u30ea\u30b9\u30c8\u30a2
 label.review=\u78ba\u8a8d
 label.revoke.project.invite=\u62db\u5f85\u306e\u53d6\u308a\u6d88\u3057
 label.role=\u5f79\u5272
@@ -943,15 +888,15 @@ label.root.disk.controller=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30b3\u3
 label.root.disk.offering=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
 label.round.robin=\u30e9\u30a6\u30f3\u30c9\u30ed\u30d3\u30f3
 label.rules=\u898f\u5247
-label.running.vms=\u5b9f\u884c\u4e2d\u306e VM 
-label.s3.access_key=\u30a2\u30af\u30bb\u30b9 \u30ad\u30fc
+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.connection_timeout=\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\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.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
+label.s3.max_error_retry=\u30a8\u30e9\u30fc\u6642\u306e\u6700\u5927\u30ea\u30c8\u30e9\u30a4\u6570
+label.s3.secret_key=\u79d8\u5bc6\u9375
+label.s3.socket_timeout=\u30bd\u30b1\u30c3\u30c8\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8
+label.s3.use_https=HTTPS\u306e\u4f7f\u7528
 label.saturday=\u571f\u66dc\u65e5
 label.save.and.continue=\u4fdd\u5b58\u3057\u3066\u7d9a\u884c
 label.save=\u4fdd\u5b58
@@ -959,16 +904,14 @@ label.saving.processing=\u4fdd\u5b58\u3057\u3066\u3044\u307e\u3059...
 label.scope=\u30b9\u30b3\u30fc\u30d7
 label.search=\u691c\u7d22
 label.secondary.storage.count=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30d7\u30fc\u30eb
-label.secondary.storage.limits=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u5236\u9650 (GiB)
-label.secondary.storage.vm=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 VM
 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.secret.key=\u79d8\u5bc6\u9375
 label.security.group.name=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u540d
-label.security.group=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
 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.select-view=\u30d3\u30e5\u30fc\u306e\u9078\u629e
+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
@@ -977,19 +920,20 @@ label.select.iso.or.template=ISO \u307e\u305f\u306f\u30c6\u30f3\u30d7\u30ec\u30f
 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.tier=\u968e\u5c64\u306e\u9078\u629e
-label.select.vm.for.static.nat=\u9759\u7684 NAT \u7528 VM \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=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
 label.session.expired=\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u6709\u52b9\u671f\u9650\u304c\u5207\u308c\u307e\u3057\u305f
-label.set.up.zone.type=\u30be\u30fc\u30f3\u306e\u7a2e\u985e\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
 label.setup.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
-label.setup.zone=\u30be\u30fc\u30f3\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
 label.setup=\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
-label.shared=\u5171\u6709
+label.set.up.zone.type=\u30be\u30fc\u30f3\u306e\u7a2e\u985e\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
+label.setup.zone=\u30be\u30fc\u30f3\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
 label.SharedMountPoint=SharedMountPoint
+label.shared=\u5171\u6709
 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.site.to.site.VPN=\u30b5\u30a4\u30c8\u9593 VPN
@@ -997,10 +941,10 @@ 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.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.s=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
 label.snapshot.schedule=\u5b9a\u671f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
-label.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
+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.source.nat=\u9001\u4fe1\u5143 NAT
 label.source=\u9001\u4fe1\u5143
 label.specify.IP.ranges=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u6307\u5b9a
@@ -1013,20 +957,20 @@ label.start.reserved.system.IP=\u4e88\u7d04\u6e08\u307f\u958b\u59cb\u30b7\u30b9\
 label.start.vlan=\u958b\u59cb VLAN
 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.vm.details=\u9759\u7684 NAT VM \u306e\u8a73\u7d30
+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.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.status=\u72b6\u614b
+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.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.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.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.title=\u624b\u9806 5. <strong>\u78ba\u8a8d</strong>
 label.step.5=\u624b\u9806 5
 label.stickiness=\u6301\u7d9a\u6027
 label.sticky.cookie-name=Cookie \u540d
@@ -1041,16 +985,16 @@ 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=\u505c\u6b62
 label.stopped.vms=\u505c\u6b62\u4e2d\u306e VM
+label.stop=\u505c\u6b62
 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.submit=\u9001\u4fe1
 label.submitted.by=[\u9001\u4fe1\u30e6\u30fc\u30b6\u30fc\: <span id\="submitted_by"></span>]
-label.succeeded=\u6210\u529f 
+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
@@ -1059,9 +1003,9 @@ label.suspend.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e00\u6642\u50
 label.system.capacity=\u30b7\u30b9\u30c6\u30e0\u306e\u51e6\u7406\u80fd\u529b
 label.system.offering=\u30b7\u30b9\u30c6\u30e0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
 label.system.service.offering=\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
+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.vms=\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.tags=\u30bf\u30b0
@@ -1076,14 +1020,14 @@ label.theme.lightblue=\u30ab\u30b9\u30bf\u30e0 - \u30e9\u30a4\u30c8 \u30d6\u30eb
 label.thursday=\u6728\u66dc\u65e5
 label.tier.details=\u968e\u5c64\u306e\u8a73\u7d30
 label.tier=\u968e\u5c64
-label.time.zone=\u30bf\u30a4\u30e0\u30be\u30fc\u30f3
-label.time=\u6642\u523b
 label.timeout.in.second = \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 (\u79d2)
 label.timeout=\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8
+label.time=\u6642\u523b
+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.CPU=CPU \u5408\u8a08
 label.total.hosts=\u30db\u30b9\u30c8\u5408\u8a08
 label.total.memory=\u30e1\u30e2\u30ea\u5408\u8a08
 label.total.of.ip=IP \u30a2\u30c9\u30ec\u30b9\u5408\u8a08
@@ -1091,8 +1035,8 @@ label.total.of.vm=VM \u5408\u8a08
 label.total.storage=\u30b9\u30c8\u30ec\u30fc\u30b8\u5408\u8a08
 label.total.vms=VM \u5408\u8a08
 label.traffic.label=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.traffic.type=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e
 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=\u7a2e\u985e
@@ -1100,18 +1044,17 @@ label.unavailable=\u4f7f\u7528\u4e0d\u80fd
 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.update.ssl.cert= SSL \u8a3c\u660e\u66f8\u306e\u66f4\u65b0
+label.update.ssl= SSL \u8a3c\u660e\u66f8\u306e\u66f4\u65b0
 label.updating=\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059
-label.upload.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
 label.upload=\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.use.vm.ip=\u6b21\u306e VM IP \u30a2\u30c9\u30ec\u30b9\u3092\u4f7f\u7528\:
 label.used=\u4f7f\u7528\u4e2d
-label.user=\u30e6\u30fc\u30b6\u30fc
 label.username=\u30e6\u30fc\u30b6\u30fc\u540d
 label.users=\u30e6\u30fc\u30b6\u30fc
+label.user=\u30e6\u30fc\u30b6\u30fc
 label.value=\u5024
 label.vcdcname=vCenter DC \u540d
 label.vcenter.cluster=vCenter \u30af\u30e9\u30b9\u30bf\u30fc
@@ -1124,47 +1067,44 @@ label.vcipaddress=vCenter IP \u30a2\u30c9\u30ec\u30b9
 label.version=\u30d0\u30fc\u30b8\u30e7\u30f3
 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=\u8868\u793a -
-label.viewing=\u8868\u793a\u9805\u76ee:
-label.virtual.appliance=\u4eee\u60f3\u30a2\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9
 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.network=\u4eee\u60f3\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.virtual.router=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
 label.virtual.routers=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
+label.virtual.router=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
 label.vlan.id=VLAN ID
 label.vlan.range=VLAN \u306e\u7bc4\u56f2
 label.vlan=VLAN
 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.name=VM \u540d
 label.vm.reboot=\u518d\u8d77\u52d5
+label.VMs.in.tier=\u968e\u5c64\u5185\u306e VM
+label.vmsnapshot.type=\u7a2e\u985e
+label.vmsnapshot=\u4eee\u60f3\u30de\u30b7\u30f3\u306e\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.VMFS.datastore=VMFS \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2
-label.vmfs=VMFS
-label.VMs.in.tier=\u968e\u5c64\u5185\u306e VM
 label.vms=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.vmware.traffic.label=VMware \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
+label.vmware.traffic.label=VMware \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u30e9\u30d9\u30eb
 label.volgroup=\u30dc\u30ea\u30e5\u30fc\u30e0 \u30b0\u30eb\u30fc\u30d7
 label.volume.limits=\u30dc\u30ea\u30e5\u30fc\u30e0\u5236\u9650
 label.volume.name=\u30dc\u30ea\u30e5\u30fc\u30e0\u540d
-label.volume=\u30dc\u30ea\u30e5\u30fc\u30e0
 label.volumes=\u30dc\u30ea\u30e5\u30fc\u30e0
+label.volume=\u30dc\u30ea\u30e5\u30fc\u30e0
 label.vpc.id=VPC ID
 label.VPC.router.details=VPC \u30eb\u30fc\u30bf\u30fc\u306e\u8a73\u7d30
 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.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
@@ -1178,38 +1118,38 @@ 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.xen.traffic.label=XenServer \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
+label.xen.traffic.label=XenServer \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u30e9\u30d9\u30eb
 label.yes=\u306f\u3044
 label.zone.details=\u30be\u30fc\u30f3\u306e\u8a73\u7d30
 label.zone.id=\u30be\u30fc\u30f3 ID
 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.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.wide=\u30be\u30fc\u30f3\u5168\u4f53
 label.zone=\u30be\u30fc\u30f3
-label.zones=\u30be\u30fc\u30f3
-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
+label.zone.wide=\u30be\u30fc\u30f3\u5168\u4f53
+label.zoneWizard.trafficType.guest=\u30b2\u30b9\u30c8\: \u30a8\u30f3\u30c9\u30e6\u30fc\u30b6\u30fc\u4eee\u60f3\u30de\u30b7\u30f3\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af
+label.zoneWizard.trafficType.management=\u7ba1\u7406\: \u30db\u30b9\u30c8\u3084\u30b7\u30b9\u30c6\u30e0VM\u306a\u3069\u3001\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3059\u308b\u3042\u3089\u3086\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u542b\u3081\u305f\u3001CloudStack\u5185\u90e8\u306e\u30ea\u30bd\u30fc\u30b9\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af
+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
+label.zoneWizard.trafficType.storage=\u30b9\u30c8\u30ec\u30fc\u30b8\: VM\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u3088\u3046\u306a\u3001\u30d7\u30e9\u30a4\u30de\u30ea\u3068\u30bb\u30ab\u30f3\u30c0\u30ea\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u30b5\u30fc\u30d0\u30fc\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3002
 managed.state=\u7ba1\u7406\u5bfe\u8c61\u72b6\u614b
-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.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=VPC\u306e\u65b0\u3057\u3044IP\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
 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.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.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.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\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u8b66\u544a\: \u540c\u3058\u5916\u90e8\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\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.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?
@@ -1221,7 +1161,7 @@ message.action.delete.security.group=\u3053\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\
 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.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?
@@ -1248,8 +1188,8 @@ message.action.manage.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u7ba1\u7406\u
 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\u307

<TRUNCATED>

[05/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
fix marvin when deploy vmware setup


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

Branch: refs/heads/vmsync
Commit: 810c64e38772719cba1c7e5cb4578c9e8c6a8d6d
Parents: d856028
Author: Edison Su <su...@gmail.com>
Authored: Tue Jul 2 11:13:11 2013 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Wed Jul 3 14:34:33 2013 -0700

----------------------------------------------------------------------
 tools/marvin/marvin/deployDataCenter.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/810c64e3/tools/marvin/marvin/deployDataCenter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/deployDataCenter.py b/tools/marvin/marvin/deployDataCenter.py
index d704375..ac96d09 100644
--- a/tools/marvin/marvin/deployDataCenter.py
+++ b/tools/marvin/marvin/deployDataCenter.py
@@ -67,7 +67,8 @@ specify a valid config file" % cfgFile)
         if clusters is None:
             return
 
-        if vmwareDc:
+        if vmwareDc is not None:
+            vmwareDc.zoneid = zoneId
             self.addVmWareDataCenter(vmwareDc)
 
         for cluster in clusters:


[10/10] git commit: updated refs/heads/vmsync to 3ecc52a

Posted by ah...@apache.org.
Re-absorb delta in master into vmsync


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

Branch: refs/heads/vmsync
Commit: 3ecc52a4f34906c03825f1e3f6c2ce6590edb023
Parents: 306d090 43ab950
Author: Alex Huang <al...@gmail.com>
Authored: Wed Jul 3 17:58:38 2013 -0700
Committer: Alex Huang <al...@gmail.com>
Committed: Wed Jul 3 17:58:38 2013 -0700

----------------------------------------------------------------------
 .../agent/manager/allocator/PodAllocator.java   |  33 ++
 .../classes/resources/messages_ar.properties    |   2 +-
 .../classes/resources/messages_fr_FR.properties |  13 +-
 .../classes/resources/messages_it_IT.properties |   6 +-
 .../classes/resources/messages_ja.properties    | 540 ++++++++-----------
 .../classes/resources/messages_ko_KR.properties |   2 -
 .../classes/resources/messages_pt_BR.properties |   4 +-
 .../classes/resources/messages_ru_RU.properties |   2 -
 .../classes/resources/messages_zh_CN.properties | 422 +++++++--------
 .../src/com/cloud/resource/ResourceManager.java |  94 ++--
 .../agent/manager/allocator/PodAllocator.java   |  35 --
 .../allocator/impl/FirstFitAllocator.java       | 117 ++--
 .../allocator/impl/TestingAllocator.java        |   3 -
 .../impl/UserConcentratedAllocator.java         |  30 +-
 .../src/com/cloud/capacity/CapacityManager.java |   1 -
 .../com/cloud/resource/ResourceManagerImpl.java |   5 +-
 .../src/com/cloud/storage/StorageManager.java   |   5 +-
 .../com/cloud/storage/StorageManagerImpl.java   |   4 +-
 .../com/cloud/storage/VolumeManagerImpl.java    |   8 +-
 .../com/cloud/template/TemplateAdapterBase.java |  23 +-
 .../cloud/resource/MockResourceManagerImpl.java |  24 +-
 tools/marvin/marvin/deployDataCenter.py         |   3 +-
 ui/scripts/domains.js                           |  48 +-
 ui/scripts/zoneWizard.js                        |  49 +-
 utils/src/com/cloud/utils/net/NetUtils.java     |  20 +-
 25 files changed, 708 insertions(+), 785 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/engine/components-api/src/com/cloud/resource/ResourceManager.java
----------------------------------------------------------------------
diff --cc engine/components-api/src/com/cloud/resource/ResourceManager.java
index b0ab926,0000000..e35e89a
mode 100755,000000..100755
--- a/engine/components-api/src/com/cloud/resource/ResourceManager.java
+++ b/engine/components-api/src/com/cloud/resource/ResourceManager.java
@@@ -1,153 -1,0 +1,155 @@@
 +// 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.resource;
 +
 +import java.util.List;
 +import java.util.Map;
 +import java.util.Set;
 +
 +import com.cloud.agent.api.StartupCommand;
 +import com.cloud.agent.api.StartupRoutingCommand;
 +import com.cloud.dc.DataCenterVO;
 +import com.cloud.dc.HostPodVO;
++import com.cloud.dc.Pod;
 +import com.cloud.dc.PodCluster;
 +import com.cloud.exception.AgentUnavailableException;
 +import com.cloud.host.Host;
 +import com.cloud.host.Host.Type;
 +import com.cloud.host.HostStats;
 +import com.cloud.host.HostVO;
 +import com.cloud.host.Status;
 +import com.cloud.hypervisor.Hypervisor.HypervisorType;
 +import com.cloud.resource.ResourceState.Event;
 +import com.cloud.service.ServiceOfferingVO;
 +import com.cloud.template.VirtualMachineTemplate;
 +import com.cloud.utils.Pair;
 +import com.cloud.utils.fsm.NoTransitionException;
 +
 +/**
 + * ResourceManager manages how physical resources are organized within the
 + * CloudStack. It also manages the life cycle of the physical resources.
 + */
- public interface ResourceManager extends ResourceService{
++public interface ResourceManager extends ResourceService {
 +    /**
 +     * Register a listener for different types of resource life cycle events.
 +     * There can only be one type of listener per type of host.
 +     * 
 +     * @param Event type see ResourceListener.java, allow combination of multiple events.
 +     * @param listener the listener to notify.
 +     */
 +    public void registerResourceEvent(Integer event, ResourceListener listener);
-     
++
 +    public void unregisterResourceEvent(ResourceListener listener);
-     
++
 +    /**
 +     * 
 +     * @param name of adapter
 +     * @param adapter
-      * @param hates, a list of names which will be eliminated by this adapter. Especially for the case where 
++     * @param hates, a list of names which will be eliminated by this adapter. Especially for the case where
 +     * can be only one adapter responds to an event, e.g. startupCommand
 +     */
 +    public void registerResourceStateAdapter(String name, ResourceStateAdapter adapter);
-     
++
 +    public void unregisterResourceStateAdapter(String name);
-     
- 	public Host createHostAndAgent(Long hostId, ServerResource resource, Map<String, String> details, boolean old, List<String> hostTags,
- 	        boolean forRebalance);
- 	
- 	public Host addHost(long zoneId, ServerResource resource, Type hostType, Map<String, String> hostDetails);
- 	
- 	public HostVO createHostVOForConnectedAgent(StartupCommand[] cmds);
- 	
- 	public void checkCIDR(HostPodVO pod, DataCenterVO dc, String serverPrivateIP, String serverPrivateNetmask);
- 	
- 	public HostVO fillRoutingHostVO(HostVO host, StartupRoutingCommand ssCmd, HypervisorType hyType, Map<String, String> details, List<String> hostTags);
- 	
- 	public void deleteRoutingHost(HostVO host, boolean isForced, boolean forceDestroyStorage) throws UnableDeleteHostException;
- 	
++
++    public Host createHostAndAgent(Long hostId, ServerResource resource, Map<String, String> details, boolean old, List<String> hostTags,
++            boolean forRebalance);
++
++    public Host addHost(long zoneId, ServerResource resource, Type hostType, Map<String, String> hostDetails);
++
++    public HostVO createHostVOForConnectedAgent(StartupCommand[] cmds);
++
++    public void checkCIDR(HostPodVO pod, DataCenterVO dc, String serverPrivateIP, String serverPrivateNetmask);
++
++    public HostVO fillRoutingHostVO(HostVO host, StartupRoutingCommand ssCmd, HypervisorType hyType, Map<String, String> details, List<String> hostTags);
++
++    public void deleteRoutingHost(HostVO host, boolean isForced, boolean forceDestroyStorage) throws UnableDeleteHostException;
++
 +    public boolean executeUserRequest(long hostId, ResourceState.Event event) throws AgentUnavailableException;
 +
- 	boolean resourceStateTransitTo(Host host, Event event, long msId) throws NoTransitionException;
++    boolean resourceStateTransitTo(Host host, Event event, long msId) throws NoTransitionException;
++
++    boolean umanageHost(long hostId);
++
++    boolean maintenanceFailed(long hostId);
 +
- 	boolean umanageHost(long hostId);
++    public boolean maintain(final long hostId) throws AgentUnavailableException;
 +
- 	boolean maintenanceFailed(long hostId);
- 	
- 	public boolean maintain(final long hostId) throws AgentUnavailableException;
- 	
 +    @Override
 +    public boolean deleteHost(long hostId, boolean isForced, boolean isForceDeleteStorage);
-     
++
 +    public List<HostVO> findDirectlyConnectedHosts();
-     
++
 +    public List<HostVO> listAllUpAndEnabledHosts(Host.Type type, Long clusterId, Long podId, long dcId);
-     
++
 +    public List<HostVO> listAllHostsInCluster(long clusterId);
-     
++
 +    public List<HostVO> listHostsInClusterByStatus(long clusterId, Status status);
-     
++
 +    public List<HostVO> listAllUpAndEnabledHostsInOneZoneByType(Host.Type type, long dcId);
++
 +    public List<HostVO> listAllUpAndEnabledHostsInOneZoneByHypervisor(HypervisorType type, long dcId);
-     
++
 +    public List<HostVO> listAllHostsInOneZoneByType(Host.Type type, long dcId);
-     
++
 +    public List<HostVO> listAllHostsInAllZonesByType(Type type);
-     
++
 +    public List<HypervisorType> listAvailHypervisorInZone(Long hostId, Long zoneId);
-     
++
 +    public HostVO findHostByGuid(String guid);
-     
++
 +    public HostVO findHostByName(String name);
-     
++
 +    public List<HostVO> listHostsByNameLike(String name);
-     
++
 +    /**
 +     * Find a pod based on the user id, template, and data center.
 +     * 
 +     * @param template
 +     * @param dc
 +     * @param userId
 +     * @return
 +     */
-     Pair<HostPodVO, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId, Set<Long> avoids);
-     
++    Pair<Pod, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId, Set<Long> avoids);
++
 +    HostStats getHostStatistics(long hostId);
-     
++
 +    Long getGuestOSCategoryId(long hostId);
-     
++
 +    String getHostTags(long hostId);
-     
++
 +    List<PodCluster> listByDataCenter(long dcId);
 +
- 	List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId);
++    List<HostVO> listAllNotInMaintenanceHostsInOneZone(Type type, Long dcId);
 +
- 	HypervisorType getDefaultHypervisor(long zoneId);
++    HypervisorType getDefaultHypervisor(long zoneId);
 +
- 	HypervisorType getAvailableHypervisor(long zoneId);
++    HypervisorType getAvailableHypervisor(long zoneId);
 +
 +    Discoverer getMatchingDiscover(HypervisorType hypervisorType);
 +
- 	List<HostVO> findHostByGuid(long dcId, String guid);
++    List<HostVO> findHostByGuid(long dcId, String guid);
 +
 +    /**
 +     * @param type
 +     * @param clusterId
 +     * @param podId
 +     * @param dcId
 +     * @return
 +     */
 +    List<HostVO> listAllUpAndEnabledNonHAHosts(Type type, Long clusterId, Long podId, long dcId);
 +}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
index 778ec84,4329c70..a6b92cf
--- a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java
@@@ -86,42 -101,43 +101,42 @@@ public class FirstFitAllocator extends 
      float _factor = 1;
      boolean _checkHvm = true;
      protected String _allocationAlgorithm = "random";
-     @Inject CapacityManager _capacityMgr;
-     
+     @Inject
+     CapacityManager _capacityMgr;
 -
 +    
 +	@Override
 +    public List<Host> allocateTo(VirtualMachineProfile vmProfile, DeploymentPlan plan, Type type,
 +			ExcludeList avoid, int returnUpTo) {
 +	    return allocateTo(vmProfile, plan, type, avoid, returnUpTo, true);
 +	}
 +	
      @Override
 -    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type,
 -            ExcludeList avoid, int returnUpTo) {
 -        return allocateTo(vmProfile, plan, type, avoid, returnUpTo, true);
 -    }
 -
 -    @Override
 -    public List<Host> allocateTo(VirtualMachineProfile<? extends VirtualMachine> vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo,
 -            boolean considerReservedCapacity) {
 -
 -        long dcId = plan.getDataCenterId();
 -        Long podId = plan.getPodId();
 -        Long clusterId = plan.getClusterId();
 -        ServiceOffering offering = vmProfile.getServiceOffering();
 -        VMTemplateVO template = (VMTemplateVO)vmProfile.getTemplate();
 -        Account account = vmProfile.getOwner();
 +    public List<Host> allocateTo(VirtualMachineProfile vmProfile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo, boolean considerReservedCapacity) {
 +	
 +	    long dcId = plan.getDataCenterId();
 +		Long podId = plan.getPodId();
 +		Long clusterId = plan.getClusterId();
 +		ServiceOffering offering = vmProfile.getServiceOffering();
 +		VMTemplateVO template = (VMTemplateVO)vmProfile.getTemplate();
 +		Account account = vmProfile.getOwner();
  
          if (type == Host.Type.Storage) {
              // FirstFitAllocator should be used for user VMs only since it won't care whether the host is capable of routing or not
 -            return new ArrayList<Host>();
 +        	return new ArrayList<Host>();
          }
 -
 +        
-         if(s_logger.isDebugEnabled()){
-             s_logger.debug("Looking for hosts in dc: " + dcId + "  pod:" + podId + "  cluster:" + clusterId );
+         if (s_logger.isDebugEnabled()) {
+             s_logger.debug("Looking for hosts in dc: " + dcId + "  pod:" + podId + "  cluster:" + clusterId);
          }
 -
 +        
          String hostTagOnOffering = offering.getHostTag();
          String hostTagOnTemplate = template.getTemplateTag();
 -
 +        
          boolean hasSvcOfferingTag = hostTagOnOffering != null ? true : false;
          boolean hasTemplateTag = hostTagOnTemplate != null ? true : false;
 -
 -        List<HostVO> clusterHosts = new ArrayList<HostVO>();
 -
 +        
 +        List<? extends Host> clusterHosts = new ArrayList<Host>();
 +        
          String haVmTag = (String)vmProfile.getParameter(VirtualMachineProfile.Param.HaTag);
          if (haVmTag != null) {
              clusterHosts = _hostDao.listByHostTag(type, clusterId, podId, dcId, haVmTag);
@@@ -145,21 -161,21 +160,21 @@@
                          s_logger.debug("Looking for hosts having tag specified on Template:" + hostTagOnTemplate);
                      }
                      hostsMatchingTemplateTag = _hostDao.listByHostTag(type, clusterId, podId, dcId, hostTagOnTemplate);
-                     if (s_logger.isDebugEnabled()){
-                         s_logger.debug("Hosts with tag '" + hostTagOnTemplate+"' are:" + hostsMatchingTemplateTag);
+                     if (s_logger.isDebugEnabled()) {
+                         s_logger.debug("Hosts with tag '" + hostTagOnTemplate + "' are:" + hostsMatchingTemplateTag);
                      }
                  }
 -
 +                
-                 if (hasSvcOfferingTag && hasTemplateTag){
+                 if (hasSvcOfferingTag && hasTemplateTag) {
                      hostsMatchingOfferingTag.retainAll(hostsMatchingTemplateTag);
                      clusterHosts = _hostDao.listByHostTag(type, clusterId, podId, dcId, hostTagOnTemplate);
-                     if (s_logger.isDebugEnabled()){
-                         s_logger.debug("Found "+ hostsMatchingOfferingTag.size() +" Hosts satisfying both tags, host ids are:" + hostsMatchingOfferingTag);
+                     if (s_logger.isDebugEnabled()) {
+                         s_logger.debug("Found " + hostsMatchingOfferingTag.size() + " Hosts satisfying both tags, host ids are:" + hostsMatchingOfferingTag);
                      }
 -
 +                    
                      clusterHosts = hostsMatchingOfferingTag;
                  } else {
-                     if (hasSvcOfferingTag){
+                     if (hasSvcOfferingTag) {
                          clusterHosts = hostsMatchingOfferingTag;
                      } else {
                          clusterHosts = hostsMatchingTemplateTag;
@@@ -228,16 -244,16 +243,16 @@@
      protected List<Host> allocateTo(DeploymentPlan plan, ServiceOffering offering, VMTemplateVO template, ExcludeList avoid, List<? extends Host> hosts, int returnUpTo,
              boolean considerReservedCapacity, Account account) {
          if (_allocationAlgorithm.equals("random") || _allocationAlgorithm.equals("userconcentratedpod_random")) {
 -            // Shuffle this so that we don't check the hosts in the same order.
 +        	// Shuffle this so that we don't check the hosts in the same order.
              Collections.shuffle(hosts);
-         }else if(_allocationAlgorithm.equals("userdispersing")){
+         } else if (_allocationAlgorithm.equals("userdispersing")) {
              hosts = reorderHostsByNumberOfVms(plan, hosts, account);
          }
 -
 -        if (s_logger.isDebugEnabled()) {
 +    	
 +    	if (s_logger.isDebugEnabled()) {
-             s_logger.debug("FirstFitAllocator has " + hosts.size() + " hosts to check for allocation: "+hosts);
+             s_logger.debug("FirstFitAllocator has " + hosts.size() + " hosts to check for allocation: " + hosts);
          }
 -
 +        
          // We will try to reorder the host lists such that we give priority to hosts that have
          // the minimums to support a VM's requirements
          hosts = prioritizeHosts(template, hosts);
@@@ -253,31 -269,32 +268,32 @@@
          List<Host> suitableHosts = new ArrayList<Host>();
  
          for (Host host : hosts) {
-         	if(suitableHosts.size() == returnUpTo){
+             if (suitableHosts.size() == returnUpTo) {
 -                break;
 -            }
 +        		break;
 +        	}
              if (avoid.shouldAvoid(host)) {
                  if (s_logger.isDebugEnabled()) {
-                     s_logger.debug("Host name: " + host.getName() + ", hostId: "+ host.getId() +" is in avoid set, skipping this and trying other available hosts");
+                     s_logger.debug("Host name: " + host.getName() + ", hostId: " + host.getId() + " is in avoid set, skipping this and trying other available hosts");
                  }
                  continue;
              }
 -
 +                        
              //find number of guest VMs occupying capacity on this host.
-             if (_capacityMgr.checkIfHostReachMaxGuestLimit(host)){
+             if (_capacityMgr.checkIfHostReachMaxGuestLimit(host)) {
                  if (s_logger.isDebugEnabled()) {
-                     s_logger.debug("Host name: " + host.getName() + ", hostId: "+ host.getId() +" already has max Running VMs(count includes system VMs), skipping this and trying other available hosts");
+                     s_logger.debug("Host name: " + host.getName() + ", hostId: " + host.getId()
+                             + " already has max Running VMs(count includes system VMs), skipping this and trying other available hosts");
                  }
                  continue;
              }
  
              boolean numCpusGood = host.getCpus().intValue() >= offering.getCpu();
              boolean cpuFreqGood = host.getSpeed().intValue() >= offering.getSpeed();
 -            int cpu_requested = offering.getCpu() * offering.getSpeed();
 -            long ram_requested = offering.getRamSize() * 1024L * 1024L;
 +    		int cpu_requested = offering.getCpu() * offering.getSpeed();
 +    		long ram_requested = offering.getRamSize() * 1024L * 1024L;
              Cluster cluster = _clusterDao.findById(host.getClusterId());
-             ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(),"cpuOvercommitRatio");
-             ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(),"memoryOvercommitRatio");
+             ClusterDetailsVO clusterDetailsCpuOvercommit = _clusterDetailsDao.findDetail(cluster.getId(), "cpuOvercommitRatio");
+             ClusterDetailsVO clusterDetailsRamOvercommmt = _clusterDetailsDao.findDetail(cluster.getId(), "memoryOvercommitRatio");
              Float cpuOvercommitRatio = Float.parseFloat(clusterDetailsCpuOvercommit.getValue());
              Float memoryOvercommitRatio = Float.parseFloat(clusterDetailsRamOvercommmt.getValue());
  
@@@ -295,11 -313,11 +312,11 @@@
                  avoid.addHost(host.getId());
              }
          }
 -
 +        
          if (s_logger.isDebugEnabled()) {
-             s_logger.debug("Host Allocator returning "+suitableHosts.size() +" suitable hosts");
+             s_logger.debug("Host Allocator returning " + suitableHosts.size() + " suitable hosts");
          }
 -
 +        
          return suitableHosts;
      }
  
@@@ -310,26 -328,26 +327,26 @@@
          long dcId = plan.getDataCenterId();
          Long podId = plan.getPodId();
          Long clusterId = plan.getClusterId();
 -
 +        
          List<Long> hostIdsByVmCount = _vmInstanceDao.listHostIdsByVmCount(dcId, podId, clusterId, account.getAccountId());
          if (s_logger.isDebugEnabled()) {
-             s_logger.debug("List of hosts in ascending order of number of VMs: "+ hostIdsByVmCount);
+             s_logger.debug("List of hosts in ascending order of number of VMs: " + hostIdsByVmCount);
          }
 -
 +        
          //now filter the given list of Hosts by this ordered list
          Map<Long, Host> hostMap = new HashMap<Long, Host>();
          for (Host host : hosts) {
              hostMap.put(host.getId(), host);
          }
          List<Long> matchingHostIds = new ArrayList<Long>(hostMap.keySet());
 -
 +        
          hostIdsByVmCount.retainAll(matchingHostIds);
 -
 +        
          List<Host> reorderedHosts = new ArrayList<Host>();
-         for(Long id: hostIdsByVmCount){
+         for (Long id : hostIdsByVmCount) {
              reorderedHosts.add(hostMap.get(id));
          }
 -
 +        
          return reorderedHosts;
      }
  
@@@ -341,120 -359,120 +358,120 @@@
      }
  
      protected List<? extends Host> prioritizeHosts(VMTemplateVO template, List<? extends Host> hosts) {
 -        if (template == null) {
 -            return hosts;
 -        }
 -
 -        // Determine the guest OS category of the template
 -        String templateGuestOSCategory = getTemplateGuestOSCategory(template);
 -
 +    	if (template == null) {
 +    		return hosts;
 +    	}
 +    	
 +    	// Determine the guest OS category of the template
 +    	String templateGuestOSCategory = getTemplateGuestOSCategory(template);
 +    	
          List<Host> prioritizedHosts = new ArrayList<Host>();
          List<Host> noHvmHosts = new ArrayList<Host>();
 -
 -        // If a template requires HVM and a host doesn't support HVM, remove it from consideration
 +    	
 +    	// If a template requires HVM and a host doesn't support HVM, remove it from consideration
          List<Host> hostsToCheck = new ArrayList<Host>();
 -        if (template.isRequiresHvm()) {
 +    	if (template.isRequiresHvm()) {
              for (Host host : hosts) {
 -                if (hostSupportsHVM(host)) {
 -                    hostsToCheck.add(host);
 -                } else {
 -                    noHvmHosts.add(host);
 -                }
 -            }
 -        } else {
 -            hostsToCheck.addAll(hosts);
 -        }
 -
 -        if (s_logger.isDebugEnabled()) {
 -            if (noHvmHosts.size() > 0) {
 +    			if (hostSupportsHVM(host)) {
 +    				hostsToCheck.add(host);
 +			} else {
 +				noHvmHosts.add(host);
 +    			}
 +    		}
 +    	} else {
 +    		hostsToCheck.addAll(hosts);
 +    	}
 +    	
 +	if (s_logger.isDebugEnabled()) {
 +		if (noHvmHosts.size() > 0) {
- 			s_logger.debug("Not considering hosts: "  + noHvmHosts + "  to deploy template: " + template +" as they are not HVM enabled");
+                 s_logger.debug("Not considering hosts: " + noHvmHosts + "  to deploy template: " + template + " as they are not HVM enabled");
 -            }
 -        }
 -        // If a host is tagged with the same guest OS category as the template, move it to a high priority list
 -        // If a host is tagged with a different guest OS category than the template, move it to a low priority list
 +		}
 +	}
 +    	// If a host is tagged with the same guest OS category as the template, move it to a high priority list
 +    	// If a host is tagged with a different guest OS category than the template, move it to a low priority list
          List<Host> highPriorityHosts = new ArrayList<Host>();
          List<Host> lowPriorityHosts = new ArrayList<Host>();
          for (Host host : hostsToCheck) {
 -            String hostGuestOSCategory = getHostGuestOSCategory(host);
 -            if (hostGuestOSCategory == null) {
 -                continue;
 -            } else if (templateGuestOSCategory.equals(hostGuestOSCategory)) {
 -                highPriorityHosts.add(host);
 -            } else {
 -                lowPriorityHosts.add(host);
 -            }
 -        }
 -
 -        hostsToCheck.removeAll(highPriorityHosts);
 -        hostsToCheck.removeAll(lowPriorityHosts);
 -
 -        // Prioritize the remaining hosts by HVM capability
 +    		String hostGuestOSCategory = getHostGuestOSCategory(host);
 +    		if (hostGuestOSCategory == null) {
 +    			continue;
 +    		} else if (templateGuestOSCategory.equals(hostGuestOSCategory)) {
 +    			highPriorityHosts.add(host);
 +    		} else {
 +    			lowPriorityHosts.add(host);
 +    		}
 +    	}
 +    	
 +    	hostsToCheck.removeAll(highPriorityHosts);
 +    	hostsToCheck.removeAll(lowPriorityHosts);
 +    	
 +    	// Prioritize the remaining hosts by HVM capability
          for (Host host : hostsToCheck) {
 -            if (!template.isRequiresHvm() && !hostSupportsHVM(host)) {
 -                // Host and template both do not support hvm, put it as first consideration
 -                prioritizedHosts.add(0, host);
 -            } else {
 -                // Template doesn't require hvm, but the machine supports it, make it last for consideration
 -                prioritizedHosts.add(host);
 -            }
 -        }
 -
 -        // Merge the lists
 -        prioritizedHosts.addAll(0, highPriorityHosts);
 -        prioritizedHosts.addAll(lowPriorityHosts);
 -
 -        return prioritizedHosts;
 +    		if (!template.isRequiresHvm() && !hostSupportsHVM(host)) {
 +    			// Host and template both do not support hvm, put it as first consideration
 +    			prioritizedHosts.add(0, host);
 +    		} else {
 +    			// Template doesn't require hvm, but the machine supports it, make it last for consideration
 +    			prioritizedHosts.add(host);
 +    		}
 +    	}
 +    	
 +    	// Merge the lists
 +    	prioritizedHosts.addAll(0, highPriorityHosts);
 +    	prioritizedHosts.addAll(lowPriorityHosts);
 +    	
 +    	return prioritizedHosts;
      }
 -
 +    
      protected boolean hostSupportsHVM(Host host) {
-         if ( !_checkHvm ) {
+         if (!_checkHvm) {
              return true;
          }
 -        // Determine host capabilities
 -        String caps = host.getCapabilities();
 -
 -        if (caps != null) {
 +    	// Determine host capabilities
 +		String caps = host.getCapabilities();
 +		
 +		if (caps != null) {
              String[] tokens = caps.split(",");
              for (String token : tokens) {
 -                if (token.contains("hvm")) {
 -                    return true;
 -                }
 +            	if (token.contains("hvm")) {
 +            	    return true;
 +            	}
              }
 -        }
 -
 -        return false;
 +		}
 +		
 +		return false;
      }
 -
 +    
      protected String getHostGuestOSCategory(Host host) {
 -        DetailVO hostDetail = _hostDetailsDao.findDetail(host.getId(), "guest.os.category.id");
 -        if (hostDetail != null) {
 -            String guestOSCategoryIdString = hostDetail.getValue();
 -            long guestOSCategoryId;
 -
 -            try {
 -                guestOSCategoryId = Long.parseLong(guestOSCategoryIdString);
 -            } catch (Exception e) {
 -                return null;
 -            }
 -
 -            GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
 -
 -            if (guestOSCategory != null) {
 -                return guestOSCategory.getName();
 -            } else {
 -                return null;
 -            }
 -        } else {
 -            return null;
 -        }
 +		DetailVO hostDetail = _hostDetailsDao.findDetail(host.getId(), "guest.os.category.id");
 +		if (hostDetail != null) {
 +			String guestOSCategoryIdString = hostDetail.getValue();
 +			long guestOSCategoryId;
 +			
 +			try {
 +				guestOSCategoryId = Long.parseLong(guestOSCategoryIdString);
 +			} catch (Exception e) {
 +				return null;
 +			}
 +			
 +			GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
 +			
 +			if (guestOSCategory != null) {
 +				return guestOSCategory.getName();
 +			} else {
 +				return null;
 +			}
 +		} else {
 +			return null;
 +		}
      }
 -
 +    
      protected String getTemplateGuestOSCategory(VMTemplateVO template) {
 -        long guestOSId = template.getGuestOSId();
 -        GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
 -        long guestOSCategoryId = guestOS.getCategoryId();
 -        GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
 -        return guestOSCategory.getName();
 +    	long guestOSId = template.getGuestOSId();
 +    	GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
 +    	long guestOSCategoryId = guestOS.getCategoryId();
 +    	GuestOSCategoryVO guestOSCategory = _guestOSCategoryDao.findById(guestOSCategoryId);
 +    	return guestOSCategory.getName();
      }
  
      @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/resource/ResourceManagerImpl.java
index c0e4254,054ac40..428febc
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@@ -2468,10 -2470,10 +2469,10 @@@ public class ResourceManagerImpl extend
      }
  
      @Override
-     public Pair<HostPodVO, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId,
+     public Pair<Pod, Long> findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long accountId,
 -            Set<Long> avoids) {
 -        for (PodAllocator allocator : _podAllocators) {
 +			Set<Long> avoids) {
 +		for (PodAllocator allocator : _podAllocators) {
-             final Pair<HostPodVO, Long> pod = allocator.allocateTo(template, offering, dc, accountId, avoids);
+             final Pair<Pod, Long> pod = allocator.allocateTo(template, offering, dc, accountId, avoids);
              if (pod != null) {
                  return pod;
              }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/StorageManagerImpl.java
index 13eb98a,d9ef853..c6233db
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@@ -401,22 -400,22 +401,22 @@@ public class StorageManagerImpl extend
      }
  
      @Override
-     public StoragePool findStoragePool(DiskProfile dskCh, final DataCenterVO dc, HostPodVO pod, Long clusterId, Long hostId, VMInstanceVO vm,
+     public StoragePool findStoragePool(DiskProfile dskCh, final DataCenterVO dc, Pod pod, Long clusterId, Long hostId, VMInstanceVO vm,
 -                                       final Set<StoragePool> avoid) {
 +            final Set<StoragePool> avoid) {
  
 -        VirtualMachineProfile<VMInstanceVO> profile = new VirtualMachineProfileImpl<VMInstanceVO>(vm);
 +        VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
          for (StoragePoolAllocator allocator : _storagePoolAllocators) {
 -
 -            ExcludeList avoidList = new ExcludeList();
 +        	
 +        	ExcludeList avoidList = new ExcludeList();
              for (StoragePool pool : avoid) {
 -                avoidList.addPool(pool.getId());
 -            }
 -            DataCenterDeployment plan = new DataCenterDeployment(dc.getId(), pod.getId(), clusterId, hostId, null, null);
 -
 -            final List<StoragePool> poolList = allocator.allocateToPool(dskCh, profile, plan, avoidList, 1);
 -            if (poolList != null && !poolList.isEmpty()) {
 +        		avoidList.addPool(pool.getId());
 +        	}
 +        	DataCenterDeployment plan = new DataCenterDeployment(dc.getId(), pod.getId(), clusterId, hostId, null, null);
 +        	
 +        	final List<StoragePool> poolList = allocator.allocateToPool(dskCh, profile, plan, avoidList, 1);
 +        	if (poolList != null && !poolList.isEmpty()) {
                  return (StoragePool) dataStoreMgr.getDataStore(poolList.get(0).getId(), DataStoreRole.Primary);
 -            }
 +        	}
          }
          return null;
      }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/storage/VolumeManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/VolumeManagerImpl.java
index 0554f22,d63e631..31a0ac2
--- a/server/src/com/cloud/storage/VolumeManagerImpl.java
+++ b/server/src/com/cloud/storage/VolumeManagerImpl.java
@@@ -549,10 -549,9 +548,9 @@@ public class VolumeManagerImpl extends 
              while ((pool = storageMgr.findStoragePool(dskCh, dc, pod.first(), null, null,
                      null, poolsToAvoid)) != null) {
                  break;
-                 
              }
          }
 -
 +        
          if (pool == null) {
              String msg = "There are no available storage pools to store the volume in";
              s_logger.info(msg);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ecc52a4/server/src/com/cloud/template/TemplateAdapterBase.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/template/TemplateAdapterBase.java
index 88909d8,fce2506..b67d759
--- a/server/src/com/cloud/template/TemplateAdapterBase.java
+++ b/server/src/com/cloud/template/TemplateAdapterBase.java
@@@ -21,17 -21,16 +21,17 @@@ import java.util.Map
  
  import javax.inject.Inject;
  
++import org.apache.log4j.Logger;
++
  import org.apache.cloudstack.api.ApiConstants;
  import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
  import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
  import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
- import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
  import org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd;
+ import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
 -import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 +import org.apache.cloudstack.context.CallContext;
- import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
  import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
  import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
--import org.apache.log4j.Logger;
  
  import com.cloud.api.ApiDBUtils;
  import com.cloud.configuration.Config;
@@@ -289,9 -291,16 +291,16 @@@ public abstract class TemplateAdapterBa
  
  				if ((template != null)
  						&& (!template.isPublicTemplate() && (account.getId() != template.getAccountId()) && (template.getTemplateType() != TemplateType.PERHOST))) {
+ 				    //special handling for the project case
+ 				    Account owner = _accountMgr.getAccount(template.getAccountId());
+ 				    if (owner.getType() == Account.ACCOUNT_TYPE_PROJECT) {
+ 				        if (!_projectMgr.canAccessProjectAccount(account, owner.getId())) {
+ 	                        throw new PermissionDeniedException(msg + ". Permission denied. The caller can't access project's template");
+ 				        }
+ 		            } else {
 -		                throw new PermissionDeniedException(msg + ". Permission denied.");
 -		            }
 +					throw new PermissionDeniedException(msg + ". Permission denied.");
 +				}
- 
+ 				}
  			} else {
  				if ((vmInstanceCheck != null) && !_domainDao.isChildDomain(account.getDomainId(), vmInstanceCheck.getDomainId())) {
  					throw new PermissionDeniedException(msg + ". Permission denied.");
@@@ -337,9 -346,9 +346,10 @@@
  		return new TemplateProfile(userId, template, zoneId);
  	}
  
--	public TemplateProfile prepareExtractTemplate(ExtractTemplateCmd cmd) {
++	@Override
++    public TemplateProfile prepareExtractTemplate(ExtractTemplateCmd cmd) {
  		Long templateId = cmd.getId();
 -		Long userId = UserContext.current().getCallerUserId();
 +		Long userId = CallContext.current().getCallingUserId();
  	        Long zoneId = cmd.getZoneId();
  
  		VMTemplateVO template = _tmpltDao.findById(templateId.longValue());
@@@ -349,12 -358,12 +359,13 @@@
  		return new TemplateProfile(userId, template, zoneId);
  	}
  
--	public TemplateProfile prepareDelete(DeleteIsoCmd cmd) {
++	@Override
++    public TemplateProfile prepareDelete(DeleteIsoCmd cmd) {
  		Long templateId = cmd.getId();
 -        Long userId = UserContext.current().getCallerUserId();
 -        Account account = UserContext.current().getCaller();
 +        Long userId = CallContext.current().getCallingUserId();
 +        Account account = CallContext.current().getCallingAccount();
          Long zoneId = cmd.getZoneId();
 -
 +        
          VMTemplateVO template = _tmpltDao.findById(templateId.longValue());
          if (template == null) {
              throw new InvalidParameterValueException("unable to find iso with id " + templateId);