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);