You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2013/04/24 18:23:25 UTC

[01/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Updated Branches:
  refs/heads/internallb 8057567aa -> ca2fc3065


CLOUDSTACK-1343: cloudstack UI - baremetal - zone wizard - ask whether to enable the zone or not after zone creation is completed.


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

Branch: refs/heads/internallb
Commit: 28572345d9734117f77755b98c3a64fce4bb67e8
Parents: a1ecc73
Author: Jessica Wang <je...@citrix.com>
Authored: Fri Apr 19 12:26:46 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Fri Apr 19 12:27:28 2013 -0700

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/28572345/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index 6299fab..aa2c2fa 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -3052,16 +3052,16 @@
               success: function(json) {
                 args.data.returnedGuestNetwork.returnedVlanIpRange = json.createvlaniprangeresponse.vlan;
                 
-								//when hypervisor is BareMetal (begin)   						
-								if(args.data.zone.hypervisor == "BareMetal") {
-								  alert('Zone creation is completed. Please refresh this page.');
+								if(args.data.zone.hypervisor == "BareMetal") { //if hypervisor is BareMetal, zone creation is completed at this point.										  
+									complete({
+										data: args.data
+									});									
 								}								
 								else {
 									stepFns.addCluster({
 										data: args.data
 									});
-								}
-								//when hypervisor is BareMetal (end)   
+								}								
               },
               error: function(XMLHttpResponse) {
                 var errorMsg = parseXMLHttpResponse(XMLHttpResponse);


[28/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
LOUDSTACK-2120: mixed zone management - extend listVirtualMachines API to return zone type.


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

Branch: refs/heads/internallb
Commit: 612e5fb6726d1b0b9408072e4a95abfe696d2eb3
Parents: 060be08
Author: Jessica Wang <je...@apache.org>
Authored: Sat Apr 20 18:42:18 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 10:08:19 2013 -0700

----------------------------------------------------------------------
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 .../cloudstack/api/response/UserVmResponse.java    |    7 +++++++
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |    1 +
 .../src/com/cloud/api/query/vo/UserVmJoinVO.java   |   13 +++++++++++++
 setup/db/db/schema-40to410.sql                     |    2 ++
 setup/db/db/schema-410to420.sql                    |    1 +
 6 files changed, 25 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index d73f309..e774ecc 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -231,6 +231,7 @@ public class ApiConstants {
     public static final String VOLUME_ID = "volumeid";
     public static final String ZONE_ID = "zoneid";
     public static final String ZONE_NAME = "zonename";
+    public static final String ZONE_TYPE = "zonetype";
     public static final String NETWORK_TYPE = "networktype";
     public static final String PAGE = "page";
     public static final String PAGE_SIZE = "pagesize";

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/api/src/org/apache/cloudstack/api/response/UserVmResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/UserVmResponse.java b/api/src/org/apache/cloudstack/api/response/UserVmResponse.java
index 212601c..da08c94 100644
--- a/api/src/org/apache/cloudstack/api/response/UserVmResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/UserVmResponse.java
@@ -80,6 +80,9 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the name of the availability zone for the virtual machine")
     private String zoneName;
 
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description="the network type of the availability zone for the virtual machine")
+    private String zoneType;
+    
     @SerializedName(ApiConstants.HOST_ID) @Param(description="the ID of the host for the virtual machine")
     private String hostId;
 
@@ -249,6 +252,10 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setHostId(String hostId) {
         this.hostId = hostId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
index 4ed6226..2bb7ee9 100644
--- a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
@@ -101,6 +101,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBase<UserVmJoinVO, Long> implem
         }
         userVmResponse.setZoneId(userVm.getDataCenterUuid());
         userVmResponse.setZoneName(userVm.getDataCenterName());
+        userVmResponse.setZoneType(userVm.getDataCenterType());
         if ((caller == null) || (caller.getType() == Account.ACCOUNT_TYPE_ADMIN)) {
             userVmResponse.setInstanceName(userVm.getInstanceName());
             userVmResponse.setHostId(userVm.getHostUuid());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
index 8d1314e..a50906d 100644
--- a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
@@ -153,6 +153,9 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     @Column(name="data_center_name")
     private String dataCenterName = null;
 
+    @Column(name="data_center_type")
+    private String dataCenterType = null;
+    
     @Column(name="security_group_enabled")
     private boolean securityGroupEnabled;
 
@@ -800,7 +803,17 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     public void setDataCenterName(String zoneName) {
         this.dataCenterName = zoneName;
     }
+   
+    
+    public String getDataCenterType() {
+        return dataCenterType;
+    }
+
 
+    public void setDataCenterType(String zoneType) {
+        this.dataCenterType = zoneType;
+    }   
+    
 
     public boolean isSecurityGroupEnabled() {
         return securityGroupEnabled;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/setup/db/db/schema-40to410.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-40to410.sql b/setup/db/db/schema-40to410.sql
index e2949d9..57d6ab9 100644
--- a/setup/db/db/schema-40to410.sql
+++ b/setup/db/db/schema-40to410.sql
@@ -487,6 +487,7 @@ CREATE VIEW `cloud`.`user_vm_view` AS
         data_center.id data_center_id,
         data_center.uuid data_center_uuid,
         data_center.name data_center_name,
+        data_center.networktype data_center_type,
         data_center.is_security_group_enabled security_group_enabled,
         host.id host_id,
         host.uuid host_uuid,
@@ -1456,6 +1457,7 @@ CREATE VIEW `cloud`.`storage_pool_view` AS
         data_center.id data_center_id,
         data_center.uuid data_center_uuid,
         data_center.name data_center_name,
+        data_center.name data_center_type,
         host_pod_ref.id pod_id,
         host_pod_ref.uuid pod_uuid,
         host_pod_ref.name pod_name,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/612e5fb6/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index 93a685f..10cdbba 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -374,6 +374,7 @@ CREATE VIEW `cloud`.`user_vm_view` AS
         data_center.id data_center_id,
         data_center.uuid data_center_uuid,
         data_center.name data_center_name,
+        data_center.networktype data_center_type,
         data_center.is_security_group_enabled security_group_enabled,
         host.id host_id,
         host.uuid host_uuid,


[09/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
return a ready template even if ostype doesn't match


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

Branch: refs/heads/internallb
Commit: 5a0f4b63303fd6339b1d7aab20bc3833206a5a43
Parents: 4a0b05a
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 17:06:01 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 17:06:01 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_routers.py        |    2 +-
 tools/marvin/marvin/integration/lib/common.py |    4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a0f4b63/test/integration/smoke/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_routers.py b/test/integration/smoke/test_routers.py
index 86ed4e9..7785576 100644
--- a/test/integration/smoke/test_routers.py
+++ b/test/integration/smoke/test_routers.py
@@ -80,7 +80,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        self.services['mode'] = cls.zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a0f4b63/tools/marvin/marvin/integration/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/common.py b/tools/marvin/marvin/integration/lib/common.py
index 69aa733..e78f64a 100644
--- a/tools/marvin/marvin/integration/lib/common.py
+++ b/tools/marvin/marvin/integration/lib/common.py
@@ -134,6 +134,8 @@ def get_template(apiclient, zoneid, ostype, services=None):
         for template in list_templates:
             if template.ostypeid == ostypeid:
                 return template
+            elif template.isready:
+                return template
 
     raise Exception("Exception: Failed to find template with OSTypeID: %s" %
                                                                     ostypeid)
@@ -566,4 +568,4 @@ def list_vpc_offerings(apiclient, **kwargs):
 
     cmd = listVPCOfferings.listVPCOfferingsCmd()
     [setattr(cmd, k, v) for k, v in kwargs.items()]
-    return(apiclient.listVPCOfferings(cmd))
\ No newline at end of file
+    return(apiclient.listVPCOfferings(cmd))


[34/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1735: cloudstack UI - IPv6 - instances detailView - Nics tab - add IPv6 IP Address, IPv6 Gateway, IPv6 CIDR field.


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

Branch: refs/heads/internallb
Commit: 27900695f4146630ef424fda57eca33379dfdfee
Parents: c9c2c59
Author: Jessica Wang <je...@apache.org>
Authored: Mon Apr 22 14:04:47 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 14:05:56 2013 -0700

----------------------------------------------------------------------
 ui/scripts/instances.js |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/27900695/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index bd8b7f6..3a43c60 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -1326,10 +1326,15 @@
               {
                 name: { label: 'label.name', header: true },
                 networkname: {label: 'Network Name' },
-                ipaddress: { label: 'label.ip.address' },
                 type: { label: 'label.type' },
+                ipaddress: { label: 'label.ip.address' },                
                 gateway: { label: 'label.gateway' },
                 netmask: { label: 'label.netmask' },
+
+                ip6address: { label: 'IPv6 IP Address' },
+                ip6gateway: { label: 'IPv6 Gateway' },
+                ip6cidr: { label: 'IPv6 CIDR' },
+
                 isdefault: {
                   label: 'label.is.default',
                   converter: function(data) {


[41/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Adding an optional env variable for DEB packaging to pick up additional profiles to package

Signed-off-by: Chip Childers <ch...@gmail.com>

Conflicts:

	debian/rules


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

Branch: refs/heads/internallb
Commit: 9abc21ceb98dd9064b7816e3f675637cbc54726c
Parents: bdd5634
Author: Chip Childers <ch...@gmail.com>
Authored: Tue Apr 23 16:35:39 2013 +0100
Committer: Chip Childers <ch...@gmail.com>
Committed: Tue Apr 23 16:39:35 2013 +0100

----------------------------------------------------------------------
 debian/rules |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9abc21ce/debian/rules
----------------------------------------------------------------------
diff --git a/debian/rules b/debian/rules
index f5f68ab..c5875e7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -34,8 +34,9 @@ build: build-indep
 build-indep: build-indep-stamp
 
 build-indep-stamp: configure
-	mvn -Pawsapi package -DskipTests -Dsystemvm \
-        -Dcs.replace.properties=replace.properties.tmp
+	mvn package -Pawsapi -DskipTests -Dsystemvm \
+        -Dcs.replace.properties=replace.properties.tmp \
+		${ACS_BUILD_OPTS}
 	touch $@
 
 clean:


[39/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
fix CLOUDSTACK-2142 migrateVirtua lMachine() API errors out when passing a valid uuid for storageid.


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

Branch: refs/heads/internallb
Commit: f6fb4d2f6a9abe6f00ce359691bfe843f6b88895
Parents: 7dd88fb
Author: Mice Xia <mi...@tcloudcomputing.com>
Authored: Tue Apr 23 14:44:59 2013 +0800
Committer: Mice Xia <mi...@tcloudcomputing.com>
Committed: Tue Apr 23 14:44:59 2013 +0800

----------------------------------------------------------------------
 .../api/command/admin/vm/MigrateVMCmd.java         |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f6fb4d2f/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
index ddba78e..e9779ce 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vm/MigrateVMCmd.java
@@ -58,7 +58,7 @@ public class MigrateVMCmd extends BaseAsyncCmd {
             required=true, description="the ID of the virtual machine")
     private Long virtualMachineId;
 
-    @Parameter(name=ApiConstants.STORAGE_ID, type=CommandType.LONG, entityType=StoragePoolResponse.class,
+    @Parameter(name=ApiConstants.STORAGE_ID, type=CommandType.UUID, entityType=StoragePoolResponse.class,
             required=false, description="Destination storage pool ID to migrate VM volumes to. Required for migrating the root disk volume")
     private Long storageId;
 


[08/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
correcting the zone reference in scalevm test

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


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

Branch: refs/heads/internallb
Commit: 4a0b05a0b21557029559c5498fbb026cbe135d58
Parents: dc87d93
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 16:54:45 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 16:54:45 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_scale_vm.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a0b05a0/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_scale_vm.py b/test/integration/smoke/test_scale_vm.py
index 81a477e..64fe4dc 100644
--- a/test/integration/smoke/test_scale_vm.py
+++ b/test/integration/smoke/test_scale_vm.py
@@ -105,7 +105,7 @@ class TestScaleVm(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = cls.zone.networktype
+        cls.services['mode'] = zone.networktype
 
         template = get_template(
                             cls.api_client,


[18/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
fixing RN build errors


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

Branch: refs/heads/internallb
Commit: 9ae29bb9c78e8a13668a5535e23f5ee953af1b7d
Parents: 67bd2c6
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 14:59:32 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 14:59:32 2013 +0530

----------------------------------------------------------------------
 docs/en-US/Common_Content/feedback.xml |   24 ++++++++++++++++++++++++
 docs/en-US/Preface.xml                 |    2 +-
 2 files changed, 25 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9ae29bb9/docs/en-US/Common_Content/feedback.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Common_Content/feedback.xml b/docs/en-US/Common_Content/feedback.xml
new file mode 100644
index 0000000..4b06c9f
--- /dev/null
+++ b/docs/en-US/Common_Content/feedback.xml
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+<!-- 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.
+-->
+<section id="feedback">
+  <title>Feedback</title>
+  <para>to-do</para>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9ae29bb9/docs/en-US/Preface.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Preface.xml b/docs/en-US/Preface.xml
index 28ad48e..e046410 100644
--- a/docs/en-US/Preface.xml
+++ b/docs/en-US/Preface.xml
@@ -25,7 +25,7 @@
 <preface id="pref-cloudstack-Preface">
     <title>Preface</title>
     <xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     </xi:fallback>
     </xi:include>
 </preface>


[05/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2096 Deployment Planner - Deployment planner is not looking for hosts in other clusters when vm is being started.

Changes:
- Cloud-engine 2 step reserver and deploy flow was not retrying out of clusters, if there are no resources in the volume's cluster.
- Fixed this by letting the reservationm step not error out and continue to let deploy step find out resources outside cluster


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

Branch: refs/heads/internallb
Commit: 0e689dbcc7a0df19a628698bd985173856568278
Parents: b888450
Author: Prachi Damle <pr...@cloud.com>
Authored: Fri Apr 19 17:53:37 2013 -0700
Committer: Prachi Damle <pr...@cloud.com>
Committed: Fri Apr 19 17:55:37 2013 -0700

----------------------------------------------------------------------
 .../engine/cloud/entity/api/VMEntityManager.java   |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   53 +++++++++------
 .../cloud/entity/api/VirtualMachineEntityImpl.java |    2 +-
 3 files changed, 34 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
index 82c580f..ca0a777 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
@@ -37,7 +37,7 @@ public interface VMEntityManager {
 
 	String reserveVirtualMachine(VMEntityVO vmEntityVO, String plannerToUse, DeploymentPlan plan, ExcludeList exclude) throws InsufficientCapacityException, ResourceUnavailableException;
 
-    void deployVirtualMachine(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException;
+    void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException;
 
     boolean stopvirtualmachine(VMEntityVO vmEntityVO, String caller) throws ResourceUnavailableException;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
index ec813b2..25e7423 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.inject.Inject;
 
@@ -136,6 +137,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
             plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), planToDeploy.getPoolId(), planToDeploy.getPhysicalNetworkId());
         }
 
+        boolean planChangedByReadyVolume = false;
         List<VolumeVO> vols = _volsDao.findReadyRootVolumesByInstance(vm.getId());
         if(!vols.isEmpty()){
             VolumeVO vol = vols.get(0);
@@ -158,7 +160,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
                     plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), vol.getPoolId(), null, null);
                 }else{
                     plan = new DataCenterDeployment(rootVolDcId, rootVolPodId, rootVolClusterId, null, vol.getPoolId(), null, null);
-
+                    planChangedByReadyVolume = true;
                 }
             }
 
@@ -187,6 +189,10 @@ public class VMEntityManagerImpl implements VMEntityManager {
             _vmEntityDao.persist(vmEntityVO);
 
             return vmReservation.getUuid();
+        } else if (planChangedByReadyVolume) {
+            // we could not reserve in the Volume's cluster - let the deploy
+            // call retry it.
+            return UUID.randomUUID().toString();
         }else{
             throw new InsufficientServerCapacityException("Unable to create a deployment for " + vmProfile, DataCenter.class, plan.getDataCenterId());
         }
@@ -194,31 +200,36 @@ public class VMEntityManagerImpl implements VMEntityManager {
     }
 
     @Override
-    public void deployVirtualMachine(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
+    public void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
         //grab the VM Id and destination using the reservationId.
 
+        VMInstanceVO vm = _vmDao.findByUuid(vmEntityVO.getUuid());
+
         VMReservationVO vmReservation = _reservationDao.findByReservationId(reservationId);
-        long vmId = vmReservation.getVmId();
-
-        VMInstanceVO vm = _vmDao.findById(vmId);
-        //Pass it down
-        Long poolId = null;
-        Map<Long,Long> storage = vmReservation.getVolumeReservation();
-        if(storage != null){
-            List<Long> volIdList = new ArrayList<Long>(storage.keySet());
-            if(volIdList !=null && !volIdList.isEmpty()){
-                poolId = storage.get(volIdList.get(0));
+        if(vmReservation != null){
+            // Pass it down
+            Long poolId = null;
+            Map<Long, Long> storage = vmReservation.getVolumeReservation();
+            if (storage != null) {
+                List<Long> volIdList = new ArrayList<Long>(storage.keySet());
+                if (volIdList != null && !volIdList.isEmpty()) {
+                    poolId = storage.get(volIdList.get(0));
+                }
             }
-        }
 
-        DataCenterDeployment reservedPlan = new DataCenterDeployment(vm.getDataCenterId(), vmReservation.getPodId(), vmReservation.getClusterId(),
-                vmReservation.getHostId(), null , null);
-        try{
-            VMInstanceVO vmDeployed = _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), reservedPlan);
-        }catch(Exception ex){
-            //Retry the deployment without using the reservation plan
-            DataCenterDeployment plan = new DataCenterDeployment(vm.getDataCenterId(), null, null,null, null , null);
-            _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), plan);
+            DataCenterDeployment reservedPlan = new DataCenterDeployment(vm.getDataCenterId(),
+                    vmReservation.getPodId(), vmReservation.getClusterId(), vmReservation.getHostId(), null, null);
+            try {
+                VMInstanceVO vmDeployed = _itMgr.start(vm, params, _userDao.findById(new Long(caller)),
+                        _accountDao.findById(vm.getAccountId()), reservedPlan);
+            } catch (Exception ex) {
+                // Retry the deployment without using the reservation plan
+                _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()),
+                        null);
+            }
+        } else {
+            // no reservation found. Let VirtualMachineManager retry
+            _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), null);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
index c2ca729..dd57f9a 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
@@ -206,7 +206,7 @@ public class VirtualMachineEntityImpl implements VirtualMachineEntity {
 
 	@Override
 	public void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
-	    manager.deployVirtualMachine(reservationId, caller, params);
+        manager.deployVirtualMachine(reservationId, this.vmEntityVO, caller, params);
 	}
 
 	@Override


[40/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2152 Set REALVER properly


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

Branch: refs/heads/internallb
Commit: bdd5634924db84144c05887c6552c89aa4e78051
Parents: f6fb4d2
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Tue Apr 23 14:54:41 2013 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Tue Apr 23 14:58:12 2013 +0200

----------------------------------------------------------------------
 packaging/centos63/package.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bdd56349/packaging/centos63/package.sh
----------------------------------------------------------------------
diff --git a/packaging/centos63/package.sh b/packaging/centos63/package.sh
index d9d5b1c..faa089b 100755
--- a/packaging/centos63/package.sh
+++ b/packaging/centos63/package.sh
@@ -75,6 +75,7 @@ if echo $VERSION | grep SNAPSHOT ; then
   DEFPRE="-D_prerelease 1"
   DEFREL="-D_rel SNAPSHOT"
 else
+  REALVER=`echo $VERSION`
   DEFVER="-D_ver $REALVER"
   DEFPRE=
   DEFREL=


[14/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1941:Cannot delete users in the default admin account within the UI


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

Branch: refs/heads/internallb
Commit: e309a91a9b2f439cf9c35b9dcbd79889f4a72504
Parents: 987941a
Author: Pranav Saxena <pr...@citrix.com>
Authored: Mon Apr 22 14:19:38 2013 +0530
Committer: Pranav Saxena <pr...@citrix.com>
Committed: Mon Apr 22 14:19:38 2013 +0530

----------------------------------------------------------------------
 ui/scripts/accounts.js |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e309a91a/ui/scripts/accounts.js
----------------------------------------------------------------------
diff --git a/ui/scripts/accounts.js b/ui/scripts/accounts.js
index 8353d70..7e82c0f 100644
--- a/ui/scripts/accounts.js
+++ b/ui/scripts/accounts.js
@@ -1372,6 +1372,9 @@
 
     if (jsonObj.state == 'Destroyed') return [];
 
+    if( isAdmin() && jsonObj.isdefault == false)
+       allowedActions.push("remove");
+
     if(isAdmin()) {
         allowedActions.push("edit"); //updating networkdomain is allowed on any account, including system-generated default admin account 
         if(!(jsonObj.domain == "ROOT" && jsonObj.name == "admin" && jsonObj.accounttype == 1)) { //if not system-generated default admin account    
@@ -1393,6 +1396,10 @@
   var userActionfilter = function(args) {
     var jsonObj = args.context.item;
     var allowedActions = [];
+   
+    if( isAdmin() && jsonObj.isdefault == false)
+       allowedActions.push("remove");
+
     if(isAdmin()) {
       allowedActions.push("edit");
       allowedActions.push("changePassword");


[04/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1004: Adding fqdn info to NFS setup instructions. Why this should be necessary puzzles me.


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

Branch: refs/heads/internallb
Commit: b888450ec803d7d61b2c30c3528b305e26ce1fb4
Parents: 489e13e
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 17:46:39 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 17:46:39 2013 -0500

----------------------------------------------------------------------
 docs/en-US/advanced-zone-configuration.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b888450e/docs/en-US/advanced-zone-configuration.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/advanced-zone-configuration.xml b/docs/en-US/advanced-zone-configuration.xml
index 03a082f..43b9391 100644
--- a/docs/en-US/advanced-zone-configuration.xml
+++ b/docs/en-US/advanced-zone-configuration.xml
@@ -362,7 +362,7 @@
         Secondary Storage :</para>
       <itemizedlist>
         <listitem>
-          <para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server.</para>
+          <para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server or fully qualified domain name of the server.</para>
         </listitem>
         <listitem>
           <para><emphasis role="bold">Path.</emphasis> The exported path from the server.</para>


[06/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Fixing the incorrect zone typo

zone.networktype reference corrected as part of commit
5ee3cc41fecb08b0dba16341fef12684a50ecc98


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

Branch: refs/heads/internallb
Commit: d0108b8132242385912f3659deb449bfe742eb19
Parents: 0e689db
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 12:32:28 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 12:33:00 2013 +0530

----------------------------------------------------------------------
 test/integration/component/test_accounts.py        |   16 +++++-----
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |   12 ++++----
 test/integration/component/test_egress_rules.py    |   22 +++++++-------
 test/integration/component/test_eip_elb.py         |    4 +-
 .../integration/component/test_network_offering.py |    8 +++---
 test/integration/component/test_project_configs.py |   10 +++---
 test/integration/component/test_project_limits.py  |    6 ++--
 .../component/test_project_resources.py            |   12 ++++----
 test/integration/component/test_project_usage.py   |   18 ++++++------
 test/integration/component/test_projects.py        |   14 +++++-----
 test/integration/component/test_resource_limits.py |    6 ++--
 test/integration/component/test_routers.py         |    8 +++---
 test/integration/component/test_security_groups.py |   14 +++++-----
 test/integration/component/test_snapshots.py       |   14 +++++-----
 test/integration/component/test_storage_motion.py  |    4 +-
 test/integration/component/test_templates.py       |    4 +-
 test/integration/component/test_usage.py           |   18 ++++++------
 .../integration/component/test_vm_passwdenabled.py |    2 +-
 test/integration/component/test_volumes.py         |   10 +++---
 test/integration/smoke/test_ScaleVm.py             |    2 +-
 test/integration/smoke/test_iso.py                 |    2 +-
 test/integration/smoke/test_network.py             |    2 +-
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_volumes.py             |    2 +-
 26 files changed, 108 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_accounts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py
index 882423e..459cfb3 100644
--- a/test/integration/component/test_accounts.py
+++ b/test/integration/component/test_accounts.py
@@ -109,7 +109,7 @@ class TestAccounts(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -239,7 +239,7 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -507,7 +507,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone settings
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         # Create an account, domain etc
         cls.domain = Domain.create(
                                    cls.api_client,
@@ -853,7 +853,7 @@ class TesttemplateHierarchy(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone settings
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["template"]["zoneid"] = cls.zone.id
 
         # Create domains, accounts and template
@@ -1002,7 +1002,7 @@ class TestAddVmToSubDomain(cloudstackTestCase):
                                cls.api_client,
                                cls.services,
                                )
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.sub_domain = Domain.create(
                                    cls.api_client,
                                    cls.services["domain"],
@@ -1148,7 +1148,7 @@ class TestUserDetails(cloudstackTestCase):
         # Get Zone, Domain etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 
@@ -1455,7 +1455,7 @@ class TestUserLogin(cloudstackTestCase):
         # Get Zone, Domain etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 
@@ -1620,7 +1620,7 @@ class TestDomainForceRemove(cloudstackTestCase):
                                cls.api_client,
                                cls.services,
                                )
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_allocation_states.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_allocation_states.py b/test/integration/component/test_allocation_states.py
index efbb3ba..fe4c35f 100644
--- a/test/integration/component/test_allocation_states.py
+++ b/test/integration/component/test_allocation_states.py
@@ -93,7 +93,7 @@ class TestAllocationState(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_blocker_bugs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_blocker_bugs.py b/test/integration/component/test_blocker_bugs.py
index e85a073..bfd1c13 100644
--- a/test/integration/component/test_blocker_bugs.py
+++ b/test/integration/component/test_blocker_bugs.py
@@ -113,7 +113,7 @@ class TestSnapshots(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -421,7 +421,7 @@ class TestTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["virtual_machine"]["zoneid"] = cls.zone.id
         cls.services["templates"]["zoneid"] = cls.zone.id
 
@@ -543,7 +543,7 @@ class TestNATRules(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -738,7 +738,7 @@ class TestRouters(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -865,7 +865,7 @@ class TestRouterRestart(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -995,7 +995,7 @@ class TestTemplates(cloudstackTestCase):
         # Get Zone, templates etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_egress_rules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_egress_rules.py b/test/integration/component/test_egress_rules.py
index ffcb299..7972aa5 100644
--- a/test/integration/component/test_egress_rules.py
+++ b/test/integration/component/test_egress_rules.py
@@ -154,7 +154,7 @@ class TestDefaultSecurityGroupEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -313,7 +313,7 @@ class TestAuthorizeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -471,7 +471,7 @@ class TestDefaultGroupEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -672,7 +672,7 @@ class TestDefaultGroupEgressAfterDeploy(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -855,7 +855,7 @@ class TestRevokeEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1117,7 +1117,7 @@ class TestInvalidAccountAuthroize(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1239,7 +1239,7 @@ class TestMultipleAccountsEgressRuleNeg(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1487,7 +1487,7 @@ class TestMultipleAccountsEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1784,7 +1784,7 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1996,7 +1996,7 @@ class TestInvalidParametersForEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -2179,7 +2179,7 @@ class TestEgressAfterHostMaintainance(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.pod = get_pod(
                           cls.api_client,
                           zoneid=cls.zone.id

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_eip_elb.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_eip_elb.py b/test/integration/component/test_eip_elb.py
index c588c1b..c1ad505 100644
--- a/test/integration/component/test_eip_elb.py
+++ b/test/integration/component/test_eip_elb.py
@@ -96,7 +96,7 @@ class TestEIP(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -919,7 +919,7 @@ class TestELB(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_network_offering.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_network_offering.py b/test/integration/component/test_network_offering.py
index cc6f25e..8b12525 100644
--- a/test/integration/component/test_network_offering.py
+++ b/test/integration/component/test_network_offering.py
@@ -157,7 +157,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -736,7 +736,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1372,7 +1372,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1829,7 +1829,7 @@ class TestSharedNetworkWithoutIp(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_configs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_configs.py b/test/integration/component/test_project_configs.py
index 92290d0..f1469f2 100644
--- a/test/integration/component/test_project_configs.py
+++ b/test/integration/component/test_project_configs.py
@@ -116,7 +116,7 @@ class TestUserProjectCreation(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -282,7 +282,7 @@ class TestProjectCreationNegative(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Checking for prereqisits - global configs
         configs = Configurations.list(
@@ -428,7 +428,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)
@@ -580,7 +580,7 @@ class TestProjectInviteRequiredTrue(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)
@@ -733,7 +733,7 @@ class TestProjectInviteTimeout(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_limits.py b/test/integration/component/test_project_limits.py
index 2eceb88..ab13238 100644
--- a/test/integration/component/test_project_limits.py
+++ b/test/integration/component/test_project_limits.py
@@ -130,7 +130,7 @@ class TestProjectLimits(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = Domain.create(
@@ -481,7 +481,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -922,7 +922,7 @@ class TestMaxProjectNetworks(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_resources.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_resources.py b/test/integration/component/test_project_resources.py
index 9ad0365..191ceb5 100644
--- a/test/integration/component/test_project_resources.py
+++ b/test/integration/component/test_project_resources.py
@@ -148,7 +148,7 @@ class TestOfferings(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone and template
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -329,7 +329,7 @@ class TestNetwork(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone and template
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -517,7 +517,7 @@ class TestTemplates(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -747,7 +747,7 @@ class TestSnapshots(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -894,7 +894,7 @@ class TestPublicIpAddress(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1194,7 +1194,7 @@ class TestSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index 34335b7..03c42fd 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -124,7 +124,7 @@ class TestVmUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -319,7 +319,7 @@ class TestPublicIPUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -491,7 +491,7 @@ class TestVolumeUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -676,7 +676,7 @@ class TestTemplateUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         template = get_template(
                             cls.api_client,
@@ -849,7 +849,7 @@ class TestISOUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         cls.services["iso"]["zoneid"] = cls.zone.id
         # Create Account, ISO image etc
@@ -997,7 +997,7 @@ class TestLBRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1180,7 +1180,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1358,7 +1358,7 @@ class TestNatRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1541,7 +1541,7 @@ class TestVpnUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_projects.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_projects.py b/test/integration/component/test_projects.py
index 767cb06..95df5bf 100644
--- a/test/integration/component/test_projects.py
+++ b/test/integration/component/test_projects.py
@@ -110,7 +110,7 @@ class TestMultipleProjectCreation(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(
@@ -323,7 +323,7 @@ class TestCrossDomainAccountAdd(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -457,7 +457,7 @@ class TestDeleteAccountWithProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -571,7 +571,7 @@ class TestDeleteDomainWithProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -716,7 +716,7 @@ class TestProjectOwners(cloudstackTestCase):
                                    cls.services
                                    )
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -1140,7 +1140,7 @@ class TestProjectResources(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -1449,7 +1449,7 @@ class TestProjectSuspendActivate(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, domain, template etc
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_resource_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_resource_limits.py b/test/integration/component/test_resource_limits.py
index 3e7548e..641825b 100644
--- a/test/integration/component/test_resource_limits.py
+++ b/test/integration/component/test_resource_limits.py
@@ -117,7 +117,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -881,7 +881,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1339,7 +1339,7 @@ class TestMaxAccountNetworks(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_routers.py b/test/integration/component/test_routers.py
index 41bf23f..452c034 100644
--- a/test/integration/component/test_routers.py
+++ b/test/integration/component/test_routers.py
@@ -104,7 +104,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -592,7 +592,7 @@ class TestRouterStopCreatePF(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -804,7 +804,7 @@ class TestRouterStopCreateLB(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1016,7 +1016,7 @@ class TestRouterStopCreateFW(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_security_groups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_security_groups.py b/test/integration/component/test_security_groups.py
index 4255d42..7459d2a 100644
--- a/test/integration/component/test_security_groups.py
+++ b/test/integration/component/test_security_groups.py
@@ -123,7 +123,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -396,7 +396,7 @@ class TestAuthorizeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -532,7 +532,7 @@ class TestRevokeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -691,7 +691,7 @@ class TestDhcpOnlyRouter(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -828,7 +828,7 @@ class TestdeployVMWithUserData(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -988,7 +988,7 @@ class TestDeleteSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             self.apiclient,
@@ -1234,7 +1234,7 @@ class TestIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             self.apiclient,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py
index 9ff57ab..5567917 100644
--- a/test/integration/component/test_snapshots.py
+++ b/test/integration/component/test_snapshots.py
@@ -133,7 +133,7 @@ class TestSnapshotRootDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -356,7 +356,7 @@ class TestSnapshots(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -1191,7 +1191,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1487,7 +1487,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1836,7 +1836,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
@@ -2124,7 +2124,7 @@ class TestSnapshotLimit(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -2383,7 +2383,7 @@ class TestSnapshotEvents(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_storage_motion.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_storage_motion.py b/test/integration/component/test_storage_motion.py
index cc55a08..b893b8b 100644
--- a/test/integration/component/test_storage_motion.py
+++ b/test/integration/component/test_storage_motion.py
@@ -99,7 +99,7 @@ class TestStorageMotion(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -295,4 +295,4 @@ class TestStorageMotion(cloudstackTestCase):
                              "Check volume is on migrated pool"
                              )
 
-        return
\ No newline at end of file
+        return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_templates.py b/test/integration/component/test_templates.py
index 980640d..a743bf7 100644
--- a/test/integration/component/test_templates.py
+++ b/test/integration/component/test_templates.py
@@ -127,7 +127,7 @@ class TestCreateTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["virtual_machine"]["zoneid"] = cls.zone.id
 
         cls.service_offering = ServiceOffering.create(
@@ -283,7 +283,7 @@ class TestTemplates(cloudstackTestCase):
         # Get Zone, templates etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         #populate second zone id for iso copy
         cmd = listZones.listZonesCmd()
         zones = cls.api_client.listZones(cmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_usage.py b/test/integration/component/test_usage.py
index 27e3719..39228ba 100644
--- a/test/integration/component/test_usage.py
+++ b/test/integration/component/test_usage.py
@@ -117,7 +117,7 @@ class TestVmUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -301,7 +301,7 @@ class TestPublicIPUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -453,7 +453,7 @@ class TestVolumeUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -627,7 +627,7 @@ class TestTemplateUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         template = get_template(
                             cls.api_client,
@@ -792,7 +792,7 @@ class TestISOUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         cls.services["iso"]["zoneid"] = cls.zone.id
         # Create Account, ISO image etc
@@ -929,7 +929,7 @@ class TestLBRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1091,7 +1091,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1258,7 +1258,7 @@ class TestNatRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1420,7 +1420,7 @@ class TestVpnUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_vm_passwdenabled.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vm_passwdenabled.py b/test/integration/component/test_vm_passwdenabled.py
index eccc488..e3bcf67 100644
--- a/test/integration/component/test_vm_passwdenabled.py
+++ b/test/integration/component/test_vm_passwdenabled.py
@@ -83,7 +83,7 @@ class TestVMPasswordEnabled(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
             cls.api_client,
             zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py
index d1f3cf5..f50113b 100644
--- a/test/integration/component/test_volumes.py
+++ b/test/integration/component/test_volumes.py
@@ -100,7 +100,7 @@ class TestAttachVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -371,7 +371,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -617,7 +617,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -809,7 +809,7 @@ class TestVolumes(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -1049,7 +1049,7 @@ class TestDeployVmWithCustomDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"],

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_ScaleVm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_ScaleVm.py b/test/integration/smoke/test_ScaleVm.py
index 64fe4dc..81a477e 100644
--- a/test/integration/smoke/test_ScaleVm.py
+++ b/test/integration/smoke/test_ScaleVm.py
@@ -105,7 +105,7 @@ class TestScaleVm(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_iso.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_iso.py b/test/integration/smoke/test_iso.py
index 3f8f11a..0b7d276 100644
--- a/test/integration/smoke/test_iso.py
+++ b/test/integration/smoke/test_iso.py
@@ -91,7 +91,7 @@ class TestCreateIso(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = self.zone.networktype
         self.services["domainid"] = self.domain.id
         self.services["iso_2"]["zoneid"] = self.zone.id
         

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_network.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_network.py b/test/integration/smoke/test_network.py
index e2c63a4..df89eaa 100644
--- a/test/integration/smoke/test_network.py
+++ b/test/integration/smoke/test_network.py
@@ -118,7 +118,7 @@ class TestPublicIP(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         # Create Accounts & networks
         cls.account = Account.create(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_routers.py b/test/integration/smoke/test_routers.py
index 93116bf..86ed4e9 100644
--- a/test/integration/smoke/test_routers.py
+++ b/test/integration/smoke/test_routers.py
@@ -80,7 +80,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_templates.py b/test/integration/smoke/test_templates.py
index 2b0e2f5..a648098 100644
--- a/test/integration/smoke/test_templates.py
+++ b/test/integration/smoke/test_templates.py
@@ -124,7 +124,7 @@ class TestCreateTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_volumes.py b/test/integration/smoke/test_volumes.py
index 9aa44eb..750f985 100644
--- a/test/integration/smoke/test_volumes.py
+++ b/test/integration/smoke/test_volumes.py
@@ -99,7 +99,7 @@ class TestCreateVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]


[17/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
fixing RN build errors


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

Branch: refs/heads/internallb
Commit: 67bd2c6eb70d99d9535300e7e4010ea33ff95fcb
Parents: e309a91
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 14:48:44 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 14:50:08 2013 +0530

----------------------------------------------------------------------
 docs/en-US/Preface.xml       |    2 +-
 docs/en-US/Release_Notes.xml |11164 ++++++++++++++++++++-----------------
 2 files changed, 5906 insertions(+), 5260 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/67bd2c6e/docs/en-US/Preface.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Preface.xml b/docs/en-US/Preface.xml
index 3f5cdc6..28ad48e 100644
--- a/docs/en-US/Preface.xml
+++ b/docs/en-US/Preface.xml
@@ -25,7 +25,7 @@
 <preface id="pref-cloudstack-Preface">
     <title>Preface</title>
     <xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     </xi:fallback>
     </xi:include>
 </preface>


[50/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Merge branch 'master' into internallb1

Conflicts:
	server/src/com/cloud/network/vpc/VpcManagerImpl.java
	server/src/com/cloud/server/ManagementServerImpl.java
	setup/db/db/schema-410to420.sql


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

Branch: refs/heads/internallb
Commit: ca2fc30655eace01857181ac50789a6632f51d29
Parents: 8057567 04a2b2d
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Apr 23 16:56:11 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Apr 23 16:58:28 2013 -0700

----------------------------------------------------------------------
 CHANGES                                            |  385 +-
 README.md                                          |    6 +-
 .../cloud/agent/api/MigrateWithStorageAnswer.java  |   39 +
 .../cloud/agent/api/MigrateWithStorageCommand.java |   45 +
 .../api/MigrateWithStorageCompleteAnswer.java      |   38 +
 .../api/MigrateWithStorageCompleteCommand.java     |   36 +
 .../agent/api/MigrateWithStorageReceiveAnswer.java |   55 +
 .../api/MigrateWithStorageReceiveCommand.java      |   45 +
 .../agent/api/MigrateWithStorageSendAnswer.java    |   39 +
 .../agent/api/MigrateWithStorageSendCommand.java   |   58 +
 .../agent/api/storage/MigrateVolumeAnswer.java     |   38 +
 .../agent/api/storage/MigrateVolumeCommand.java    |   51 +
 .../cloud/hypervisor/HypervisorCapabilities.java   |    2 +
 api/src/com/cloud/network/element/IpDeployer.java  |    6 +-
 api/src/com/cloud/server/ManagementService.java    |   19 +-
 api/src/com/cloud/vm/UserVmService.java            |   27 +
 .../cloudstack/affinity/AffinityGroupResponse.java |    5 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    4 +
 .../apache/cloudstack/api/ResponseGenerator.java   |    8 +
 .../command/admin/account/CreateAccountCmd.java    |   14 +-
 .../api/command/admin/config/ListCfgsByCmd.java    |   24 +-
 .../api/command/admin/config/UpdateCfgCmd.java     |   22 +-
 .../admin/host/FindHostsForMigrationCmd.java       |  107 +
 .../api/command/admin/host/ListHostsCmd.java       |    7 +-
 .../storage/FindStoragePoolsForMigrationCmd.java   |   98 +
 .../api/command/admin/vm/MigrateVMCmd.java         |    2 +-
 .../vm/MigrateVirtualMachineWithVolumeCmd.java     |  160 +
 .../api/command/user/vm/DeployVMCmd.java           |    5 +-
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |    9 +
 .../api/command/user/volume/MigrateVolumeCmd.java  |    8 +
 .../cloudstack/api/response/ClusterResponse.java   |    9 +-
 .../api/response/ConfigurationResponse.java        |   12 +
 .../api/response/DomainRouterResponse.java         |   11 +
 .../api/response/HostForMigrationResponse.java     |  365 +
 .../cloudstack/api/response/HostResponse.java      |   10 +-
 .../cloudstack/api/response/NetworkResponse.java   |    7 +
 .../cloudstack/api/response/PodResponse.java       |    9 +-
 .../cloudstack/api/response/SnapshotResponse.java  |   16 +
 .../response/StoragePoolForMigrationResponse.java  |  248 +
 .../api/response/StoragePoolResponse.java          |   18 +-
 .../cloudstack/api/response/SystemVmResponse.java  |   11 +
 .../cloudstack/api/response/TemplateResponse.java  |    7 +
 .../cloudstack/api/response/UserVmResponse.java    |    7 +
 .../cloudstack/api/response/VolumeResponse.java    |    8 +
 .../api/command/test/ListCfgCmdTest.java           |   89 +
 .../api/command/test/UpdateCfgCmdTest.java         |  116 +
 .../WEB-INF/classes/resources/messages.properties  | 1857 ++--
 .../classes/resources/messages_fr_FR.properties    |  216 +-
 client/tomcatconf/applicationContext.xml.in        |    1 +
 client/tomcatconf/commands.properties.in           |    3 +
 .../cloud/hypervisor/HypervisorCapabilitiesVO.java |   24 +-
 debian/rules                                       |    5 +-
 docs/en-US/Common_Content/feedback.xml             |   24 +
 docs/en-US/Preface.xml                             |    2 +-
 docs/en-US/Release_Notes.xml                       |11073 ++++++++-------
 docs/en-US/advanced-zone-configuration.xml         |    2 +-
 docs/en-US/advanced-zone-network-traffic-types.xml |    2 +-
 docs/en-US/basic-zone-network-traffic-types.xml    |    4 +-
 docs/en-US/build-nonoss.xml                        |   49 +
 docs/en-US/changed-API-commands-4.2.xml            |  107 +
 docs/en-US/feedback.xml                            |   24 +
 docs/en-US/hypervisor-kvm-install-flow.xml         |    2 +-
 .../hypervisor-support-for-primarystorage.xml      |  148 +-
 docs/en-US/limit-accounts-domains.xml              |  371 +
 docs/en-US/source.xml                              |    1 +
 .../troubleshooting-working-with-server-logs.xml   |    6 +-
 docs/en-US/vm-snapshots.xml                        |   10 +-
 docs/en-US/work-with-usage.xml                     |   26 +-
 .../api/storage/ObjectInDataStoreStateMachine.java |    2 +
 .../subsystem/api/storage/VolumeService.java       |    7 +-
 .../datastore/db/StoragePoolDetailsDao.java        |    1 +
 .../engine/cloud/entity/api/VMEntityManager.java   |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   53 +-
 .../cloud/entity/api/VirtualMachineEntityImpl.java |    2 +-
 .../cloudstack/storage/image/ImageServiceImpl.java |   85 +-
 .../image/motion/DefaultImageMotionStrategy.java   |   18 +
 .../storage/test/MockStorageMotionStrategy.java    |   19 +
 .../storage/motion/AncientDataMotionStrategy.java  |   89 +-
 .../storage/motion/DataMotionService.java          |    9 +
 .../storage/motion/DataMotionServiceImpl.java      |   16 +
 .../storage/motion/DataMotionStrategy.java         |   10 +
 .../cloudstack/storage/volume/VolumeObject.java    |    2 +
 .../storage/volume/VolumeServiceImpl.java          |  174 +-
 packaging/centos63/package.sh                      |    1 +
 packaging/debian/init/cloud-management             |    2 +-
 packaging/debian/replace.properties                |    2 +-
 .../debian/config/etc/init.d/cloud-early-config    |   53 +-
 .../manager/allocator/impl/RandomAllocator.java    |   56 +
 .../xen/resource/CitrixResourceBase.java           |    4 +-
 .../xen/resource/XenServer56FP1Resource.java       |    1 +
 .../xen/resource/XenServer610Resource.java         |  359 +-
 .../motion/XenServerStorageMotionStrategy.java     |  239 +
 .../cloud/network/element/NiciraNvpElement.java    |    5 +
 .../network/element/NiciraNvpElementTest.java      |  238 +-
 pom.xml                                            |   16 +
 server/pom.xml                                     |    2 +-
 .../agent/manager/allocator/HostAllocator.java     |   23 +-
 .../manager/allocator/impl/FirstFitAllocator.java  |   47 +
 .../manager/allocator/impl/TestingAllocator.java   |    7 +
 server/src/com/cloud/api/ApiDBUtils.java           |   19 +
 server/src/com/cloud/api/ApiResponseHelper.java    |   48 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   18 +-
 .../com/cloud/api/query/ViewResponseHelper.java    |   37 +
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |    1 +
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |    1 +
 .../src/com/cloud/api/query/dao/HostJoinDao.java   |    5 +
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |  136 +-
 .../cloud/api/query/dao/StoragePoolJoinDao.java    |    6 +
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |   60 +-
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |    1 +
 .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java |    3 +-
 .../cloud/api/query/vo/AffinityGroupJoinVO.java    |   11 +
 .../com/cloud/api/query/vo/DomainRouterJoinVO.java |   12 +
 server/src/com/cloud/api/query/vo/HostJoinVO.java  |   11 +
 .../com/cloud/api/query/vo/StoragePoolJoinVO.java  |   11 +
 .../src/com/cloud/api/query/vo/UserVmJoinVO.java   |   13 +
 .../src/com/cloud/api/query/vo/VolumeJoinVO.java   |   15 +
 server/src/com/cloud/configuration/Config.java     |   63 +-
 .../cloud/configuration/ConfigurationManager.java  |    2 +-
 .../configuration/ConfigurationManagerImpl.java    |   71 +-
 .../cloud/configuration/dao/ConfigurationDao.java  |    1 +
 server/src/com/cloud/dc/dao/DataCenterDao.java     |    2 +
 server/src/com/cloud/dc/dao/DataCenterDaoImpl.java |    8 +
 server/src/com/cloud/dc/dao/VlanDao.java           |    2 +
 server/src/com/cloud/dc/dao/VlanDaoImpl.java       |   19 +
 .../ExternalLoadBalancerDeviceManagerImpl.java     |    4 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |   20 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |   19 +-
 .../network/element/VirtualRouterElement.java      |    2 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |    5 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   29 +
 .../src/com/cloud/server/ConfigurationServer.java  |    5 +
 .../com/cloud/server/ConfigurationServerImpl.java  |   93 +-
 server/src/com/cloud/server/Criteria.java          |   11 +-
 .../src/com/cloud/server/ManagementServerImpl.java |  311 +-
 server/src/com/cloud/storage/VolumeManager.java    |    8 +
 .../src/com/cloud/storage/VolumeManagerImpl.java   |  112 +-
 .../storage/dao/StoragePoolDetailsDaoImpl.java     |    9 +
 .../com/cloud/template/TemplateManagerImpl.java    |   17 +-
 .../com/cloud/usage/UsageNetworkOfferingVO.java    |   14 +-
 .../usage/dao/UsageNetworkOfferingDaoImpl.java     |    9 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |  125 +-
 server/src/com/cloud/vm/UserVmStateListener.java   |   21 +-
 server/src/com/cloud/vm/VirtualMachineManager.java |    4 +
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |  246 +-
 .../cloudstack/affinity/AffinityGroupVO.java       |    2 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |    8 +
 .../cloud/vm/MockVirtualMachineManagerImpl.java    |   10 +
 .../cloud/vm/VirtualMachineManagerImplTest.java    |  231 +-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    5 +-
 server/test/com/cloud/vpc/Site2SiteVpnTest.java    |    2 +-
 server/test/com/cloud/vpc/VpcApiUnitTest.java      |  167 +-
 .../test/com/cloud/vpc/VpcTestConfiguration.java   |   73 +-
 setup/db/db/schema-40to410.sql                     |    4 +-
 setup/db/db/schema-410to420.sql                    |  338 +-
 test/integration/component/test_accounts.py        |   16 +-
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |   12 +-
 test/integration/component/test_egress_rules.py    |   22 +-
 test/integration/component/test_eip_elb.py         |    4 +-
 .../integration/component/test_network_offering.py |    8 +-
 test/integration/component/test_project_configs.py |   10 +-
 test/integration/component/test_project_limits.py  |    6 +-
 .../component/test_project_resources.py            |   12 +-
 test/integration/component/test_project_usage.py   |   18 +-
 test/integration/component/test_projects.py        |   14 +-
 test/integration/component/test_resource_limits.py |    6 +-
 test/integration/component/test_routers.py         |    8 +-
 test/integration/component/test_security_groups.py |   14 +-
 test/integration/component/test_snapshots.py       |   14 +-
 test/integration/component/test_storage_motion.py  |  298 +
 test/integration/component/test_templates.py       |    4 +-
 test/integration/component/test_usage.py           |   18 +-
 .../integration/component/test_vm_passwdenabled.py |    2 +-
 test/integration/component/test_volumes.py         |   10 +-
 test/integration/smoke/test_ScaleVm.py             |  221 -
 test/integration/smoke/test_global_settings.py     |   72 +
 test/integration/smoke/test_iso.py                 |    2 +-
 test/integration/smoke/test_network.py             |    2 +-
 test/integration/smoke/test_non_contigiousvlan.py  |  139 +-
 test/integration/smoke/test_public_ip_range.py     |    2 +-
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_scale_vm.py            |  221 +
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_volumes.py             |    2 +-
 .../definitions/systemvmtemplate/cleanup.sh        |    1 -
 .../definitions/systemvmtemplate64/cleanup.sh      |    1 -
 tools/build/build_asf.sh                           |   81 +-
 tools/build/setnextversion.sh                      |   75 +
 tools/marvin/marvin/cloudstackConnection.py        |   92 +-
 tools/marvin/marvin/integration/lib/base.py        |   24 +-
 tools/marvin/marvin/integration/lib/common.py      |    4 +-
 ui/css/cloudstack3.css                             |   88 +-
 ui/index.jsp                                       |    9 +-
 ui/modules/modules.js                              |   20 +
 ui/scripts/accounts.js                             |    7 +
 ui/scripts/instanceWizard.js                       |   37 +-
 ui/scripts/instances.js                            |   73 +-
 ui/scripts/network.js                              |   51 +-
 ui/scripts/plugins.js                              |   95 +-
 ui/scripts/storage.js                              |  117 +-
 ui/scripts/system.js                               |   20 +-
 ui/scripts/templates.js                            |  134 +-
 ui/scripts/ui-custom/pluginListing.js              |  109 +
 ui/scripts/ui-custom/plugins.js                    |  109 -
 ui/scripts/ui-custom/projectSelect.js              |   66 +
 ui/scripts/ui-custom/projects.js                   |    6 +-
 ui/scripts/ui-custom/zoneFilter.js                 |   39 +
 ui/scripts/zoneWizard.js                           |   39 +-
 usage/src/com/cloud/usage/UsageManagerImpl.java    |   10 +-
 210 files changed, 15219 insertions(+), 7537 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/api/src/org/apache/cloudstack/api/ResponseGenerator.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/ResponseGenerator.java
index 0dce13b,a3aa9de..6512516
--- a/api/src/org/apache/cloudstack/api/ResponseGenerator.java
+++ b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
@@@ -45,8 -43,7 +45,9 @@@ import org.apache.cloudstack.api.respon
  import org.apache.cloudstack.api.response.ExtractResponse;
  import org.apache.cloudstack.api.response.FirewallResponse;
  import org.apache.cloudstack.api.response.FirewallRuleResponse;
 +import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
  import org.apache.cloudstack.api.response.GuestOSResponse;
++import org.apache.cloudstack.api.response.HostForMigrationResponse;
  import org.apache.cloudstack.api.response.HostResponse;
  import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
  import org.apache.cloudstack.api.response.IPAddressResponse;
@@@ -86,6 -82,6 +87,7 @@@ import org.apache.cloudstack.api.respon
  import org.apache.cloudstack.api.response.SnapshotScheduleResponse;
  import org.apache.cloudstack.api.response.StaticRouteResponse;
  import org.apache.cloudstack.api.response.StorageNetworkIpRangeResponse;
++import org.apache.cloudstack.api.response.StoragePoolForMigrationResponse;
  import org.apache.cloudstack.api.response.StoragePoolResponse;
  import org.apache.cloudstack.api.response.SwiftResponse;
  import org.apache.cloudstack.api.response.SystemVmInstanceResponse;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/api/ApiDBUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/configuration/ConfigurationManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/element/VirtualRouterElement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/vpc/VpcManagerImpl.java
index e38074d,224a680..b1f2b19
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@@ -178,8 -184,8 +184,9 @@@ public class VpcManagerImpl extends Man
      private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
      private List<VpcProvider> vpcElements = null;
      private final List<Service> nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall);
 -    private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp);
 -     
 +    private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp, Provider.InternalLbVm);
 + 
++
      int _cleanupInterval;
      int _maxNetworks;
      SearchBuilder<IPAddressVO> IpAddressSearch;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/server/ManagementServerImpl.java
index 81ad12f,16127a2..38a0c3f
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@@ -34,7 -34,7 +34,6 @@@ import java.util.List
  import java.util.Map;
  import java.util.Set;
  import java.util.TimeZone;
--import java.util.UUID;
  import java.util.concurrent.Executors;
  import java.util.concurrent.ScheduledExecutorService;
  import java.util.concurrent.TimeUnit;
@@@ -44,360 -44,52 +43,364 @@@ import javax.crypto.spec.SecretKeySpec
  import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
 -import com.cloud.configuration.*;
 -import com.cloud.storage.dao.*;
 +import org.apache.cloudstack.acl.ControlledEntity;
  import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 -import org.apache.cloudstack.api.ApiConstants;
 -
 -import com.cloud.event.ActionEventUtils;
 -import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
 -import org.apache.cloudstack.api.command.admin.account.*;
 -import org.apache.cloudstack.api.command.admin.domain.*;
 -import org.apache.cloudstack.api.command.admin.host.*;
 -import org.apache.cloudstack.api.command.admin.network.*;
 -import org.apache.cloudstack.api.command.admin.offering.*;
 -import org.apache.cloudstack.api.command.admin.resource.*;
 -import org.apache.cloudstack.api.command.admin.router.*;
 -import org.apache.cloudstack.api.command.admin.storage.*;
 -import org.apache.cloudstack.api.command.admin.systemvm.*;
 -import org.apache.cloudstack.api.command.admin.usage.*;
 -import org.apache.cloudstack.api.command.admin.user.*;
 -import org.apache.cloudstack.api.command.admin.vlan.*;
 -import org.apache.cloudstack.api.command.admin.vpc.*;
 -import org.apache.cloudstack.api.command.user.autoscale.*;
 -import org.apache.cloudstack.api.command.user.firewall.*;
 -import org.apache.cloudstack.api.command.user.iso.*;
 -import org.apache.cloudstack.api.command.user.loadbalancer.*;
 -import org.apache.cloudstack.api.command.user.nat.*;
 -import org.apache.cloudstack.api.command.user.network.*;
 -import org.apache.cloudstack.api.command.user.project.*;
 -import org.apache.cloudstack.api.command.user.resource.*;
 -import org.apache.cloudstack.api.command.user.securitygroup.*;
 -import org.apache.cloudstack.api.command.user.snapshot.*;
 -import org.apache.cloudstack.api.command.user.template.*;
 -import org.apache.cloudstack.api.command.user.vm.*;
 -import org.apache.cloudstack.api.command.user.volume.*;
 -import org.apache.cloudstack.api.command.user.vpc.*;
 -import org.apache.cloudstack.api.command.user.vpn.*;
 -import org.apache.cloudstack.api.response.ExtractResponse;
 -import org.apache.commons.codec.binary.Base64;
 -import org.apache.log4j.Logger;
  import org.apache.cloudstack.affinity.AffinityGroupProcessor;
  import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
 -
 +import org.apache.cloudstack.api.ApiConstants;
 +import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
 +import org.apache.cloudstack.api.command.admin.account.CreateAccountCmd;
 +import org.apache.cloudstack.api.command.admin.account.DeleteAccountCmd;
 +import org.apache.cloudstack.api.command.admin.account.DisableAccountCmd;
 +import org.apache.cloudstack.api.command.admin.account.EnableAccountCmd;
 +import org.apache.cloudstack.api.command.admin.account.LockAccountCmd;
 +import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
 +import org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd;
 +import org.apache.cloudstack.api.command.admin.autoscale.DeleteCounterCmd;
 +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.cluster.ListClustersCmd;
 +import org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd;
 +import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
 +import org.apache.cloudstack.api.command.admin.config.ListHypervisorCapabilitiesCmd;
 +import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
 +import org.apache.cloudstack.api.command.admin.config.UpdateHypervisorCapabilitiesCmd;
 +import org.apache.cloudstack.api.command.admin.domain.CreateDomainCmd;
 +import org.apache.cloudstack.api.command.admin.domain.DeleteDomainCmd;
 +import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
 +import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
 +import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
 +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.DeleteHostCmd;
++import org.apache.cloudstack.api.command.admin.host.FindHostsForMigrationCmd;
 +import org.apache.cloudstack.api.command.admin.host.ListHostsCmd;
 +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.internallb.ConfigureInternalLoadBalancerElementCmd;
 +import org.apache.cloudstack.api.command.admin.internallb.CreateInternalLoadBalancerElementCmd;
 +import org.apache.cloudstack.api.command.admin.internallb.ListInternalLoadBalancerElementsCmd;
 +import org.apache.cloudstack.api.command.admin.ldap.LDAPConfigCmd;
 +import org.apache.cloudstack.api.command.admin.ldap.LDAPRemoveCmd;
 +import org.apache.cloudstack.api.command.admin.network.AddNetworkDeviceCmd;
 +import org.apache.cloudstack.api.command.admin.network.AddNetworkServiceProviderCmd;
 +import org.apache.cloudstack.api.command.admin.network.CreateNetworkOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.network.CreatePhysicalNetworkCmd;
 +import org.apache.cloudstack.api.command.admin.network.CreateStorageNetworkIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.network.DeleteNetworkDeviceCmd;
 +import org.apache.cloudstack.api.command.admin.network.DeleteNetworkOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.network.DeleteNetworkServiceProviderCmd;
 +import org.apache.cloudstack.api.command.admin.network.DeletePhysicalNetworkCmd;
 +import org.apache.cloudstack.api.command.admin.network.DeleteStorageNetworkIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.network.ListNetworkDeviceCmd;
 +import org.apache.cloudstack.api.command.admin.network.ListNetworkServiceProvidersCmd;
 +import org.apache.cloudstack.api.command.admin.network.ListPhysicalNetworksCmd;
 +import org.apache.cloudstack.api.command.admin.network.ListStorageNetworkIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.network.ListSupportedNetworkServicesCmd;
 +import org.apache.cloudstack.api.command.admin.network.UpdateNetworkOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.network.UpdateNetworkServiceProviderCmd;
 +import org.apache.cloudstack.api.command.admin.network.UpdatePhysicalNetworkCmd;
 +import org.apache.cloudstack.api.command.admin.network.UpdateStorageNetworkIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.offering.CreateDiskOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.offering.CreateServiceOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.offering.DeleteDiskOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.offering.DeleteServiceOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.offering.UpdateDiskOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.offering.UpdateServiceOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.pod.CreatePodCmd;
 +import org.apache.cloudstack.api.command.admin.pod.DeletePodCmd;
 +import org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd;
 +import org.apache.cloudstack.api.command.admin.pod.UpdatePodCmd;
 +import org.apache.cloudstack.api.command.admin.region.AddRegionCmd;
 +import org.apache.cloudstack.api.command.admin.region.RemoveRegionCmd;
 +import org.apache.cloudstack.api.command.admin.region.UpdateRegionCmd;
 +import org.apache.cloudstack.api.command.admin.resource.ArchiveAlertsCmd;
 +import org.apache.cloudstack.api.command.admin.resource.DeleteAlertsCmd;
 +import org.apache.cloudstack.api.command.admin.resource.ListAlertsCmd;
 +import org.apache.cloudstack.api.command.admin.resource.ListCapacityCmd;
 +import org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd;
 +import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
 +import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd;
 +import org.apache.cloudstack.api.command.admin.router.DestroyRouterCmd;
 +import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd;
 +import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
 +import org.apache.cloudstack.api.command.admin.router.RebootRouterCmd;
 +import org.apache.cloudstack.api.command.admin.router.StartRouterCmd;
 +import org.apache.cloudstack.api.command.admin.router.StopRouterCmd;
 +import org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd;
 +import org.apache.cloudstack.api.command.admin.storage.AddS3Cmd;
 +import org.apache.cloudstack.api.command.admin.storage.CancelPrimaryStorageMaintenanceCmd;
 +import org.apache.cloudstack.api.command.admin.storage.CreateStoragePoolCmd;
 +import org.apache.cloudstack.api.command.admin.storage.DeletePoolCmd;
++import org.apache.cloudstack.api.command.admin.storage.FindStoragePoolsForMigrationCmd;
 +import org.apache.cloudstack.api.command.admin.storage.ListS3sCmd;
 +import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
 +import org.apache.cloudstack.api.command.admin.storage.ListStorageProvidersCmd;
 +import org.apache.cloudstack.api.command.admin.storage.PreparePrimaryStorageForMaintenanceCmd;
 +import org.apache.cloudstack.api.command.admin.storage.UpdateStoragePoolCmd;
 +import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
 +import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.DestroySystemVmCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.ListSystemVMsCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.MigrateSystemVMCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.RebootSystemVmCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.StartSystemVMCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.StopSystemVmCmd;
 +import org.apache.cloudstack.api.command.admin.systemvm.UpgradeSystemVMCmd;
 +import org.apache.cloudstack.api.command.admin.template.PrepareTemplateCmd;
 +import org.apache.cloudstack.api.command.admin.usage.AddTrafficMonitorCmd;
 +import org.apache.cloudstack.api.command.admin.usage.AddTrafficTypeCmd;
 +import org.apache.cloudstack.api.command.admin.usage.DeleteTrafficMonitorCmd;
 +import org.apache.cloudstack.api.command.admin.usage.DeleteTrafficTypeCmd;
 +import org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd;
 +import org.apache.cloudstack.api.command.admin.usage.GetUsageRecordsCmd;
 +import org.apache.cloudstack.api.command.admin.usage.ListTrafficMonitorsCmd;
 +import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
 +import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypesCmd;
 +import org.apache.cloudstack.api.command.admin.usage.ListUsageTypesCmd;
 +import org.apache.cloudstack.api.command.admin.usage.UpdateTrafficTypeCmd;
 +import org.apache.cloudstack.api.command.admin.user.CreateUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.DisableUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.EnableUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.GetUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
 +import org.apache.cloudstack.api.command.admin.user.LockUserCmd;
 +import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
 +import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
 +import org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.vlan.DedicatePublicIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.vlan.DeleteVlanIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd;
 +import org.apache.cloudstack.api.command.admin.vlan.ReleasePublicIpRangeCmd;
 +import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
 +import org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd;
++import org.apache.cloudstack.api.command.admin.vm.MigrateVirtualMachineWithVolumeCmd;
 +import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd;
 +import org.apache.cloudstack.api.command.admin.vpc.CreatePrivateGatewayCmd;
 +import org.apache.cloudstack.api.command.admin.vpc.CreateVPCOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.vpc.DeletePrivateGatewayCmd;
 +import org.apache.cloudstack.api.command.admin.vpc.DeleteVPCOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.vpc.UpdateVPCOfferingCmd;
 +import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
 +import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
 +import org.apache.cloudstack.api.command.admin.zone.MarkDefaultZoneForAccountCmd;
 +import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
 +import org.apache.cloudstack.api.command.user.account.AddAccountToProjectCmd;
 +import org.apache.cloudstack.api.command.user.account.DeleteAccountFromProjectCmd;
 +import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
 +import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
 +import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
 +import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
 +import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
  import org.apache.cloudstack.api.command.user.affinitygroup.CreateAffinityGroupCmd;
  import org.apache.cloudstack.api.command.user.affinitygroup.DeleteAffinityGroupCmd;
  import org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupTypesCmd;
  import org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupsCmd;
  import org.apache.cloudstack.api.command.user.affinitygroup.UpdateVMAffinityGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScalePolicyCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmProfileCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.CreateConditionCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScalePolicyCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmProfileCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.DeleteConditionCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.DisableAutoScaleVmGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.EnableAutoScaleVmGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScalePoliciesCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmGroupsCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmProfilesCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.ListConditionsCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.ListCountersCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScalePolicyCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmGroupCmd;
 +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmProfileCmd;
 +import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd;
 +import org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd;
 +import org.apache.cloudstack.api.command.user.event.DeleteEventsCmd;
 +import org.apache.cloudstack.api.command.user.event.ListEventTypesCmd;
 +import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
 +import org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.CreatePortForwardingRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.DeleteEgressFirewallRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd;
 +import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd;
 +import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
 +import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
 +import org.apache.cloudstack.api.command.user.firewall.UpdatePortForwardingRuleCmd;
 +import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd;
 +import org.apache.cloudstack.api.command.user.guest.ListGuestOsCmd;
 +import org.apache.cloudstack.api.command.user.iso.AttachIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.CopyIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.DetachIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.ExtractIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.ListIsoPermissionsCmd;
 +import org.apache.cloudstack.api.command.user.iso.ListIsosCmd;
 +import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
 +import org.apache.cloudstack.api.command.user.iso.UpdateIsoPermissionsCmd;
 +import org.apache.cloudstack.api.command.user.job.ListAsyncJobsCmd;
 +import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.AssignToLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.CreateApplicationLoadBalancerCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteApplicationLoadBalancerCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBHealthCheckPolicyCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBStickinessPolicyCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.ListLBHealthCheckPoliciesCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.ListLBStickinessPoliciesCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRulesCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.RemoveFromLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.nat.CreateIpForwardingRuleCmd;
 +import org.apache.cloudstack.api.command.user.nat.DeleteIpForwardingRuleCmd;
 +import org.apache.cloudstack.api.command.user.nat.DisableStaticNatCmd;
 +import org.apache.cloudstack.api.command.user.nat.EnableStaticNatCmd;
 +import org.apache.cloudstack.api.command.user.nat.ListIpForwardingRulesCmd;
 +import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd;
 +import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
 +import org.apache.cloudstack.api.command.user.network.DeleteNetworkACLCmd;
 +import org.apache.cloudstack.api.command.user.network.DeleteNetworkCmd;
 +import org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd;
 +import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
 +import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
 +import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
 +import org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd;
 +import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
 +import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
 +import org.apache.cloudstack.api.command.user.project.ActivateProjectCmd;
 +import org.apache.cloudstack.api.command.user.project.CreateProjectCmd;
 +import org.apache.cloudstack.api.command.user.project.DeleteProjectCmd;
 +import org.apache.cloudstack.api.command.user.project.DeleteProjectInvitationCmd;
 +import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd;
 +import org.apache.cloudstack.api.command.user.project.ListProjectsCmd;
 +import org.apache.cloudstack.api.command.user.project.SuspendProjectCmd;
 +import org.apache.cloudstack.api.command.user.project.UpdateProjectCmd;
 +import org.apache.cloudstack.api.command.user.project.UpdateProjectInvitationCmd;
 +import org.apache.cloudstack.api.command.user.region.ListRegionsCmd;
 +import org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.region.ha.gslb.CreateGlobalLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.region.ha.gslb.DeleteGlobalLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.region.ha.gslb.ListGlobalLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.region.ha.gslb.RemoveFromGlobalLoadBalancerRuleCmd;
 +import org.apache.cloudstack.api.command.user.resource.GetCloudIdentifierCmd;
 +import org.apache.cloudstack.api.command.user.resource.ListHypervisorsCmd;
 +import org.apache.cloudstack.api.command.user.resource.ListResourceLimitsCmd;
 +import org.apache.cloudstack.api.command.user.resource.UpdateResourceCountCmd;
 +import org.apache.cloudstack.api.command.user.resource.UpdateResourceLimitCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupEgressCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupIngressCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.CreateSecurityGroupCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.DeleteSecurityGroupCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd;
 +import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupIngressCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
 +import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
 +import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd;
 +import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd;
 +import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd;
 +import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd;
 +import org.apache.cloudstack.api.command.user.tag.CreateTagsCmd;
 +import org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd;
 +import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
 +import org.apache.cloudstack.api.command.user.template.CopyTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCmd;
 +import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
 +import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
 +import org.apache.cloudstack.api.command.user.template.UpdateTemplatePermissionsCmd;
 +import org.apache.cloudstack.api.command.user.vm.AddIpToVmNicCmd;
 +import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd;
 +import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
 +import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
 +import org.apache.cloudstack.api.command.user.vm.RebootVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.RemoveIpFromVmNicCmd;
 +import org.apache.cloudstack.api.command.user.vm.RemoveNicFromVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd;
 +import org.apache.cloudstack.api.command.user.vm.ResetVMSSHKeyCmd;
 +import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.UpdateDefaultNicForVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
 +import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
 +import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd;
 +import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd;
 +import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
 +import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd;
 +import org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToSnapshotCmd;
 +import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
 +import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
 +import org.apache.cloudstack.api.command.user.volume.DeleteVolumeCmd;
 +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.ListVolumesCmd;
 +import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
 +import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
 +import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
 +import org.apache.cloudstack.api.command.user.vpc.CreateStaticRouteCmd;
 +import org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd;
 +import org.apache.cloudstack.api.command.user.vpc.DeleteStaticRouteCmd;
 +import org.apache.cloudstack.api.command.user.vpc.DeleteVPCCmd;
 +import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd;
 +import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd;
 +import org.apache.cloudstack.api.command.user.vpc.ListVPCOfferingsCmd;
 +import org.apache.cloudstack.api.command.user.vpc.ListVPCsCmd;
 +import org.apache.cloudstack.api.command.user.vpc.RestartVPCCmd;
 +import org.apache.cloudstack.api.command.user.vpc.UpdateVPCCmd;
 +import org.apache.cloudstack.api.command.user.vpn.AddVpnUserCmd;
 +import org.apache.cloudstack.api.command.user.vpn.CreateRemoteAccessVpnCmd;
 +import org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd;
 +import org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd;
 +import org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd;
 +import org.apache.cloudstack.api.command.user.vpn.DeleteRemoteAccessVpnCmd;
 +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnConnectionCmd;
 +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnCustomerGatewayCmd;
 +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnGatewayCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ListVpnConnectionsCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ListVpnCustomerGatewaysCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
 +import org.apache.cloudstack.api.command.user.vpn.RemoveVpnUserCmd;
 +import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
 +import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
 +import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
 +import org.apache.cloudstack.api.response.ExtractResponse;
 +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
++import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 +import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 +import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 +import org.apache.commons.codec.binary.Base64;
 +import org.apache.log4j.Logger;
 +
  import com.cloud.agent.AgentManager;
  import com.cloud.agent.api.GetVncPortAnswer;
  import com.cloud.agent.api.GetVncPortCommand;
@@@ -426,23 -110,11 +429,22 @@@ import com.cloud.configuration.Configur
  import com.cloud.configuration.dao.ConfigurationDao;
  import com.cloud.consoleproxy.ConsoleProxyManagementState;
  import com.cloud.consoleproxy.ConsoleProxyManager;
 -import com.cloud.dc.*;
 +import com.cloud.dc.AccountVlanMapVO;
 +import com.cloud.dc.ClusterVO;
 +import com.cloud.dc.DataCenterVO;
 +import com.cloud.dc.HostPodVO;
 +import com.cloud.dc.Pod;
 +import com.cloud.dc.PodVlanMapVO;
 +import com.cloud.dc.Vlan;
  import com.cloud.dc.Vlan.VlanType;
 -import com.cloud.dc.dao.*;
 +import com.cloud.dc.VlanVO;
 +import com.cloud.dc.dao.AccountVlanMapDao;
 +import com.cloud.dc.dao.ClusterDao;
 +import com.cloud.dc.dao.DataCenterDao;
 +import com.cloud.dc.dao.HostPodDao;
 +import com.cloud.dc.dao.PodVlanMapDao;
 +import com.cloud.dc.dao.VlanDao;
  import com.cloud.deploy.DataCenterDeployment;
--import com.cloud.deploy.DeploymentPlanner;
  import com.cloud.deploy.DeploymentPlanner.ExcludeList;
  import com.cloud.domain.DomainVO;
  import com.cloud.domain.dao.DomainDao;
@@@ -487,28 -148,11 +489,29 @@@ import com.cloud.projects.ProjectManage
  import com.cloud.resource.ResourceManager;
  import com.cloud.server.ResourceTag.TaggedResourceType;
  import com.cloud.server.auth.UserAuthenticator;
--import com.cloud.service.ServiceOfferingVO;
  import com.cloud.service.dao.ServiceOfferingDao;
 -import com.cloud.storage.*;
++import com.cloud.storage.DiskOfferingVO;
 +import com.cloud.storage.GuestOS;
 +import com.cloud.storage.GuestOSCategoryVO;
 +import com.cloud.storage.GuestOSVO;
 +import com.cloud.storage.GuestOsCategory;
 +import com.cloud.storage.Storage;
  import com.cloud.storage.Storage.ImageFormat;
 +import com.cloud.storage.StorageManager;
 +import com.cloud.storage.StoragePool;
 +import com.cloud.storage.Upload;
  import com.cloud.storage.Upload.Mode;
 +import com.cloud.storage.UploadVO;
 +import com.cloud.storage.VMTemplateVO;
 +import com.cloud.storage.Volume;
++import com.cloud.storage.VolumeManager;
 +import com.cloud.storage.VolumeVO;
 +import com.cloud.storage.dao.DiskOfferingDao;
 +import com.cloud.storage.dao.GuestOSCategoryDao;
 +import com.cloud.storage.dao.GuestOSDao;
 +import com.cloud.storage.dao.UploadDao;
 +import com.cloud.storage.dao.VMTemplateDao;
 +import com.cloud.storage.dao.VolumeDao;
  import com.cloud.storage.s3.S3Manager;
  import com.cloud.storage.secondary.SecondaryStorageVmManager;
  import com.cloud.storage.snapshot.SnapshotManager;
@@@ -549,25 -181,85 +552,26 @@@ import com.cloud.utils.exception.CloudR
  import com.cloud.utils.net.MacAddress;
  import com.cloud.utils.net.NetUtils;
  import com.cloud.utils.ssh.SSHKeysHelper;
 -import com.cloud.vm.*;
 +import com.cloud.vm.ConsoleProxyVO;
++import com.cloud.vm.DiskProfile;
 +import com.cloud.vm.InstanceGroupVO;
 +import com.cloud.vm.SecondaryStorageVmVO;
 +import com.cloud.vm.UserVmVO;
 +import com.cloud.vm.VMInstanceVO;
 +import com.cloud.vm.VirtualMachine;
  import com.cloud.vm.VirtualMachine.State;
 -import com.cloud.vm.dao.*;
 +import com.cloud.vm.VirtualMachineManager;
 +import com.cloud.vm.VirtualMachineProfile;
 +import com.cloud.vm.VirtualMachineProfileImpl;
 +import com.cloud.vm.dao.ConsoleProxyDao;
 +import com.cloud.vm.dao.DomainRouterDao;
 +import com.cloud.vm.dao.InstanceGroupDao;
 +import com.cloud.vm.dao.SecondaryStorageVmDao;
 +import com.cloud.vm.dao.UserVmDao;
 +import com.cloud.vm.dao.VMInstanceDao;
 +
  import edu.emory.mathcs.backport.java.util.Arrays;
  import edu.emory.mathcs.backport.java.util.Collections;
 -import org.apache.cloudstack.acl.ControlledEntity;
 -import org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd;
 -import org.apache.cloudstack.api.command.admin.autoscale.DeleteCounterCmd;
 -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.cluster.ListClustersCmd;
 -import org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd;
 -import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
 -import org.apache.cloudstack.api.command.admin.config.ListHypervisorCapabilitiesCmd;
 -import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
 -import org.apache.cloudstack.api.command.admin.config.UpdateHypervisorCapabilitiesCmd;
 -import org.apache.cloudstack.api.command.admin.ldap.LDAPConfigCmd;
 -import org.apache.cloudstack.api.command.admin.ldap.LDAPRemoveCmd;
 -import org.apache.cloudstack.api.command.admin.pod.CreatePodCmd;
 -import org.apache.cloudstack.api.command.admin.pod.DeletePodCmd;
 -import org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd;
 -import org.apache.cloudstack.api.command.admin.pod.UpdatePodCmd;
 -import org.apache.cloudstack.api.command.admin.region.AddRegionCmd;
 -import org.apache.cloudstack.api.command.admin.region.RemoveRegionCmd;
 -import org.apache.cloudstack.api.command.admin.region.UpdateRegionCmd;
 -import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
 -import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
 -import org.apache.cloudstack.api.command.admin.template.PrepareTemplateCmd;
 -import org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd;
 -import org.apache.cloudstack.api.command.admin.vlan.DeleteVlanIpRangeCmd;
 -import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd;
 -import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
 -import org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd;
 -import org.apache.cloudstack.api.command.admin.vm.MigrateVirtualMachineWithVolumeCmd;
 -import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd;
 -import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
 -import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
 -import org.apache.cloudstack.api.command.admin.zone.MarkDefaultZoneForAccountCmd;
 -import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
 -import org.apache.cloudstack.api.command.user.account.AddAccountToProjectCmd;
 -import org.apache.cloudstack.api.command.user.account.DeleteAccountFromProjectCmd;
 -import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
 -import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
 -import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
 -import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
 -import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
 -import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd;
 -import org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd;
 -import org.apache.cloudstack.api.command.user.event.DeleteEventsCmd;
 -import org.apache.cloudstack.api.command.user.event.ListEventTypesCmd;
 -import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
 -import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd;
 -import org.apache.cloudstack.api.command.user.guest.ListGuestOsCmd;
 -import org.apache.cloudstack.api.command.user.job.ListAsyncJobsCmd;
 -import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
 -import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
 -import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
 -import org.apache.cloudstack.api.command.user.region.ListRegionsCmd;
 -import org.apache.cloudstack.api.command.user.region.ha.gslb.*;
 -import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd;
 -import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd;
 -import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd;
 -import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd;
 -import org.apache.cloudstack.api.command.user.tag.CreateTagsCmd;
 -import org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd;
 -import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
 -import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd;
 -import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd;
 -import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
 -import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd;
 -import org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd;
 -import org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd;
 -import org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd;
 -import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToSnapshotCmd;
 -import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
 -import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 -import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 -import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 -import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
  
  public class ManagementServerImpl extends ManagerBase implements ManagementServer {
      public static final Logger s_logger = Logger.getLogger(ManagementServerImpl.class.getName());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca2fc306/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 52acd3c,cfce81f..4558f90
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -773,138 -1107,4 +1107,140 @@@ CREATE VIEW `cloud`.`account_view` A
              and async_job.instance_type = 'Account'
              and async_job.job_status = 0;
  
 -alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL;             
 +
 +
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `source_ip_address` varchar(40) COMMENT 'source ip address for the load balancer rule';
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `source_ip_address_network_id` bigint unsigned COMMENT 'the id of the network where source ip belongs to';
 +ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `scheme` varchar(40) NOT NULL COMMENT 'load balancer scheme; can be Internal or Public';
 +UPDATE `cloud`.`load_balancing_rules` SET `scheme`='Public';
 +
 +
 +-- Add role to the domain router view
 +ALTER VIEW `cloud`.`domain_router_view` AS
 +    select 
 +        vm_instance.id id,
 +        vm_instance.name name,
 +        account.id account_id,
 +        account.uuid account_uuid,
 +        account.account_name account_name,
 +        account.type account_type,
 +        domain.id domain_id,
 +        domain.uuid domain_uuid,
 +        domain.name domain_name,
 +        domain.path domain_path,
 +        projects.id project_id,
 +        projects.uuid project_uuid,
 +        projects.name project_name,
 +        vm_instance.uuid uuid,
 +        vm_instance.created created,
 +        vm_instance.state state,
 +        vm_instance.removed removed,
 +        vm_instance.pod_id pod_id,
 +        vm_instance.instance_name instance_name,
 +        host_pod_ref.uuid pod_uuid,
 +        data_center.id data_center_id,
 +        data_center.uuid data_center_uuid,
 +        data_center.name data_center_name,
 +        data_center.dns1 dns1,
 +        data_center.dns2 dns2,
 +        data_center.ip6_dns1 ip6_dns1,
 +        data_center.ip6_dns2 ip6_dns2,
 +        host.id host_id,
 +        host.uuid host_uuid,
 +        host.name host_name,
 +        vm_template.id template_id,
 +        vm_template.uuid template_uuid,
 +        service_offering.id service_offering_id,
 +        disk_offering.uuid service_offering_uuid,
 +        disk_offering.name service_offering_name,
 +        nics.id nic_id,
 +        nics.uuid nic_uuid,
 +        nics.network_id network_id,
 +        nics.ip4_address ip_address,
 +        nics.ip6_address ip6_address,
 +        nics.ip6_gateway ip6_gateway,
 +        nics.ip6_cidr ip6_cidr,
 +        nics.default_nic is_default_nic,
 +        nics.gateway gateway,
 +        nics.netmask netmask,
 +        nics.mac_address mac_address,
 +        nics.broadcast_uri broadcast_uri,
 +        nics.isolation_uri isolation_uri,
 +        vpc.id vpc_id,
 +        vpc.uuid vpc_uuid,
 +        networks.uuid network_uuid,
 +        networks.name network_name,
 +        networks.network_domain network_domain,
 +        networks.traffic_type traffic_type,
 +        networks.guest_type guest_type,
 +        async_job.id job_id,
 +        async_job.uuid job_uuid,
 +        async_job.job_status job_status,
 +        async_job.account_id job_account_id,
 +        domain_router.template_version template_version,
 +        domain_router.scripts_version scripts_version,
 +        domain_router.is_redundant_router is_redundant_router,
 +        domain_router.redundant_state redundant_state,
 +        domain_router.stop_pending stop_pending,
 +        domain_router.role role
 +    from
 +        `cloud`.`domain_router`
 +            inner join
 +        `cloud`.`vm_instance` ON vm_instance.id = domain_router.id
 +            inner join
 +        `cloud`.`account` ON vm_instance.account_id = account.id
 +            inner join
 +        `cloud`.`domain` ON vm_instance.domain_id = domain.id
 +            left join
 +        `cloud`.`host_pod_ref` ON vm_instance.pod_id = host_pod_ref.id
 +            left join
 +        `cloud`.`projects` ON projects.project_account_id = account.id
 +            left join
 +        `cloud`.`data_center` ON vm_instance.data_center_id = data_center.id
 +            left join
 +        `cloud`.`host` ON vm_instance.host_id = host.id
 +            left join
 +        `cloud`.`vm_template` ON vm_instance.vm_template_id = vm_template.id
 +            left join
 +        `cloud`.`service_offering` ON vm_instance.service_offering_id = service_offering.id
 +            left join
 +        `cloud`.`disk_offering` ON vm_instance.service_offering_id = disk_offering.id
 +            left join
 +        `cloud`.`volumes` ON vm_instance.id = volumes.instance_id
 +            left join
 +        `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
 +            left join
 +        `cloud`.`nics` ON vm_instance.id = nics.instance_id
 +            left join
 +        `cloud`.`networks` ON nics.network_id = networks.id
 +            left join
 +        `cloud`.`vpc` ON domain_router.vpc_id = vpc.id
 +            left join
 +        `cloud`.`async_job` ON async_job.instance_id = vm_instance.id
 +            and async_job.instance_type = 'DomainRouter'
 +            and async_job.job_status = 0;
 +
 +
 +-- Add details talbe for the network offering
 +CREATE TABLE `cloud`.`network_offering_details` (
 +  `id` bigint unsigned NOT NULL auto_increment,
 +  `network_offering_id` bigint unsigned NOT NULL COMMENT 'network offering id',
 +  `name` varchar(255) NOT NULL,
 +  `value` varchar(1024) NOT NULL,
 +  PRIMARY KEY (`id`),
 +  CONSTRAINT `fk_network_offering_details__network_offering_id` FOREIGN KEY `fk_network_offering_details__network_offering_id`(`network_offering_id`) REFERENCES `network_offerings`(`id`) ON DELETE CASCADE
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 +
 +-- Change the constraint for the network service map table. Now we support multiple provider for the same service
 +ALTER TABLE `cloud`.`ntwk_service_map` DROP FOREIGN KEY `fk_ntwk_service_map__network_id`;
 +ALTER TABLE `cloud`.`ntwk_service_map` DROP INDEX `network_id`;
 +
 +ALTER TABLE `cloud`.`ntwk_service_map` ADD UNIQUE `network_id` (`network_id`,`service`,`provider`);
 +ALTER TABLE `cloud`.`ntwk_service_map` ADD  CONSTRAINT `fk_ntwk_service_map__network_id` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`) ON DELETE CASCADE;
 +
 +
 +ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `internal_lb` int(1) unsigned NOT NULL DEFAULT '0' COMMENT 'true if the network offering supports Internal lb service';
 +ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `public_lb` int(1) unsigned NOT NULL DEFAULT '0' COMMENT 'true if the network offering supports Public lb service';
- UPDATE `cloud`.`network_offerings` SET public_lb=1 where id IN (SELECT DISTINCT network_offering_id FROM `cloud`.`ntwk_offering_service_map` WHERE service='Lb');
++UPDATE `cloud`.`network_offerings` SET public_lb=1 where id IN (SELECT DISTINCT network_offering_id FROM `cloud`.`ntwk_offering_service_map` WHERE service='Lb');
++
++alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL;             


[29/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Improvements for French translation for Admin Web UI (for better display or better meaning). Add some missing translations.

Signed-off-by: Milamber <mi...@apache.org>


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

Branch: refs/heads/internallb
Commit: 35306d42b3062133d8c0e8384edeeea8f1982cbf
Parents: 612e5fb
Author: Milamber <mi...@apache.org>
Authored: Sun Apr 7 17:17:02 2013 +0000
Committer: Milamber <mi...@apache.org>
Committed: Mon Apr 22 18:16:04 2013 +0000

----------------------------------------------------------------------
 .../classes/resources/messages_fr_FR.properties    |  216 ++++++++-------
 1 files changed, 113 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/35306d42/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 267baec..6a7cc9a 100644
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ b/client/WEB-INF/classes/resources/messages_fr_FR.properties
@@ -128,8 +128,8 @@ label.action.delete.nexusVswitch=Supprimer le Nexus 1000v
 label.action.delete.physical.network=Supprimer le r\u00E9seau physique
 label.action.delete.pod=Supprimer le Pod
 label.action.delete.pod.processing=Suppression du pod...
-label.action.delete.primary.storage=Supprimer le stockage primaire
-label.action.delete.primary.storage.processing=Suppression du stockage primaire...
+label.action.delete.primary.storage=Supprimer le stockage principal
+label.action.delete.primary.storage.processing=Suppression du stockage principal...
 label.action.delete.secondary.storage=Supprimer le stockage secondaire
 label.action.delete.secondary.storage.processing=Suppression du stockage secondaire...
 label.action.delete.security.group=Supprimer le groupe de s\u00E9curit\u00E9
@@ -184,7 +184,7 @@ label.action.edit.network=Modifier le r\u00E9seau
 label.action.edit.network.offering=Modifier l\\'offre de service r\u00E9seau
 label.action.edit.network.processing=Modification du R\u00E9seau...
 label.action.edit.pod=Modifier le pod
-label.action.edit.primary.storage=Modifier le stockage primaire
+label.action.edit.primary.storage=Modifier le stockage principal
 label.action.edit.resource.limits=Modifier les limites de ressources
 label.action.edit.service.offering=Modifier l\\'offre de service
 label.action.edit.template=Modifier le mod\u00E8le
@@ -236,6 +236,8 @@ label.action.remove.host=Supprimer l\\'h\u00F4te
 label.action.remove.host.processing=Suppression de l\\'h\u00F4te...
 label.action.reset.password=R\u00E9-initialiser le mot de passe
 label.action.reset.password.processing=R\u00E9-initialisation du mot de passe...
+label.action.resize.volume=Redimensionner Volume
+label.action.resize.volume.processing=Redimensionnement en cours...
 label.action.resource.limits=Limites de ressources
 label.action.restore.instance=Restaurer l\\'instance
 label.action.restore.instance.processing=Restauration de l\\'instance...
@@ -263,7 +265,7 @@ label.actions=Actions
 label.activate.project=Activer projet
 label.active.sessions=Sessions actives
 label.add=Ajouter
-label.add.ACL=Ajouter une r\u00E8gle ACL
+label.add.ACL=Ajouter r\u00E8gle ACL
 label.add.F5.device=Ajouter un F5
 label.add.NiciraNvp.device=Ajouter un contr\u00F4leur Nvp
 label.add.SRX.device=Ajouter un SRX
@@ -302,10 +304,10 @@ label.add.new.tier=Ajouter un nouveau tiers
 label.add.physical.network=Ajouter un r\u00E9seau physique
 label.add.pod=Ajouter un pod
 label.add.port.forwarding.rule=Ajouter une r\u00E8gle de transfert de port
-label.add.primary.storage=Ajouter un stockage primaire
-label.add.resources=Ajouter des ressources
-label.add.route=Ajouter une route
-label.add.rule=Ajouter une r\u00E8gle
+label.add.primary.storage=Ajouter un stockage principal
+label.add.resources=Ajouter ressources
+label.add.route=Ajouter route
+label.add.rule=Ajouter r\u00E8gle
 label.add.secondary.storage=Ajouter un stockage secondaire
 label.add.security.group=Ajouter un groupe de s\u00E9curit\u00E9
 label.add.service.offering=Ajouter une offre de service
@@ -344,7 +346,7 @@ label.agree=Accepter
 label.alert=Alerte
 label.algorithm=Algorithme
 label.allocated=Allou\u00E9
-label.allocation.state=\u00C9tat de l\\'allocation
+label.allocation.state=\u00C9tat
 label.api.key=Cl\u00E9 d\\'API
 label.apply=Appliquer
 label.assign=Assigner
@@ -402,7 +404,7 @@ label.clvm=CLVM
 label.code=Code
 label.community=Communaut\u00E9
 label.compute=Processeur
-label.compute.and.storage=Processeur et Stockage
+label.compute.and.storage=Calcul et Stockage
 label.compute.offering=Offre de calcul
 label.compute.offerings=Offres de calcul
 label.configuration=Configuration
@@ -474,7 +476,7 @@ label.disk.size=Taille du disque
 label.disk.size.gb=Taille du disque (en Go)
 label.disk.total=Espace disque total
 label.disk.volume=Volume disque
-label.display.name=Nom d\\'affichage
+label.display.name=Nom commun
 label.display.text=Texte affich\u00E9
 label.dns=DNS
 label.dns.1=DNS 1
@@ -508,7 +510,7 @@ label.enable.swift=Activer Swift
 label.enable.vpn=Activer VPN
 label.enabling.vpn=Activation du VPN
 label.enabling.vpn.access=Activation de l\\'acc\u00E8s VPN
-label.end.IP=R\u00E9silier l\\'IP
+label.end.IP=Fin de plage IP
 label.end.port=Port de fin
 label.end.reserved.system.IP=Adresse IP de fin r\u00E9serv\u00E9e Syst\u00E8me
 label.end.vlan=VLAN de fin
@@ -522,7 +524,7 @@ label.f5=F5
 label.failed=\u00C9chou\u00E9
 label.featured=Sponsoris\u00E9
 label.fetch.latest=Rafra\u00EEchir
-label.filterBy=Filtrer par
+label.filterBy=Filtre
 label.firewall=Pare-feu
 label.first.name=Pr\u00E9nom
 label.format=Format
@@ -574,8 +576,8 @@ label.installWizard.addHostIntro.subtitle=Qu\\'est ce qu\\'un h\u00F4te ?
 label.installWizard.addHostIntro.title=Ajoutons un h\u00F4te
 label.installWizard.addPodIntro.subtitle=Qu\\'est ce qu\\'un pod ?
 label.installWizard.addPodIntro.title=Ajoutons un pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Qu\\'est ce que le stockage primaire ?
-label.installWizard.addPrimaryStorageIntro.title=Ajoutons du stockage primaire
+label.installWizard.addPrimaryStorageIntro.subtitle=Qu\\'est ce que le stockage principal ?
+label.installWizard.addPrimaryStorageIntro.title=Ajoutons du stockage principal
 label.installWizard.addSecondaryStorageIntro.subtitle=Qu\\'est ce que le stockage secondaire ?
 label.installWizard.addSecondaryStorageIntro.title=Ajoutons du stockage secondaire
 label.installWizard.addZone.title=Ajouter une zone
@@ -626,10 +628,15 @@ label.keyboard.type=Type de clavier
 label.kvm.traffic.label=Libell\u00E9 pour le trafic KVM
 label.label=Libell\u00E9
 label.lang.brportugese=Portuguais Br\u00E9sil
+label.lang.catalan=Catalan
 label.lang.chinese=Chinois (simplifi\u00E9)
 label.lang.english=Anglais
 label.lang.french=Fran\u00E7ais
+label.lang.german=Allemand
+label.lang.italian=Italien
 label.lang.japanese=Japonais
+label.lang.korean=Cor\u00E9en
+label.lang.norwegian=Norv\u00E9gien
 label.lang.russian=Russe
 label.lang.spanish=Espagnol
 label.last.disconnected=Derni\u00E8re D\u00E9connexion
@@ -712,12 +719,12 @@ label.menu.virtual.resources=Ressources Virtuelles
 label.menu.volumes=Volumes
 label.migrate.instance.to=Migrer l\\'instance vers
 label.migrate.instance.to.host=Migration de l\\'instance sur un autre h\u00F4te
-label.migrate.instance.to.ps=Migration de l\\'instance sur un autre stockage primaire
+label.migrate.instance.to.ps=Migration de l\\'instance sur un autre stockage principal
 label.migrate.router.to=Migrer le routeur vers 
 label.migrate.systemvm.to=Migrer la VM syst\u00E8me vers 
 label.migrate.to.host=Migrer vers un h\u00F4te
 label.migrate.to.storage=Migrer vers un stockage
-label.migrate.volume=Migration du volume vers un autre stockage primaire
+label.migrate.volume=Migration du volume vers un autre stockage principal
 label.minimum=Minimum
 label.minute.past.hour=minute(s)
 label.monday=Lundi
@@ -785,7 +792,7 @@ label.no.thanks=Non merci
 label.none=Aucun
 label.not.found=Introuvable
 label.notifications=Messages
-label.num.cpu.cores=Nombre de coeurs de processeur
+label.num.cpu.cores=Nombre de c\u0153urs
 label.number.of.clusters=Nombre de clusters
 label.number.of.hosts=Nombre d\\'H\u00F4tes
 label.number.of.pods=Nombre de Pods
@@ -798,11 +805,11 @@ label.offer.ha=Offrir la haute disponibilit\u00E9
 label.ok=OK
 label.optional=Facultatif
 label.order=Ordre
-label.os.preference=Pr\u00E9f\u00E9rence du OS
+label.os.preference=Pr\u00E9f\u00E9rence OS
 label.os.type=Type du OS
 label.owned.public.ips=Adresses IP Publiques d\u00E9tenues
-label.owner.account=Propri\u00E9taire du compte
-label.owner.domain=Propri\u00E9taire du domaine
+label.owner.account=Propri\u00E9taire
+label.owner.domain=Propri\u00E9taire
 label.parent.domain=Parent du Domaine
 label.password=Mot de passe
 label.password.enabled=Mot de passe activ\u00E9
@@ -820,11 +827,11 @@ label.port.forwarding.policies=R\u00E8gles de transfert de port
 label.port.range=Plage de ports
 label.prev=Pr\u00E9c\u00E9dent
 label.previous=Retour
-label.primary.allocated=Stockage primaire allou\u00E9
-label.primary.network=R\u00E9seau primaire
+label.primary.allocated=Stockage principal allou\u00E9
+label.primary.network=R\u00E9seau principal
 label.primary.storage=Premier stockage
-label.primary.storage.count=Groupes de stockage primaire
-label.primary.used=Stockage primaire utilis\u00E9
+label.primary.storage.count=Groupes de stockage principal
+label.primary.used=Stockage principal utilis\u00E9
 label.private.Gateway=Passerelle priv\u00E9e
 label.private.interface=Interface priv\u00E9e
 label.private.ip=Adresse IP Priv\u00E9e
@@ -881,6 +888,9 @@ label.reserved.system.gateway=Passerelle r\u00E9serv\u00E9e Syst\u00E8me
 label.reserved.system.ip=Adresse IP Syst\u00E8me r\u00E9serv\u00E9e
 label.reserved.system.netmask=Masque de sous-r\u00E9seau r\u00E9serv\u00E9 Syst\u00E8me
 label.reset.VPN.connection=R\u00E9-initialiser la connexion VPN
+label.resize.new.offering.id=Nouvelle Offre
+label.resize.new.size=Nouvelle Taille (Go)
+label.resize.shrink.ok=R\u00E9duction OK
 label.resource=Ressource
 label.resource.limits=Limite des ressources
 label.resource.state=\u00C9tat des ressources
@@ -921,7 +931,7 @@ label.security.group.name=Nom du groupe de s\u00E9curit\u00E9
 label.security.groups=Groupes de s\u00E9curit\u00E9
 label.security.groups.enabled=Groupes de s\u00E9curit\u00E9 Activ\u00E9s
 label.select=S\u00E9lectionner
-label.select-view=S\u00E9lectionner la vue
+label.select-view=S\u00E9lectionner la vue 
 label.select.a.template=S\u00E9lectionner un mod\u00E8le
 label.select.a.zone=S\u00E9lectionner une zone
 label.select.instance=S\u00E9lectionner une instance
@@ -947,8 +957,8 @@ label.site.to.site.VPN=VPN Site-\u00E0-Site
 label.size=Taille
 label.skip.guide=J\\'ai d\u00E9j\u00E0 utilis\u00E9 CloudStack avant, passer ce tutoriel
 label.snapshot=Instantan\u00E9
-label.snapshot.limits=Limites d\\'instantan\u00E9
-label.snapshot.name=Nom de l\\'instantan\u00E9
+label.snapshot.limits=Limites d\\'instantan\u00E9s
+label.snapshot.name=Nom Instantan\u00E9
 label.snapshot.s=Instantan\u00E9(s)
 label.snapshot.schedule=Configurer un instantan\u00E9 r\u00E9current
 label.snapshots=Instantan\u00E9s
@@ -957,7 +967,7 @@ label.source.nat=NAT Source
 label.specify.IP.ranges=Sp\u00E9cifier des plages IP
 label.specify.vlan=Pr\u00E9ciser le VLAN
 label.srx=SRX
-label.start.IP=D\u00E9marrer l\\'IP
+label.start.IP=Plage de d\u00E9but IP
 label.start.port=Port de d\u00E9but
 label.start.reserved.system.IP=Adresse IP de d\u00E9but r\u00E9serv\u00E9e Syst\u00E8me
 label.start.vlan=VLAN de d\u00E9part
@@ -1086,7 +1096,7 @@ label.vlan.id=ID du VLAN
 label.vlan.range=Plage du VLAN
 label.vm.add=Ajouter une instance
 label.vm.destroy=D\u00E9truire
-label.vm.display.name=Nom d\\'affichage de la VM
+label.vm.display.name=Nom commun VM
 label.vm.name=Nom de la VM
 label.vm.reboot=Red\u00E9marrer
 label.vm.start=D\u00E9marrer
@@ -1120,7 +1130,7 @@ label.yes=Oui
 label.zone=Zone
 label.zone.details=D\u00E9tails de la zone
 label.zone.id=ID de la zone
-label.zone.name=Nom de la zone
+label.zone.name=Nom de zone
 label.zone.step.1.title=\u00C9tape 1 \: <strong>S\u00E9lectionnez un r\u00E9seau</strong>
 label.zone.step.2.title=\u00C9tape 2 \: <strong>Ajoutez une zone</strong>
 label.zone.step.3.title=\u00C9tape 3 \: <strong>Ajoutez un Pod</strong>
@@ -1130,7 +1140,7 @@ label.zone.wide=Transverse \u00E0 la zone
 label.zoneWizard.trafficType.guest=Invit\u00E9 \: Trafic entre les machines virtuelles utilisateurs
 label.zoneWizard.trafficType.management=Administration \: Trafic entre les ressources internes de CloudStack, incluant tous les composants qui communiquent avec le serveur d\\'administration, tels que les h\u00F4tes and les machines virtuelles Syst\u00E8mes CloudStack
 label.zoneWizard.trafficType.public=Public \: Trafic entre Internet et les machines virtuelles dans le nuage
-label.zoneWizard.trafficType.storage=Stockage \: Trafic entre les serveurs de stockages primaires et secondaires, tel que le transfert de machines virtuelles mod\u00E8les et des instantan\u00E9s de disques
+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.zones=Zones
 managed.state=\u00C9tat de la gestion
 message.Zone.creation.complete=Cr\u00E9ation de la zone termin\u00E9e
@@ -1141,63 +1151,63 @@ message.action.cancel.maintenance=Votre h\u00F4te a quitt\u00E9 la maintenance.
 message.action.cancel.maintenance.mode=Confirmer l\\'annulation de cette maintenance.
 message.action.change.service.warning.for.instance=Votre instance doit \u00EAtre arr\u00EAt\u00E9e avant d\\'essayer de changer son offre de service.
 message.action.change.service.warning.for.router=Votre routeur doit \u00EAtre arr\u00EAt\u00E9 avant d\\'essayer de changer son offre de service.
-message.action.delete.ISO=Confirmer que vous souhaitez supprimer cette ISO.
+message.action.delete.ISO=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette ISO.
 message.action.delete.ISO.for.all.zones=L\\'ISO est utilis\u00E9 par toutes les zones. S\\'il vous pla\u00EEt confirmer que vous voulez le supprimer de toutes les zones.
-message.action.delete.cluster=Confirmer que vous voulez supprimer ce cluster.
-message.action.delete.disk.offering=Confirmer que vous souhaitez supprimer cette offre de disque.
-message.action.delete.domain=Confirmer que vous voulez supprimer ce domaine.
-message.action.delete.external.firewall=Confirmer que vous souhaitez supprimer ce pare-feu externe. Attention \: Si vous pr\u00E9voyez de rajouter le m\u00EAme pare-feu externe de nouveau, vous devez r\u00E9-initialiser les donn\u00E9es d\\'utilisation sur l\\'appareil.
-message.action.delete.external.load.balancer=Confirmez que vous souhaitez supprimer ce r\u00E9partiteur de charge externe. Attention \: Si vous pensez ajouter le m\u00EAme r\u00E9partiteur de charge plus tard, vous devez remettre \u00E0 z\u00E9ro les statistiques d\\'utilisation de cet \u00E9quipement.
-message.action.delete.ingress.rule=Confirmez que vous souhaitez supprimer cette r\u00E8gle d\\'entr\u00E9e.
-message.action.delete.network=Confirmer que vous voulez supprimer ce r\u00E9seau.
+message.action.delete.cluster=\u00CAtes-vous s\u00FBr que vous voulez supprimer ce cluster.
+message.action.delete.disk.offering=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette offre de disque.
+message.action.delete.domain=\u00CAtes-vous s\u00FBr que vous voulez supprimer ce domaine.
+message.action.delete.external.firewall=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce pare-feu externe. Attention \: Si vous pr\u00E9voyez de rajouter le m\u00EAme pare-feu externe de nouveau, vous devez r\u00E9-initialiser les donn\u00E9es d\\'utilisation sur l\\'appareil.
+message.action.delete.external.load.balancer=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce r\u00E9partiteur de charge externe. Attention \: Si vous pensez ajouter le m\u00EAme r\u00E9partiteur de charge plus tard, vous devez remettre \u00E0 z\u00E9ro les statistiques d\\'utilisation de cet \u00E9quipement.
+message.action.delete.ingress.rule=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette r\u00E8gle d\\'entr\u00E9e.
+message.action.delete.network=\u00CAtes-vous s\u00FBr que vous voulez supprimer ce r\u00E9seau.
 message.action.delete.nexusVswitch=Confirmer la suppession de ce Nexus 1000v
 message.action.delete.physical.network=Confirmer la suppression du r\u00E9seau physique
-message.action.delete.pod=Confirmez que vous souhaitez supprimer ce pod.
-message.action.delete.primary.storage=Confirmer que vous voulez supprimer ce stockage primaire.
-message.action.delete.secondary.storage=Confirmez que vous souhaitez supprimer ce stockage secondaire.
-message.action.delete.security.group=Confirmez que vous souhaitez supprimer ce groupe de s\u00E9curit\u00E9.
-message.action.delete.service.offering=Confirmez que vous souhaitez supprimer cette offre de service.
-message.action.delete.snapshot=Confirmez que vous souhaitez supprimer cet instantan\u00E9
-message.action.delete.system.service.offering=Confirmer la suppression de l\\'offre syst\u00E8me.
-message.action.delete.template=Confirmez que vous souhaitez supprimer ce mod\u00E8le.
-message.action.delete.template.for.all.zones=Ce mod\u00E8le est utilis\u00E9 par toutes les zones. Confirmez que vous souhaitez le supprimer de toutes les zones.
-message.action.delete.volume=Confirmez que vous souhaitez supprimer ce volume.
-message.action.delete.zone=Confirmez que vous souhaitez supprimer cette zone.
-message.action.destroy.instance=Confirmez que vous souhaitez supprimer cette instance.
-message.action.destroy.systemvm=Confirmez que vous souhaitez supprimer cette VM Syst\u00E8me.
-message.action.disable.cluster=Confirmez que vous souhaitez d\u00E9sactiver ce cluster
+message.action.delete.pod=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce pod.
+message.action.delete.primary.storage=\u00CAtes-vous s\u00FBr que vous voulez supprimer ce stockage principal.
+message.action.delete.secondary.storage=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce stockage secondaire.
+message.action.delete.security.group=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce groupe de s\u00E9curit\u00E9.
+message.action.delete.service.offering=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette offre de service.
+message.action.delete.snapshot=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cet instantan\u00E9
+message.action.delete.system.service.offering=\u00CAtes-vous s\u00FBr que vous voulez supprimer l\\'offre syst\u00E8me.
+message.action.delete.template=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce mod\u00E8le.
+message.action.delete.template.for.all.zones=Ce mod\u00E8le est utilis\u00E9 par toutes les zones. \u00CAtes-vous s\u00FBr que vous souhaitez le supprimer de toutes les zones.
+message.action.delete.volume=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce volume.
+message.action.delete.zone=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette zone.
+message.action.destroy.instance=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette instance.
+message.action.destroy.systemvm=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer cette VM Syst\u00E8me.
+message.action.disable.cluster=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9sactiver ce cluster
 message.action.disable.nexusVswitch=Confirmer la d\u00E9sactivation de ce Nexus 1000v
 message.action.disable.physical.network=Confirmer l\\'activation de ce r\u00E9seau physique.
-message.action.disable.pod=Confirmez que vous voulez d\u00E9sactiver ce Pod
-message.action.disable.static.NAT=Confirmez que vous souhaitez d\u00E9sactiver le NAT statique.
-message.action.disable.zone=Confirmez que vous voulez d\u00E9sactiver cette zone
+message.action.disable.pod=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9sactiver ce Pod
+message.action.disable.static.NAT=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9sactiver le NAT statique.
+message.action.disable.zone=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9sactiver cette zone
 message.action.download.iso=Confirmer le t\u00E9l\u00E9chargement de cet ISO
 message.action.download.template=Confirmer le t\u00E9l\u00E9chargement de ce mod\u00E8le
-message.action.enable.cluster=Confirmez que vous souhaitez activer ce cluster
+message.action.enable.cluster=\u00CAtes-vous s\u00FBr que vous souhaitez activer ce cluster
 message.action.enable.maintenance=Votre h\u00F4te a \u00E9t\u00E9 mis en mode maintenance avec succ\u00E8s. Ce processus peut durer plusieurs minutes ou plus, suivant le nombre de VMs actives sur cet h\u00F4te.
 message.action.enable.nexusVswitch=Confirmer l\\'activation de ce Nexus 1000v
 message.action.enable.physical.network=Confirmer l\\'activation de ce r\u00E9seau physique.
-message.action.enable.pod=Confirmez que vous souhaitez activer ce Pod
-message.action.enable.zone=Confirmez que vous voulez activer cette zone
+message.action.enable.pod=\u00CAtes-vous s\u00FBr que vous souhaitez activer ce Pod
+message.action.enable.zone=\u00CAtes-vous s\u00FBr que vous souhaitez activer cette zone
 message.action.force.reconnect=Votre h\u00F4te a \u00E9t\u00E9 forc\u00E9e \u00E0 se reconnecter avec succ\u00E8s. Ce processus peut prendre jusqu\\'\u00E0 plusieurs minutes.
 message.action.host.enable.maintenance.mode=Activer le mode maintenance va causer la migration \u00E0 chaud de l\\'ensemble des instances de cet h\u00F4te sur les autres h\u00F4tes disponibles.
 message.action.instance.reset.password=Confirmer le changement du mot de passe ROOT pour cette machine virtuelle.
-message.action.manage.cluster=Confirmez que vous voulez g\u00E9rer le cluster
-message.action.primarystorage.enable.maintenance.mode=Attention \: placer ce stockage primaire en mode maintenance va provoquer l\\'arr\u00EAt de l\\'ensemble des VMs utilisant des volumes sur ce stockage. Souhaitez-vous continuer ?
-message.action.reboot.instance=Confirmez que vous souhaitez red\u00E9marrer cette instance.
+message.action.manage.cluster=\u00CAtes-vous s\u00FBr que vous souhaitez g\u00E9rer le cluster
+message.action.primarystorage.enable.maintenance.mode=Attention \: placer ce stockage principal en mode maintenance va provoquer l\\'arr\u00EAt de l\\'ensemble des VMs utilisant des volumes sur ce stockage. Souhaitez-vous continuer ?
+message.action.reboot.instance=\u00CAtes-vous s\u00FBr que vous souhaitez red\u00E9marrer cette instance.
 message.action.reboot.router=Tous les services fournit par ce routeur virtuel vont \u00EAtre interrompus. Confirmer le r\u00E9-amor\u00E7age de ce routeur.
-message.action.reboot.systemvm=Confirmez que vous souhaitez red\u00E9marrer cette VM Syst\u00E8me
-message.action.release.ip=Confirmez que vous souhaitez lib\u00E9rer cette IP.
-message.action.remove.host=Confirmer la suppression de cet h\u00F4te.
+message.action.reboot.systemvm=\u00CAtes-vous s\u00FBr que vous souhaitez red\u00E9marrer cette VM Syst\u00E8me
+message.action.release.ip=\u00CAtes-vous s\u00FBr que vous souhaitez lib\u00E9rer cette IP.
+message.action.remove.host=\u00CAtes-vous s\u00FBr que vous voulez supprimer cet h\u00F4te.
 message.action.reset.password.off=Votre instance ne supporte pas pour le moment cette fonctionnalit\u00E9.
 message.action.reset.password.warning=Votre instance doit \u00EAtre arr\u00EAt\u00E9e avant d\\'essayer de changer son mot de passe.
-message.action.restore.instance=Confirmez que vous souhaitez restaurer cette instance.
-message.action.start.instance=Confirmez que vous souhaitez d\u00E9marrer cette instance.
-message.action.start.router=Confirmez que vous souhaitez d\u00E9marrer ce routeur.
-message.action.start.systemvm=Confirmez que vous souhaitez red\u00E9marrer cette VM syst\u00E8me.
-message.action.stop.instance=Confirmez que vous souhaitez arr\u00EAter cette instance.
+message.action.restore.instance=\u00CAtes-vous s\u00FBr que vous souhaitez restaurer cette instance.
+message.action.start.instance=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9marrer cette instance.
+message.action.start.router=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9marrer ce routeur.
+message.action.start.systemvm=\u00CAtes-vous s\u00FBr que vous souhaitez red\u00E9marrer cette VM syst\u00E8me.
+message.action.stop.instance=\u00CAtes-vous s\u00FBr que vous souhaitez arr\u00EAter cette instance.
 message.action.stop.router=Tous les services fournit par ce routeur virtuel vont \u00EAtre interrompus. Confirmer l\\'arr\u00EAt de ce routeur.
-message.action.stop.systemvm=Confirmez que vous souhaitez arr\u00EAter cette VM.
+message.action.stop.systemvm=\u00CAtes-vous s\u00FBr que vous souhaitez arr\u00EAter cette VM.
 message.action.take.snapshot=Confirmer la prise d\\'un instantan\u00E9 pour ce volume.
 message.action.unmanage.cluster=Confirmez que vous ne voulez plus g\u00E9rer le cluster
 message.activate.project=\u00CAtes-vous s\u00FBr de vouloir activer ce projet ?
@@ -1217,9 +1227,9 @@ message.add.load.balancer.under.ip=La r\u00E8gle de r\u00E9partition de charge \
 message.add.network=Ajouter un nouveau r\u00E9seau \u00E0 la zone\: <b><span id\="zone_name"></span></b>
 message.add.new.gateway.to.vpc=Renseigner les informations suivantes pour ajouter une nouvelle passerelle pour ce VPC
 message.add.pod=Ajouter un nouveau pod \u00E0 la zone <b><span id\="add_pod_zone_name"></span></b>
-message.add.pod.during.zone.creation=Chaque zone doit contenir un ou plusieurs pods, et le premier pod sera ajout\u00E9 maintenant. Une pod contient les h\u00F4tes et les serveurs de stockage primaire, qui seront ajout\u00E9s dans une \u00E9tape ult\u00E9rieure. Configurer une plage d\\'adresses IP r\u00E9serv\u00E9es pour le trafic de gestion interne de CloudStack. La plage d\\'IP r\u00E9serv\u00E9e doit \u00EAtre unique pour chaque zone dans le nuage.
-message.add.primary=Renseignez les param\u00E8tres suivants pour ajouter un stockage primaire
-message.add.primary.storage=Ajouter un nouveau stockage primaire \u00E0 la zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
+message.add.pod.during.zone.creation=Chaque zone doit contenir un ou plusieurs pods, et le premier pod sera ajout\u00E9 maintenant. Une pod contient les h\u00F4tes et les serveurs de stockage principal, qui seront ajout\u00E9s dans une \u00E9tape ult\u00E9rieure. Configurer une plage d\\'adresses IP r\u00E9serv\u00E9es pour le trafic de gestion interne de CloudStack. La plage d\\'IP r\u00E9serv\u00E9e doit \u00EAtre unique pour chaque zone dans le nuage.
+message.add.primary=Renseignez les param\u00E8tres suivants pour ajouter un stockage principal
+message.add.primary.storage=Ajouter un nouveau stockage principal \u00E0 la zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
 message.add.secondary.storage=Ajouter un nouveau stockage pour la zone <b><span id\="zone_name"></span></b>
 message.add.service.offering=Renseigner les informations suivantes pour ajouter une nouvelle offre de service de calcul.
 message.add.system.service.offering=Ajouter les informations suivantes pour cr\u00E9er une nouvelle offre syst\u00E8me.
@@ -1237,10 +1247,10 @@ message.after.enable.swift=Swift configur\u00E9. Remarque \: une fois que vous q
 message.alert.state.detected=\u00C9tat d\\'alerte d\u00E9tect\u00E9
 message.allow.vpn.access=Entrez un nom d\\'utilisateur et un mot de passe pour l\\'utilisateur que vous souhaitez autoriser \u00E0 utiliser l\\'acc\u00E8s VPN.
 message.apply.snapshot.policy=Vous avez mis \u00E0 jour votre politique d\\'instantan\u00E9s avec succ\u00E8s.
-message.attach.iso.confirm=Confirmez que vous souhaitez attacher l\\'image ISO \u00E0 cette instance.
+message.attach.iso.confirm=\u00CAtes-vous s\u00FBr que vous souhaitez attacher l\\'image ISO \u00E0 cette instance.
 message.attach.volume=Renseignez les donn\u00E9es suivantes pour attacher un nouveau volume. Si vous attachez un volume disque \u00E0 une machine virtuelle sous Windows, vous aurez besoin de red\u00E9marrer l\\'instance pour voir le nouveau disque.
 message.basic.mode.desc=Choisissez ce mod\u00E8le de r\u00E9seau si vous  <b>*<u>ne voulez pas</u>*</b> activer le support des VLANs. Toutes les instances cr\u00E9\u00E9es avec ce mod\u00E8le de r\u00E9seau se verront assigner une adresse IP et les groupes de s\u00E9curit\u00E9 seront utilis\u00E9s pour fournir l\\'isolation entre les VMs.
-message.change.offering.confirm=Confirmez que vous souhaitez changer l\\'offre de service de cette instance.
+message.change.offering.confirm=\u00CAtes-vous s\u00FBr que vous souhaitez changer l\\'offre de service de cette instance.
 message.change.password=Merci de modifier votre mot de passe.
 message.configure.all.traffic.types=Vous avez de multiples r\u00E9seaux physiques ; veuillez configurer les libell\u00E9s pour chaque type de trafic en cliquant sur le bouton Modifier.
 message.configuring.guest.traffic=Configuration du r\u00E9seau VM
@@ -1251,13 +1261,13 @@ message.confirm.action.force.reconnect=Confirmer la re-connexion forc\u00E9e de
 message.confirm.delete.F5=Confirmer la suppression du F5
 message.confirm.delete.NetScaler=Confirmer la suppression du Netscaler
 message.confirm.delete.SRX=Confirmer la suppression du SRX
-message.confirm.destroy.router=Confirmer la suppression de ce routeur
+message.confirm.destroy.router=\u00CAtes-vous s\u00FBr que vous voulez supprimer ce routeur
 message.confirm.disable.provider=Confirmer la d\u00E9sactivation de ce fournisseur
 message.confirm.enable.provider=Confirmer l\\'activation de ce fournisseur
-message.confirm.join.project=Confirmer que vous souhaitez rejoindre ce projet.
-message.confirm.remove.IP.range=Confirmer la suppression de cette plage d\\'adresses IP
+message.confirm.join.project=\u00CAtes-vous s\u00FBr que vous souhaitez rejoindre ce projet.
+message.confirm.remove.IP.range=\u00CAtes-vous s\u00FBr que vous voulez supprimer cette plage d\\'adresses IP
 message.confirm.shutdown.provider=Confirmer l\\'arr\u00EAt de ce fournisseur
-message.copy.iso.confirm=Confirmez que vous souhaitez copier votre image ISO vers
+message.copy.iso.confirm=\u00CAtes-vous s\u00FBr que vous souhaitez copier votre image ISO vers
 message.copy.template=Copier le mod\u00E8le <b id\="copy_template_name_text">XXX</b> de la zone <b id\="copy_template_source_zone_text"></b> vers
 message.create.template=Voulez vous cr\u00E9er un mod\u00E8le ?
 message.create.template.vm=Cr\u00E9er la VM depuis le mod\u00E8le <b id\="p_name"></b>
@@ -1266,31 +1276,31 @@ message.creating.cluster=Cr\u00E9ation du cluster
 message.creating.guest.network=Cr\u00E9ation du r\u00E9seau pour les invit\u00E9s
 message.creating.physical.networks=Cr\u00E9ation des r\u00E9seaux physiques
 message.creating.pod=Cr\u00E9ation d\\'un pod
-message.creating.primary.storage=Cr\u00E9ation du stockage primaire
+message.creating.primary.storage=Cr\u00E9ation du stockage principal
 message.creating.secondary.storage=Cr\u00E9ation du stockage secondaire
 message.creating.zone=Cr\u00E9ation de la zone
 message.decline.invitation=Voulez-vous refuser cette invitation au projet ?
-message.delete.VPN.connection=Confirmer la suppression de la connexion VPN
-message.delete.VPN.customer.gateway=Confirmer la suppression de cette passerelle VPN client
-message.delete.VPN.gateway=Confirmer la suppression de cette passerelle VPN
-message.delete.account=Confirmez que vous souhaitez supprimer ce compte.
-message.delete.gateway=Confirmer la suppression de cette passerelle
+message.delete.VPN.connection=\u00CAtes-vous s\u00FBr que vous voulez supprimer la connexion VPN
+message.delete.VPN.customer.gateway=\u00CAtes-vous s\u00FBr que vous voulez supprimer cette passerelle VPN client
+message.delete.VPN.gateway=\u00CAtes-vous s\u00FBr que vous voulez supprimer cette passerelle VPN
+message.delete.account=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer ce compte.
+message.delete.gateway=\u00CAtes-vous s\u00FBr que vous voulez supprimer cette passerelle
 message.delete.project=\u00CAtes-vous s\u00FBr de vouloir supprimer ce projet ?
-message.delete.user=Confirmer la suppression de cet utilisateur.
+message.delete.user=\u00CAtes-vous s\u00FBr que vous voulez supprimer cet utilisateur.
 message.desc.advanced.zone=Pour des topologies de r\u00E9seau plus sophistiqu\u00E9es. Ce mod\u00E8le de r\u00E9seau permet plus de flexibilit\u00E9 dans la d\u00E9finition des r\u00E9seaux d\\'invit\u00E9s et propose des offres personnalis\u00E9es telles que le support de pare-feu, VPN ou d\\'\u00E9quilibrage de charge.
 message.desc.basic.zone=Fournit un r\u00E9seau unique o\u00F9 chaque instance de machine virtuelle se voit attribuer une adresse IP directement depuis le r\u00E9seau. L\\'isolation des invit\u00E9s peut \u00EAtre assur\u00E9 au niveau de la couche r\u00E9seau-3 tels que les groupes de s\u00E9curit\u00E9 (filtrage d\\'adresse IP source).
-message.desc.cluster=Chaque pod doit contenir un ou plusieurs clusters, et le premier cluster sera ajout\u00E9 tout de suite. Un cluster est un regroupement pour h\u00F4tes. Les h\u00F4tes d\\'un cluster ont tous un mat\u00E9riel identique, ex\u00E9cutent le m\u00EAme hyperviseur, sont dans le m\u00EAme sous-r\u00E9seau, et acc\u00E8dent au m\u00EAme stockage partag\u00E9. Chaque cluster comprend une ou plusieurs h\u00F4tes et un ou plusieurs serveurs de stockage primaire.
+message.desc.cluster=Chaque pod doit contenir un ou plusieurs clusters, et le premier cluster sera ajout\u00E9 tout de suite. Un cluster est un regroupement pour h\u00F4tes. Les h\u00F4tes d\\'un cluster ont tous un mat\u00E9riel identique, ex\u00E9cutent le m\u00EAme hyperviseur, sont dans le m\u00EAme sous-r\u00E9seau, et acc\u00E8dent au m\u00EAme stockage partag\u00E9. Chaque cluster comprend une ou plusieurs h\u00F4tes et un ou plusieurs serveurs de stockage principal.
 message.desc.host=Chaque cluster doit contenir au moins un h\u00F4te (machine) pour ex\u00E9cuter des machines virtuelles invit\u00E9es, et le premier h\u00F4te sera ajout\u00E9 tout de suite. Pour un h\u00F4te fonctionnant dans CloudStack, vous devez installer un logiciel hyperviseur sur l\\'h\u00F4te, attribuer une adresse IP \u00E0 l\\'h\u00F4te, et s\\'assurer que l\\'h\u00F4te est connect\u00E9 au serveur d\\'administration CloudStack.<br/><br/>Indiquer le nom de l\\'h\u00F4te ou son adresse IP, l\\'identifiant de connexion (g\u00E9n\u00E9ralement root) et le mot de passe ainsi que toutes les \u00E9tiquettes permettant de classer les h\u00F4tes.
-message.desc.primary.storage=Chaque cluster doit contenir un ou plusieurs serveurs de stockage primaire, et le premier sera ajout\u00E9 tout de suite. Le stockage principal contient les volumes de disque pour les machines virtuelles s\\'ex\u00E9cutant sur les h\u00F4tes dans le cluster. Utiliser les protocoles standards pris en charge par l\\'hyperviseur sous-jacent.
+message.desc.primary.storage=Chaque cluster doit contenir un ou plusieurs serveurs de stockage principal, et le premier sera ajout\u00E9 tout de suite. Le stockage principal contient les volumes de disque pour les machines virtuelles s\\'ex\u00E9cutant sur les h\u00F4tes dans le cluster. Utiliser les protocoles standards pris en charge par l\\'hyperviseur sous-jacent.
 message.desc.secondary.storage=Chaque zone doit avoir au moins un serveur NFS ou un serveur de stockage secondaire, et sera ajout\u00E9 en premier tout de suite. Le stockage secondaire entrepose les mod\u00E8les de machines virtuelles, les images ISO et les images disques des volumes des machines virtuelles. Ce serveur doit \u00EAtre accessible pour toutes les machines h\u00F4tes dans la zone.<br/><br/>Saisir l\\'adresse IP et le chemin d\\'export.
-message.desc.zone=Une zone est la plus grande unit\u00E9 organisationnelle dans CloudStack, et correspond typiquement \u00E0 un centre de donn\u00E9es. Les zones fournissent un isolement physique et de la redondance. Une zone est constitu\u00E9e d\\'un ou plusieurs pods (dont chacun contient les h\u00F4tes et les serveurs de stockage primaire) et un serveur de stockage secondaire qui est partag\u00E9e par tous les pods dans la zone.
+message.desc.zone=Une zone est la plus grande unit\u00E9 organisationnelle dans CloudStack, et correspond typiquement \u00E0 un centre de donn\u00E9es. Les zones fournissent un isolement physique et de la redondance. Une zone est constitu\u00E9e d\\'un ou plusieurs pods (dont chacun contient les h\u00F4tes et les serveurs de stockage principal) et un serveur de stockage secondaire qui est partag\u00E9e par tous les pods dans la zone.
 message.detach.disk=Voulez-vous d\u00E9tacher ce disque ?
-message.detach.iso.confirm=Confirmez que vous souhaitez d\u00E9tacher l\\'image ISO de cette instance.
+message.detach.iso.confirm=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9tacher l\\'image ISO de cette instance.
 message.disable.account=Veuillez confirmer que vous voulez d\u00E9sactiver ce compte. En d\u00E9sactivant le compte, tous les utilisateurs pour ce compte n\\'auront plus acc\u00E8s \u00E0 leurs ressources sur le cloud. Toutes les machines virtuelles vont \u00EAtre arr\u00EAt\u00E9es imm\u00E9diatement.
 message.disable.snapshot.policy=Vous avez d\u00E9sactiv\u00E9 votre politique d\\'instantan\u00E9 avec succ\u00E8s.
 message.disable.user=Confirmer la d\u00E9sactivation de cet utilisateur.
 message.disable.vpn=\u00CAtes-vous s\u00FBr de vouloir d\u00E9sactiver le VPN ?
-message.disable.vpn.access=Confirmez que vous souhaitez d\u00E9sactiver l\\'acc\u00E8s VPN.
+message.disable.vpn.access=\u00CAtes-vous s\u00FBr que vous souhaitez d\u00E9sactiver l\\'acc\u00E8s VPN.
 message.download.ISO=Cliquer <a href\="\#">00000</a> pour t\u00E9l\u00E9charger une image ISO
 message.download.template=Cliquer sur <a href\="\#">00000</a> pour t\u00E9l\u00E9charger le mod\u00E8le
 message.download.volume=Cliquer sur <a href\="\#">00000</a> pour t\u00E9l\u00E9charger le volume
@@ -1299,7 +1309,7 @@ message.edit.account=Modifier ("-1" signifie pas de limite de ressources)
 message.edit.confirm=Confirmer les changements avant de cliquer sur "Enregistrer".
 message.edit.limits=Renseignez les limites pour les ressources suivantes. "-1" indique qu\\'il n\\'y a pas de limites pour la cr\u00E9ation de ressources.
 message.edit.traffic.type=Sp\u00E9cifier le libell\u00E9 de trafic associ\u00E9 avec ce type de trafic.
-message.enable.account=Confirmez que vous souhaitez activer ce compte.
+message.enable.account=\u00CAtes-vous s\u00FBr que vous souhaitez activer ce compte.
 message.enable.user=Confirmer l\\'activation de cet utilisateur.
 message.enable.vpn=Confirmer l\\'activation de l\\'acc\u00E8s VPN pour cette adresse IP.
 message.enable.vpn.access=Le VPN est d\u00E9sactiv\u00E9 pour cette adresse IP. Voulez vous activer l\\'acc\u00E8s VPN ?
@@ -1317,7 +1327,7 @@ message.installWizard.copy.whatIsAHost=Un h\u00F4te est une machine. Les h\u00F4
 message.installWizard.copy.whatIsAPod=Un pod repr\u00E9sente souvent un seul rack. Les h\u00F4tes dans le m\u00EAme pod sont dans le m\u00EAme sous-r\u00E9seau.<br/>Un pod est la deuxi\u00E8me plus grande unit\u00E9 organisationnelle au sein d\\'un d\u00E9ploiement CloudStack&\#8482;. Les pods sont contenus dans les zones. Chaque zone peut contenir un ou plusieurs pods ; dans l\\'Installation Basique, vous aurez juste un pod dans votre zone.
 message.installWizard.copy.whatIsAZone=Une zone est la plus grande unit\u00E9 organisationnelle au sein d\\'un d\u00E9ploiement CloudStack&\#8482;. Une zone correspond typiquement \u00E0 un centre de donn\u00E9es, mais il est permis d\\'avoir plusieurs zones dans un centre de donn\u00E9es. L\\'avantage d\\'organiser une infrastructure en zones est de fournir une isolation physique et de la redondance. Par exemple, chaque zone peut avoir sa propre alimentation et de liaison avec le r\u00E9seau, et les zones peuvent \u00EAtre tr\u00E8s \u00E9loign\u00E9es g\u00E9ographiquement (m\u00EAme si ce n\\'est pas une obligation).
 message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482; est une plate-forme logicielle de pools de ressources informatiques pour construire des infrastructures publiques, priv\u00E9es et hybrides en tant que services (IaaS) dans les nuages. CloudStack&\#8482; g\u00E8re le r\u00E9seau, le stockage et les noeuds de calcul qui composent une infrastructure dans les nuages. Utilisez CloudStack&\#8482; pour d\u00E9ployer, g\u00E9rer et configurer les environnements d\\'informatiques dans les nuages.<br/><br/>S\\'\u00E9tendant au-del\u00E0 des machines virtuelles individuelles fonctionnant sur du mat\u00E9riel standard, CloudStack&\#8482; offre une solution d\\'informatique en nuage cl\u00E9 en main pour fournir des centres de donn\u00E9es virtuels comme service - fournissant tous les composants essentiels pour construire, d\u00E9ployer et g\u00E9rer des applications \\'cloud\\' multi-niveaux et multi-locataire. Les versions libre et Premium sont disponibles, la version Libre offran
 t des caract\u00E9ristiques presque identiques.
-message.installWizard.copy.whatIsPrimaryStorage=Une infrastructure CloudStack&\#8482; utilise deux types de stockage \: stockage primaire et stockage secondaire. Les deux peuvent \u00EAtre des serveurs iSCSI ou NFS, ou sur disque local.<br/><br/><strong>Le stockage primaire</strong> est associ\u00E9 \u00E0 un cluster, et stocke les volumes disques de chaque machine virtuelle pour toutes les VMs s\\'ex\u00E9cutant sur les h\u00F4tes dans le cluster. Le serveur de stockage primaire est typiquement proche des h\u00F4tes.
+message.installWizard.copy.whatIsPrimaryStorage=Une infrastructure CloudStack&\#8482; utilise deux types de stockage \: stockage principal et stockage secondaire. Les deux peuvent \u00EAtre des serveurs iSCSI ou NFS, ou sur disque local.<br/><br/><strong>Le stockage principal</strong> est associ\u00E9 \u00E0 un cluster, et stocke les volumes disques de chaque machine virtuelle pour toutes les VMs s\\'ex\u00E9cutant sur les h\u00F4tes dans le cluster. Le serveur de stockage principal est typiquement proche des h\u00F4tes.
 message.installWizard.copy.whatIsSecondaryStorage=Le stockage secondaire est associ\u00E9 \u00E0 une zone, et il stocke les \u00E9l\u00E9ments suivants\:<ul><li>Mod\u00E8les - images de syst\u00E8mes d\\'exploitation qui peuvent \u00EAtre utilis\u00E9es pour d\u00E9marrer les machines virtuelles et peuvent inclure des informations de configuration suppl\u00E9mentaires, telles que les applications pr\u00E9-install\u00E9es</li><li>Images ISO - images de syst\u00E8me d\\'exploitation ou d\\'installation d\\'OS qui peuvent \u00EAtre amor\u00E7able ou non-amor\u00E7able</li><li>Images de volume disque - capture des donn\u00E9es de machines virtuelles qui peuvent \u00EAtre utilis\u00E9es pour la r\u00E9cup\u00E9ration des donn\u00E9es ou cr\u00E9er des mod\u00E8les</ul>
 message.installWizard.now.building=Construction de votre Cloud en cours
 message.installWizard.tooltip.addCluster.name=Un nom pour le cluster. Ce choix est libre et n\\'est pas utilis\u00E9 par CloudStack.
@@ -1330,7 +1340,7 @@ message.installWizard.tooltip.addPod.reservedSystemGateway=Passerelle pour les s
 message.installWizard.tooltip.addPod.reservedSystemNetmask=Le masque r\u00E9seau que les instances utiliseront sur le r\u00E9seau
 message.installWizard.tooltip.addPod.reservedSystemStartIp=Ceci est la plage d\\'adresses IP dans le r\u00E9seau priv\u00E9 que CloudStack utilise la gestion des VMs du stockage secondaire et les VMs Console Proxy. Ces adresses IP sont prises dans le m\u00EAme sous-r\u00E9seau que les serveurs h\u00F4tes.
 message.installWizard.tooltip.addPrimaryStorage.name=Nom pour ce stockage
-message.installWizard.tooltip.addPrimaryStorage.path=(pour NFS) Dans NFS, ceci est le chemin d\\'export depuis le serveur. (pour SharedMountPoint) Le chemin. Avec KVM, c\\'est le chemin sur chaque h\u00F4te o\u00F9 ce stockage primaire est mont\u00E9. Par exemple, "/mnt/primary".
+message.installWizard.tooltip.addPrimaryStorage.path=(pour NFS) Dans NFS, ceci est le chemin d\\'export depuis le serveur. (pour SharedMountPoint) Le chemin. Avec KVM, c\\'est le chemin sur chaque h\u00F4te o\u00F9 ce stockage principal est mont\u00E9. Par exemple, "/mnt/primary".
 message.installWizard.tooltip.addPrimaryStorage.server=(pour NFS, iSCSI ou PreSetup) Adresse IP ou nom DNS du stockage
 message.installWizard.tooltip.addSecondaryStorage.nfsServer=Adresse IP du serveur NFS supportant le stockage secondaire
 message.installWizard.tooltip.addSecondaryStorage.path=Le chemin export\u00E9, situ\u00E9 sur le serveur sp\u00E9cifi\u00E9 pr\u00E9c\u00E9demment
@@ -1351,13 +1361,13 @@ message.iso.desc=Image disque contenant des donn\u00E9es ou un support amor\u00E
 message.join.project=Vous avez rejoint un projet. S\u00E9lectionnez la vue Projet pour le voir.
 message.launch.vm.on.private.network=Souhaitez vous d\u00E9marrer cette instance sur votre propre r\u00E9seau priv\u00E9 ?
 message.launch.zone=La zone est pr\u00EAte \u00E0 d\u00E9marrer ; passer \u00E0 l\\'\u00E9tape suivante.
-message.lock.account=Confirmez que vous souhaitez verrouiller ce compte. En le verrouillant, les utilisateurs de ce compte ne seront plus capables de g\u00E9rer leurs ressources. Les ressources existantes resteront toutefois accessibles.
+message.lock.account=\u00CAtes-vous s\u00FBr que vous souhaitez verrouiller ce compte. En le verrouillant, les utilisateurs de ce compte ne seront plus capables de g\u00E9rer leurs ressources. Les ressources existantes resteront toutefois accessibles.
 message.migrate.instance.confirm=Confirmez l\\'h\u00F4te vers lequel vous souhaitez migrer cette instance
 message.migrate.instance.to.host=Confirmer la migration de l\\'instance vers un autre h\u00F4te
-message.migrate.instance.to.ps=Confirmer la migration de l\\'instance vers un autre stockage primaire
+message.migrate.instance.to.ps=Confirmer la migration de l\\'instance vers un autre stockage principal
 message.migrate.router.confirm=Confirmer la migration du routeur vers \:
 message.migrate.systemvm.confirm=Confirmer la migration de la VM syst\u00E8me vers \:
-message.migrate.volume=Confirmer la migration du volume vers un autre stockage primaire.
+message.migrate.volume=Confirmer la migration du volume vers un autre stockage principal.
 message.new.user=Renseigner les informations suivantes pour ajouter un nouveau compte utilisateur
 message.no.network.support=S\u00E9lectionnez l\\'hyperviseur. vSphere, n\\'a pas de fonctionnalit\u00E9s suppl\u00E9mentaires pour le r\u00E9seau. Continuez \u00E0 l\\'\u00E9tape 5.
 message.no.network.support.configuration.not.true=Il n\\'y a pas de zone avec la fonction groupe de s\u00E9curit\u00E9 active. D\u00E8s lors, pas de fonction r\u00E9seau suppl\u00E9mentaires disponibles. Continuer \u00E0 l\\'\u00E9tape 5.
@@ -1366,7 +1376,7 @@ message.no.projects.adminOnly=Vous n\\'avez pas de projet.<br/>Contacter votre a
 message.number.clusters=<h2><span> \# de </span> Clusters</h2>
 message.number.hosts=<h2><span> \# d\\' </span> H\u00F4tes</h2>
 message.number.pods=<h2><span> \# de </span> Pods</h2>
-message.number.storage=<h2><span> \# de </span> Volumes de Stockage Primaire</h2>
+message.number.storage=<h2><span> \# de </span> Volumes de Stockage Principal</h2>
 message.number.zones=<h2><span> \# de </span> Zones</h2>
 message.pending.projects.1=Vous avez des invitations projet en attente \:
 message.pending.projects.2=Pour les visualiser, aller dans la section projets, puis s\u00E9lectionner invitation dans la liste d\u00E9roulante.
@@ -1380,7 +1390,7 @@ message.project.invite.sent=Invitation envoy\u00E9e ; les utilisateurs seront aj
 message.public.traffic.in.advanced.zone=Le trafic public est g\u00E9n\u00E9r\u00E9 lorsque les machines virtuelles dans le nuage acc\u00E8dent \u00E0 Internet. Des adresses IP publiquement accessibles doivent \u00EAtre pr\u00E9vues \u00E0 cet effet. Les utilisateurs peuvent utiliser l\\'interface d\\'administration de CloudStack pour acqu\u00E9rir ces adresses IP qui impl\u00E9menteront une translation d\\'adresse NAT entre le r\u00E9seau d\\'invit\u00E9 et le r\u00E9seau public.<br/><br/>Fournir au moins une plage d\\'adresses IP pour le trafic Internet.
 message.public.traffic.in.basic.zone=Le trafic public est g\u00E9n\u00E9r\u00E9 lorsque les machines virtuelles dans le nuage acc\u00E8dent \u00E0 Internet ou fournissent des services \u00E0 des utilisateurs sur Internet. Des adresses IP publiquement accessibles doivent \u00EAtre pr\u00E9vus \u00E0 cet effet. Quand une instance est cr\u00E9\u00E9e, une adresse IP publique depuis un ensemble d\\'adresses IP publiques sera allou\u00E9e \u00E0 l\\'instance, en plus de l\\'adresse IP de l\\'invit\u00E9. La translation d\\'adresses statique NAT 1-1 sera mises en place automatiquement entre l\\'adresse IP publique et l\\'adresse IP de l\\'invit\u00E9. Les utilisateurs peuvent \u00E9galement utiliser l\\'interface d\\'administration CloudStack pour acqu\u00E9rir des adresses IP suppl\u00E9mentaires pour ajouter une translation d\\'adresse statique NAT entre leurs instances et le r\u00E9seau d\\'adresses IP publiques.
 message.remove.vpc=Confirmer la suppression du VPC
-message.remove.vpn.access=Confirmez que vous souhaitez supprimer l\\'acc\u00E8s VPN \u00E0 l\\'utilisateur suivant.
+message.remove.vpn.access=\u00CAtes-vous s\u00FBr que vous souhaitez supprimer l\\'acc\u00E8s VPN \u00E0 l\\'utilisateur suivant.
 message.reset.VPN.connection=Confirmer le r\u00E9-initialisation de la connexion VPN
 message.reset.password.warning.notPasswordEnabled=Le mod\u00E8le de cette instance a \u00E9t\u00E9 cr\u00E9\u00E9 sans la gestion de mot de passe
 message.reset.password.warning.notStopped=Votre instance doit \u00EAtre arr\u00EAt\u00E9e avant de changer son mot de passe
@@ -1425,14 +1435,14 @@ message.validate.instance.name=Le nom de l\\'instance ne peut d\u00E9passer 63 c
 message.virtual.network.desc=Un r\u00E9seau virtuel d\u00E9di\u00E9 pour votre compte. Ce domaine de multi-diffusion est contenu dans un VLAN et l\\'ensemble des r\u00E9seaux d\\'acc\u00E8s publique sont rout\u00E9s par un routeur virtuel.
 message.vm.create.template.confirm=Cr\u00E9er un mod\u00E8le va red\u00E9marrer la VM automatiquement
 message.vm.review.launch=Merci de v\u00E9rifier les informations suivantes et de confirmer que votre instance virtuelle est correcte avant de la d\u00E9marrer.
-message.volume.create.template.confirm=Confirmez que vous souhaitez cr\u00E9er un mod\u00E8le pour ce disque. La cr\u00E9ation peut prendre plusieurs minutes, voire plus, selon la taille du volume.
+message.volume.create.template.confirm=\u00CAtes-vous s\u00FBr que vous souhaitez cr\u00E9er un mod\u00E8le pour ce disque. La cr\u00E9ation peut prendre plusieurs minutes, voire plus, selon la taille du volume.
 message.you.must.have.at.least.one.physical.network=Vous devez avoir au moins un r\u00E9seau physique
 message.zone.creation.complete.would.you.like.to.enable.this.zone=Cr\u00E9ation de la zone termin\u00E9e. Voulez-vous l\\'activer ?
 message.zone.no.network.selection=La zone s\u00E9lectionn\u00E9e ne propose pas le r\u00E9seau choisi
 message.zone.step.1.desc=S\u00E9lectionnez un mod\u00E8le de r\u00E9seau pour votre zone.
 message.zone.step.2.desc=Renseigner les informations suivantes pour ajouter une nouvelle zone
 message.zone.step.3.desc=Renseigner les informations suivantes pour ajouter un nouveau pod
-message.zoneWizard.enable.local.storage=ATTENTION \: si vous activez le stockage local pour cette zone, vous devez effectuer les op\u00E9rations suivantes, selon l\\'endroit o\u00F9 vous souhaitez lancer vos machines virtuelles Syst\u00E8mes \:<br/><br/>1. Si les machines virtuelles Syst\u00E8mes doivent \u00EAtre lanc\u00E9es depuis le stockage primaire, ce dernier doit \u00EAtre ajout\u00E9 \u00E0 la zone apr\u00E8s la cr\u00E9ation. Vous devez \u00E9galement d\u00E9marrer la zone dans un \u00E9tat d\u00E9sactiv\u00E9.<br/><br/>2. Si les machines virtuelles Syst\u00E8mes doivent \u00EAtre lanc\u00E9es depuis le stockage local, le param\u00E8tre system.vm.use.local.storage doit \u00EAtre d\u00E9fini \u00E0 \\'true\\' avant d\\'activer la zone.<br/><br/><br/>Voulez-vous continuer ?
+message.zoneWizard.enable.local.storage=ATTENTION \: si vous activez le stockage local pour cette zone, vous devez effectuer les op\u00E9rations suivantes, selon l\\'endroit o\u00F9 vous souhaitez lancer vos machines virtuelles Syst\u00E8mes \:<br/><br/>1. Si les machines virtuelles Syst\u00E8mes doivent \u00EAtre lanc\u00E9es depuis le stockage principal, ce dernier doit \u00EAtre ajout\u00E9 \u00E0 la zone apr\u00E8s la cr\u00E9ation. Vous devez \u00E9galement d\u00E9marrer la zone dans un \u00E9tat d\u00E9sactiv\u00E9.<br/><br/>2. Si les machines virtuelles Syst\u00E8mes doivent \u00EAtre lanc\u00E9es depuis le stockage local, le param\u00E8tre system.vm.use.local.storage doit \u00EAtre d\u00E9fini \u00E0 \\'true\\' avant d\\'activer la zone.<br/><br/><br/>Voulez-vous continuer ?
 mode=Mode
 network.rate=D\u00E9bit R\u00E9seau
 notification.reboot.instance=Red\u00E9marrer l\\'instance


[47/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120 - mixed zone management - extend listIsos API to return zone type.


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

Branch: refs/heads/internallb
Commit: 6230e5b77bf701494e3b416a5b7cd04adacfcd24
Parents: f7f1279
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 13:46:36 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 13:46:36 2013 -0700

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiResponseHelper.java |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6230e5b7/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 0b996c9..f4567c0 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -1738,6 +1738,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         if (datacenter != null) {
             isoResponse.setZoneId(datacenter.getUuid());
             isoResponse.setZoneName(datacenter.getName());
+            isoResponse.setZoneType(datacenter.getNetworkType().toString());
         }
 
         // If the user is an admin, add the template download status


[11/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Xenserver storage motion UI changes for systemVMs


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

Branch: refs/heads/internallb
Commit: 130492d089a0c3158445cb4db96689a93088d332
Parents: 2f67dae
Author: Pranav Saxena <pr...@citrix.com>
Authored: Mon Apr 22 13:37:09 2013 +0530
Committer: Pranav Saxena <pr...@citrix.com>
Committed: Mon Apr 22 13:37:09 2013 +0530

----------------------------------------------------------------------
 ui/scripts/system.js |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/130492d0/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 73bf3fd..a92506b 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -5267,14 +5267,16 @@
                                   validation: { required: true },
                                   select: function(args) {
                                     $.ajax({
-                                      url: createURL("listHosts&VirtualMachineId=" + args.context.systemVMs[0].id),
+                                      url: createURL("findHostsForMigration&VirtualMachineId=" + args.context.systemVMs[0].id),
                                       dataType: "json",
                                       async: true,
                                       success: function(json) {
                                         var hostObjs = json.listhostsresponse.host;
                                         var items = [];
                                         $(hostObjs).each(function() {
+                                          if(this.requiresStorageMotion == false){
                                           items.push({id: this.id, description: (this.name + " (" + (this.suitableformigration? "Suitable": "Not Suitable") + ")")});
+                                           }
                                         });
                                         args.response.success({data: items});
                                       }
@@ -6464,14 +6466,16 @@
                       validation: { required: true },
                       select: function(args) {
                         $.ajax({
-                          url: createURL("listHosts&VirtualMachineId=" + args.context.systemVMs[0].id),
+                          url: createURL("findHostsForMigration&VirtualMachineId=" + args.context.systemVMs[0].id),
                           dataType: "json",
                           async: true,
                           success: function(json) {
                             var hostObjs = json.listhostsresponse.host;
                             var items = [];
                             $(hostObjs).each(function() {
+                              if(this.requiresStorageMotion == false){
                               items.push({id: this.id, description: (this.name + " (" + (this.suitableformigration? "Suitable": "Not Suitable") + ")")});
+                              }
                             });
                             args.response.success({data: items});
                           }


[44/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - extend listVolumes API to return zone type.


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

Branch: refs/heads/internallb
Commit: 35e2072660d20b538bf6929d9c68eecb16ac8318
Parents: ba4b8f1
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 11:23:49 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 13:01:55 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/api/response/VolumeResponse.java    |    8 +
 .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java |    3 +-
 .../src/com/cloud/api/query/vo/VolumeJoinVO.java   |   15 ++
 setup/db/db/schema-410to420.sql                    |  102 +++++++++++++++
 4 files changed, 127 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/35e20726/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/VolumeResponse.java b/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
index d5054f0..b928fcd 100644
--- a/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/VolumeResponse.java
@@ -47,6 +47,10 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
     @SerializedName(ApiConstants.ZONE_NAME)
     @Param(description = "name of the availability zone")
     private String zoneName;
+    
+    @SerializedName(ApiConstants.ZONE_TYPE)
+    @Param(description = "network type of the availability zone")
+    private String zoneType;
 
     @SerializedName(ApiConstants.TYPE)
     @Param(description = "type of the disk volume (ROOT or DATADISK)")
@@ -198,6 +202,10 @@ public class VolumeResponse extends BaseResponse implements ControlledViewEntity
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setVolumeType(String volumeType) {
         this.volumeType = volumeType;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/35e20726/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
index 495c0eb..a7a0bf0 100644
--- a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java
@@ -86,7 +86,8 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
 
         volResponse.setZoneId(volume.getDataCenterUuid());
         volResponse.setZoneName(volume.getDataCenterName());
-
+        volResponse.setZoneType(volume.getDataCenterType());
+        
         volResponse.setVolumeType(volume.getVolumeType().toString());
         volResponse.setDeviceId(volume.getDeviceId());
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/35e20726/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
index 4f6b35b..8a4bfe5 100644
--- a/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/VolumeJoinVO.java
@@ -117,6 +117,9 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
 
     @Column(name="data_center_name")
     private String dataCenterName;
+    
+    @Column(name="data_center_type")
+    private String dataCenterType;
 
     @Column(name="vm_id")
     private long vmId;
@@ -1004,8 +1007,20 @@ public class VolumeJoinVO extends BaseViewVO implements ControlledViewEntity {
         this.dataCenterName = dataCenterName;
     }
 
+       
+        
+    public String getDataCenterType() {
+        return dataCenterType;
+    }
+
 
 
+    public void setDataCenterType(String dataCenterType) {
+        this.dataCenterType = dataCenterType;
+    }
+    
+    
+
     public long getPodId() {
         return podId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/35e20726/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index 10cdbba..ac52f53 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -544,6 +544,108 @@ CREATE VIEW `cloud`.`affinity_group_view` AS
             left join
         `cloud`.`user_vm` ON user_vm.id = vm_instance.id;
 
+DROP VIEW IF EXISTS `cloud`.`volume_view`;
+CREATE VIEW `cloud`.`volume_view` AS
+    select 
+        volumes.id,
+        volumes.uuid,
+        volumes.name,
+        volumes.device_id,
+        volumes.volume_type,
+        volumes.size,
+        volumes.created,
+        volumes.state,
+        volumes.attached,
+        volumes.removed,
+        volumes.pod_id,
+        account.id account_id,
+        account.uuid account_uuid,
+        account.account_name account_name,
+        account.type account_type,
+        domain.id domain_id,
+        domain.uuid domain_uuid,
+        domain.name domain_name,
+        domain.path domain_path,
+        projects.id project_id,
+        projects.uuid project_uuid,
+        projects.name project_name,
+        data_center.id data_center_id,
+        data_center.uuid data_center_uuid,
+        data_center.name data_center_name,
+        data_center.networktype data_center_type,
+        vm_instance.id vm_id,
+        vm_instance.uuid vm_uuid,
+        vm_instance.name vm_name,
+        vm_instance.state vm_state,
+        vm_instance.vm_type,
+        user_vm.display_name vm_display_name,
+        volume_host_ref.size volume_host_size,
+        volume_host_ref.created volume_host_created,
+        volume_host_ref.format,
+        volume_host_ref.download_pct,
+        volume_host_ref.download_state,
+        volume_host_ref.error_str,
+        disk_offering.id disk_offering_id,
+        disk_offering.uuid disk_offering_uuid,
+        disk_offering.name disk_offering_name,
+        disk_offering.display_text disk_offering_display_text,
+        disk_offering.use_local_storage,
+        disk_offering.system_use,
+        storage_pool.id pool_id,
+        storage_pool.uuid pool_uuid,
+        storage_pool.name pool_name,
+        cluster.hypervisor_type,
+        vm_template.id template_id,
+        vm_template.uuid template_uuid,
+        vm_template.extractable,
+        vm_template.type template_type,
+        resource_tags.id tag_id,
+        resource_tags.uuid tag_uuid,
+        resource_tags.key tag_key,
+        resource_tags.value tag_value,
+        resource_tags.domain_id tag_domain_id,
+        resource_tags.account_id tag_account_id,
+        resource_tags.resource_id tag_resource_id,
+        resource_tags.resource_uuid tag_resource_uuid,
+        resource_tags.resource_type tag_resource_type,
+        resource_tags.customer tag_customer,
+        async_job.id job_id,
+        async_job.uuid job_uuid,
+        async_job.job_status job_status,
+        async_job.account_id job_account_id
+    from
+        `cloud`.`volumes`
+            inner join
+        `cloud`.`account` ON volumes.account_id = account.id
+            inner join
+        `cloud`.`domain` ON volumes.domain_id = domain.id
+            left join
+        `cloud`.`projects` ON projects.project_account_id = account.id
+            left join
+        `cloud`.`data_center` ON volumes.data_center_id = data_center.id
+            left join
+        `cloud`.`vm_instance` ON volumes.instance_id = vm_instance.id
+            left join
+        `cloud`.`user_vm` ON user_vm.id = vm_instance.id
+            left join
+        `cloud`.`volume_host_ref` ON volumes.id = volume_host_ref.volume_id
+            and volumes.data_center_id = volume_host_ref.zone_id
+            left join
+        `cloud`.`disk_offering` ON volumes.disk_offering_id = disk_offering.id
+            left join
+        `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
+            left join
+        `cloud`.`cluster` ON storage_pool.cluster_id = cluster.id
+            left join
+        `cloud`.`vm_template` ON volumes.template_id = vm_template.id
+            left join
+        `cloud`.`resource_tags` ON resource_tags.resource_id = volumes.id
+            and resource_tags.resource_type = 'Volume'
+            left join
+        `cloud`.`async_job` ON async_job.instance_id = volumes.id
+            and async_job.instance_type = 'Volume'
+            and async_job.job_status = 0;                       
+        
 CREATE TABLE `cloud`.`external_cisco_vnmc_devices` (
   `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
   `uuid` varchar(255) UNIQUE,


[20/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1563


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

Branch: refs/heads/internallb
Commit: 6bd18d99813823bd6f2e036947f1dfb7ebbed815
Parents: 5118e9e
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 17:54:16 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 17:55:45 2013 +0530

----------------------------------------------------------------------
 docs/en-US/limit-accounts-domains.xml |   98 ++++++++++++----------------
 1 files changed, 41 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6bd18d99/docs/en-US/limit-accounts-domains.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/limit-accounts-domains.xml b/docs/en-US/limit-accounts-domains.xml
index da45dab..a864ee2 100644
--- a/docs/en-US/limit-accounts-domains.xml
+++ b/docs/en-US/limit-accounts-domains.xml
@@ -21,15 +21,12 @@
 -->
 <section id="limit-accounts-domains">
   <title>Limiting Resource Usage</title>
-  <para>In addition to VMs, volumes, and snapshots, &PRODUCT; allows you limit resource types, such
-    as CPU, RAM, Primary storage, Secondary storage, and Network Rate.</para>
-  <para>Previously in &PRODUCT;, resource usage limit was imposed based on the resource count, that
-    is, restrict a user or domain on the basis of the number of VMs, volumes, or snapshots used. A
-    new set of resource types has been added to the existing pool of resources (VMs, Volumes, and
-    Snapshots) to support the customization model&mdash;need-basis usage, such as large VM or small
-    VM. The new resource types are now broadly classified as CPU, RAM, Primary storage, Secondary
-    storage, and Network Rate. &PRODUCT; now allows the root administrator to impose resource usage
-    limit by the following resource types for Domain, Project and Accounts. </para>
+  <para>&PRODUCT; allows you to control resource usage based on the types of resources, such as CPU,
+    RAM, Primary storage, and Secondary storage.  A new set of resource types has been added to the
+    existing pool of resources to support the new customization model&mdash;need-basis usage, such
+    as large VM or small VM. The new resource types are now broadly classified as CPU, RAM, Primary
+    storage, and Secondary storage. The root administrator is able to impose resource usage limit by
+    the following resource types for Domain, Project, and Accounts. </para>
   <itemizedlist>
     <listitem>
       <para>CPUs</para>
@@ -43,9 +40,6 @@
     <listitem>
       <para>Secondary Storage (Snapshots, Templates, ISOs)</para>
     </listitem>
-    <listitem>
-      <para>Network Rate (Mbps)</para>
-    </listitem>
   </itemizedlist>
   <para>To control the behaviour of this feature, the following configuration parameters have been
     added:</para>
@@ -71,18 +65,13 @@
         <row>
           <entry><para>max.account.primary.storage (GB)</para></entry>
           <entry><para>Maximum primary storage space that can be used for an account. </para>
-            <para>Default is 20*10.</para>
+            <para>Default is 200.</para>
           </entry>
         </row>
         <row>
           <entry><para>max.account.secondary.storage (GB)</para></entry>
           <entry><para>Maximum secondary storage space that can be used for an account. </para>
-            <para>Default is 20*20.</para></entry>
-        </row>
-        <row>
-          <entry><para>max.account.network.rate (Mbps)</para></entry>
-          <entry><para>Maximum network rate that can be used for an account. </para>
-            <para>Default is 200.</para></entry>
+            <para>Default is 400.</para></entry>
         </row>
         <row>
           <entry><para>max.project.cpus</para></entry>
@@ -102,21 +91,14 @@
           <entry><para>max.project.primary.storage (GB)</para></entry>
           <entry>
             <para>Maximum primary storage space that can be used for an account. </para>
-            <para>Default is 20*10.</para>
+            <para>Default is 200.</para>
           </entry>
         </row>
         <row>
           <entry><para>max.project.secondary.storage (GB)</para></entry>
           <entry>
             <para>Maximum secondary storage space that can be used for an account. </para>
-            <para>Default is 20*20.</para>
-          </entry>
-        </row>
-        <row>
-          <entry><para>max.project.network.rate (Mbps)</para></entry>
-          <entry>
-            <para>Maximum network rate that can be used for an account. </para>
-            <para>Default is 200.</para>
+            <para>Default is 400.</para>
           </entry>
         </row>
       </tbody>
@@ -136,24 +118,24 @@
           for the sub-domains and accounts under their own domain or the sub-domains. </para>
       </listitem>
       <listitem>
-        <para>Normal users would have privilege to list resource limits. Use the listResourceLimits
+        <para>The end users will the privilege to list resource limits. Use the listResourceLimits
           API.</para>
       </listitem>
     </itemizedlist>
   </section>
   <section id="consideration-rn">
-    <title>Use Cases and Considerations</title>
+    <title>Limit Usage Considerations</title>
     <itemizedlist>
       <listitem>
-        <para>When you refer to Primary or Seconday storage space, it implies that the stated size
-          of the volume and not the physical size&mdash; the actual consumed size on disk in case of
-          thin provisioning.</para>
+        <para>Primary or Secondary storage space refers to the stated size of the volume and not the
+          physical size&mdash; the actual consumed size on disk in case of thin provisioning.</para>
       </listitem>
       <listitem>
-        <para>If admin reduces the resource limit for an account and set it to less than the
-          resources currently consumed by that account, the existing VMs/templates/volumes are
-          destroyed. Using those resources, limits are imposed if the user under that account tries
-          to execute a new operation. For example, the existing behavior in the case of a VM are: </para>
+        <para>If the admin reduces the resource limit for an account and set it to less than the
+          resources that are currently being consumed, the existing VMs/templates/volumes are not
+          destroyed. Limits are imposed only if the user under that account tries to execute a new
+          operation using any of these resources. For example, the existing behavior in the case of
+          a VM are: </para>
         <itemizedlist>
           <listitem>
             <para>migrateVirtualMachine: The users under that account will be able to migrate the
@@ -165,19 +147,19 @@
         </itemizedlist>
       </listitem>
       <listitem>
-        <para>For any resource type, if a domain has limit X, sub-domain or accounts under that
-          domain can have there own limits, but at any point of time the sum of resource allocated
-          to sub-domain or accounts under the domain should never exceed the value X.</para>
-        <para>For example, if a domain has the CPU limit of 40 and sub-domain D1 and account A1 can
-          have limits of 30 each, but at any point of time the resource allocated to D1 and A1
-          should not exceed the limit 40.</para>
+        <para>For any resource type, if a domain has limit X, sub-domains or accounts under that
+          domain can have there own limits. However, the sum of resource allocated to a sub-domain
+          or accounts under the domain at any point of time should not exceed the value X.</para>
+        <para>For example, if a domain has the CPU limit of 40 and the sub-domain D1 and account A1
+          can have limits of 30 each, but at any point of time the resource allocated to D1 and A1
+          should not exceed the limit of 40.</para>
       </listitem>
       <listitem>
         <para>If any operation needs to pass through two of more resource limit check, then the
-          lower of 2 limits will be enforced, For e.g. if an account has VM limit of 10 and CPU
-          limit of 20 and user under that account requests 5 VMs of 4 CPUs each, after this user can
-          deploy 5 more VMs(because VM limit is 10) but user has exhausted his CPU limit and cannot
-          deploy any more instance.</para>
+          lower of 2 limits will be enforced, For example: if an account has the VM limit of 10 and
+          CPU limit of 20, and a user under that account requests 5 VMs of 4 CPUs each.  The user
+          can deploy 5 more VMs because VM limit is 10. However, the user cannot deploy any more
+          instances because the CPU limit has been exhausted.</para>
       </listitem>
     </itemizedlist>
   </section>
@@ -186,9 +168,9 @@
     <para>&PRODUCT; allows the configuration of limits on a domain basis. With a domain limit in
       place, all users still have their account limits. They are additionally limited, as a group,
       to not exceed the resource limits set on their domain. Domain limits aggregate the usage of
-      all accounts in the domain as well as all accounts in all sub-domains of that domain. Limits
-      set at the root domain level apply to the sum of resource usage by the accounts in all domains
-      and sub-domains below that root domain.</para>
+      all accounts in the domain as well as all the accounts in all the sub-domains of that domain.
+      Limits set at the root domain level apply to the sum of resource usage by the accounts in all
+      the domains and sub-domains below that root domain.</para>
     <para>To set a domain limit:</para>
     <orderedlist>
       <listitem>
@@ -278,12 +260,14 @@
           </tgroup>
         </informaltable>
       </listitem>
-      <listitem><para>Click Apply.</para></listitem>
+      <listitem>
+        <para>Click Apply.</para>
+      </listitem>
     </orderedlist>
   </section>
   <section id="default-account-resource-limit">
     <title>Default Account Resource Limits</title>
-    <para>You can limit resource use by accounts. The default limits are set by using global
+    <para>You can limit resource use by accounts. The default limits are set by using Global
       configuration parameters, and they affect all accounts within a cloud. The relevant parameters
       are those beginning with max.account, for example: max.account.snapshots.</para>
     <para>To override a default limit for a particular account, set a per-account resource
@@ -328,8 +312,7 @@
               <row>
                 <entry><para>Public IP Limits</para></entry>
                 <entry>
-                  <para>The number of public IP addresses that can be used in an
-                  account.</para>
+                  <para>The number of public IP addresses that can be used in an account.</para>
                   <para>The default is 20.</para></entry>
               </row>
               <row>
@@ -344,8 +327,7 @@
               </row>
               <row>
                 <entry><para>Template Limits</para></entry>
-                <entry><para>The number of templates that can be registered in an
-                account.</para>
+                <entry><para>The number of templates that can be registered in an account.</para>
                   <para>The default is 20.</para></entry>
               </row>
               <row>
@@ -381,7 +363,9 @@
           </tgroup>
         </informaltable>
       </listitem>
-      <listitem><para>Click Apply.</para></listitem>
+      <listitem>
+        <para>Click Apply.</para>
+      </listitem>
     </orderedlist>
   </section>
 </section>


[38/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
fix CLOUDSTACK-2139 When VM is live migrated to a different host , stopped and started , It starts on the original host where it was before live migration.


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

Branch: refs/heads/internallb
Commit: 7dd88fbbc6e26097454ff8e387dbcc971d590dc4
Parents: e23d6b2
Author: Mice Xia <mi...@tcloudcomputing.com>
Authored: Tue Apr 23 14:26:28 2013 +0800
Committer: Mice Xia <mi...@tcloudcomputing.com>
Committed: Tue Apr 23 14:27:03 2013 +0800

----------------------------------------------------------------------
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7dd88fbb/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index b613917..c1f3f15 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -1159,7 +1159,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 _workDao.update(work.getId(), work);
             }
 
-            return stateTransitTo(vm, Event.OperationSucceeded, null, null);
+            return stateTransitTo(vm, Event.OperationSucceeded, null);
         } catch (NoTransitionException e) {
             s_logger.warn(e.getMessage());
             return false;


[25/50] [abbrv] Alphebetical order for keys, remove one duplicate key

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2a769cff/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index d62cbae..fbc0471 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -15,904 +15,141 @@
 # specific language governing permissions and limitations
 # under the License.
 
-
-#new labels (begin) **********************************************************************************************
-message.redirecting.region=Redirecting to region...
-label.use.vm.ip=Use VM IP:
-label.cpu.limits=CPU limits
-label.memory.limits=Memory limits (MiB)
-label.primary.storage.limits=Primary Storage limits (GiB)
-label.secondary.storage.limits=Secondary Storage limits (GiB)
-label.max.cpus=Max. CPU cores
-label.max.memory=Max. memory (MiB)
-label.max.primary.storage=Max. primary (GiB)
-label.max.secondary.storage=Max. secondary (GiB)
-label.menu.regions=Regions
-label.region=Region
-label.add.region=Add Region
-label.remove.region=Remove Region
-message.remove.region=Are you sure you want to remove this region from this management server?
-message.add.region=Please specify the required information to add a new region.
-label.endpoint=Endpoint
-label.plugins=Plugins
-label.plugin.details=Plugin details
-label.author.name=Author name
-label.author.email=Author e-mail
-label.external.link=External link
-label.egress.rules=Egress rules
-message.acquire.new.ip.vpc=Please confirm that you would like to acquire a new IP for this VPC.
-label.zoneWizard.trafficType.management=Management: Traffic between CloudStack\'s internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs
-label.zoneWizard.trafficType.public=Public: Traffic between the internet and virtual machines in the cloud.
-label.zoneWizard.trafficType.guest=Guest: Traffic between end-user virtual machines
-label.zoneWizard.trafficType.storage=Storage: Traffic between primary and secondary storage servers, such as VM templates and snapshots
-label.quickview=Quickview
-label.migrate.to.host=Migrate to host
-label.migrate.to.storage=Migrate to storage
-label.stop=Stop
-label.reboot=Reboot
-label.destroy=Destroy
-label.restore=Restore
-label.isolation.uri=Isolation URI
-label.broadcast.uri=Broadcast URI
-label.enable.s3=Enable S3-backed Secondary Storage
-confirm.enable.s3=Please fill in the following information to enable support for S3-backed Secondary Storage
-message.after.enable.s3=S3-backed Secondary Storage configured. Note: When you leave this page, you will not be able to re-configure S3 again.
-label.s3.access_key=Access Key
-label.s3.secret_key=Secret Key
-label.s3.bucket=Bucket
-label.s3.endpoint=Endpoint
-label.s3.use_https=Use HTTPS
-label.s3.connection_timeout=Connection Timeout
-label.s3.max_error_retry=Max Error Retry
-label.s3.socket_timeout=Socket Timeout
-#new labels (end) ************************************************************************************************
-
-
-#modified labels (begin) *****************************************************************************************
-label.site.to.site.VPN=Site-to-site VPN
-message.zoneWizard.enable.local.storage=WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in primary storage, primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?
-#modified labels (end) *******************************************************************************************
-
-label.configure.network.ACLs=Configure Network ACLs
-label.network.ACLs=Network ACLs
-label.add.network.ACL=Add network ACL
-label.private.Gateway=Private Gateway
-label.VPC.router.details=VPC router details
-label.VMs.in.tier=VMs in tier
-label.local.storage.enabled=Local storage enabled
-label.tier.details=Tier details
-label.edit.tags=Edit tags
-label.action.enable.physical.network=Enable physical network
-label.action.disable.physical.network=Disable physical network
-message.action.enable.physical.network=Please confirm that you want to enable this physical network.
-message.action.disable.physical.network=Please confirm that you want to disable this physical network.
-
-label.select.tier=Select Tier
-label.add.ACL=Add ACL
-label.remove.ACL=Remove ACL
-label.tier=Tier
-label.network.ACL=Network ACL
-label.network.ACL.total=Network ACL Total
-label.add.new.gateway=Add new gateway
-message.add.new.gateway.to.vpc=Please specify the information to add a new gateway to this VPC.
-label.delete.gateway=delete gateway
-message.delete.gateway=Please confirm you want to delete the gateway
-label.CIDR.of.destination.network=CIDR of destination network
-label.add.route=Add route
-label.add.static.route=Add static route
-label.remove.static.route=Remove static route
-label.add.VPN.gateway=Add VPN Gateway
-message.add.VPN.gateway=Please confirm that you want to add a VPN Gateway
-label.VPN.gateway=VPN Gateway
-label.delete.VPN.gateway=delete VPN Gateway
-message.delete.VPN.gateway=Please confirm that you want to delete this VPN Gateway
-label.VPN.connection=VPN Connection
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.IKE.policy=IKE policy
-label.ESP.policy=ESP policy
-label.create.VPN.connection=Create VPN Connection
-label.VPN.customer.gateway=VPN Customer Gateway
-label.CIDR.list=CIDR list
-label.IKE.lifetime=IKE Lifetime (second)
-label.ESP.lifetime=ESP Lifetime(second)
-label.dead.peer.detection=Dead Peer Detection
-label.reset.VPN.connection=Reset VPN connection
-message.reset.VPN.connection=Please confirm that you want to reset VPN connection
-label.delete.VPN.connection=delete VPN connection
-message.delete.VPN.connection=Please confirm that you want to delete VPN connection
-label.add.new.tier=Add new tier
-label.add.VM.to.tier=Add VM to tier
-label.remove.tier=Remove tier
-
-label.local.storage.enabled=Local Storage Enabled
-label.associated.network=Associated Network
-label.add.port.forwarding.rule=Add port forwarding rule
-label.dns=DNS
-
-label.vpc=VPC
-label.vpc.id=VPC ID
-label.tier=Tier
-label.add.vpc=Add VPC
-label.super.cidr.for.guest.networks=Super CIDR for Guest Networks
-label.DNS.domain.for.guest.networks=DNS domain for Guest Networks
-label.configure.vpc=Configure VPC
-label.edit.vpc=Edit VPC
-label.restart.vpc=restart VPC
-message.restart.vpc=Please confirm that you want to restart the VPC
-label.remove.vpc=remove VPC
-message.remove.vpc=Please confirm that you want to remove the VPC
-label.vpn.customer.gateway=VPN Customer Gateway
-label.add.vpn.customer.gateway=Add VPN Customer Gateway
-label.IKE.encryption=IKE Encryption
-label.IKE.hash=IKE Hash
-label.IKE.DH=IKE DH
-label.ESP.encryption=ESP Encryption
-label.ESP.hash=ESP Hash
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.IKE.lifetime=IKE lifetime (second)
-label.ESP.lifetime=ESP Lifetime (second)
-label.dead.peer.detection=Dead Peer Detection
-label.delete.VPN.customer.gateway=delete VPN Customer Gateway
-message.delete.VPN.customer.gateway=Please confirm that you want to delete this VPN Customer Gateway
-
-label.network.domain.text=Network domain
-label.memory.mb=Memory (in MB)
-label.cpu.mhz=CPU (in MHz)
-
-message.action.remove.host=Please confirm that you want to remove this host.
-
-message.action.reboot.router=All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.
-message.action.stop.router=All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.
-message.restart.network=All services provided by this network will be interrupted. Please confirm that you want to restart this network.
-
-
-label.ipaddress=IP Address
-label.vcdcname=vCenter DC name
-label.vcipaddress=vCenter IP Address
-label.vsmctrlvlanid=Control VLAN ID
-label.vsmpktvlanid=Packet VLAN ID
-label.vsmstoragevlanid=Storage VLAN ID
-label.nexusVswitch=Nexus 1000v
-label.action.delete.nexusVswitch=Delete Nexus 1000v
-label.action.enable.nexusVswitch=Enable Nexus 1000v
-label.action.disable.nexusVswitch=Disable Nexus 1000v
-label.action.list.nexusVswitch=List Nexus 1000v
-message.action.delete.nexusVswitch=Please confirm that you want to delete this nexus 1000v
-message.action.enable.nexusVswitch=Please confirm that you want to enable this nexus 1000v
-message.action.disable.nexusVswitch=Please confirm that you want to disable this nexus 1000v
-message.specify.url=Please specify URL
-label.select.instance.to.attach.volume.to=Select instance to attach volume to
-label.upload=Upload
-label.upload.volume=Upload volume
-label.virtual.routers=Virtual Routers
-label.primary.storage.count=Primary Storage Pools
-label.secondary.storage.count=Secondary Storage Pools
-label.number.of.system.vms=Number of System VMs
-label.number.of.virtual.routers=Number of Virtual Routers
-label.action.register.iso=Register ISO
-label.isolation.method=Isolation method
-label.action.register.template=Register template
-label.checksum=MD5 checksum
-label.vpn=VPN
-label.vlan=VLAN
-
-
-label.management.ips=Management IP Addresses
-label.devices=Devices
-label.rules=Rules
-label.traffic.label=Traffic label
-label.vm.state=VM state
-message.setup.physical.network.during.zone.creation.basic=When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.
-label.domain.router=Domain router
-label.console.proxy=Console proxy
-label.secondary.storage.vm=Secondary storage VM
-label.add.netScaler.device=Add Netscaler device
-label.add.F5.device=Add F5 device
-label.add.SRX.device=Add SRX device
-label.account.and.security.group=Account, Security group
-label.fetch.latest=Fetch latest
-label.system.offering=System Offering
-message.validate.instance.name=Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.
-
-
-label.isolated.networks=Isolated networks
-label.latest.events=Latest events
-state.Enabled=Enabled
-label.system.wide.capacity=System-wide capacity
-label.network.service.providers=Network Service Providers
-message.launch.zone=Zone is ready to launch; please proceed to the next step.
-error.unable.to.reach.management.server=Unable to reach Management Server
-label.internal.name=Internal name
-message.configure.all.traffic.types=You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.
-message.edit.traffic.type=Please specify the traffic label you want associated with this traffic type.
-label.edit.traffic.type=Edit traffic type
-label.label=Label
-label.max.networks=Max. networks
-error.invalid.username.password=Invalid username or password
-message.enabling.security.group.provider=Enabling Security Group provider
-message.adding.Netscaler.provider=Adding Netscaler provider
-message.creating.guest.network=Creating guest network
-label.action.delete.physical.network=Delete physical network
-message.action.delete.physical.network=Please confirm that you want to delete this physical network
-message.installWizard.copy.whatIsAHost=A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones. 
-
-
-label.add.compute.offering=Add compute offering
-label.compute.offering=Compute offering
-label.compute.offerings=Compute offerings
-label.select.offering=Select offering
-label.menu.infrastructure=Infrastructure
-label.sticky.tablesize=Table size
-label.sticky.expire=Expires
-label.sticky.cookie-name=Cookie name
-label.sticky.mode=Mode
-label.sticky.length=Length
-label.sticky.holdtime=Hold time
-label.sticky.request-learn=Request learn
-label.sticky.prefix=Prefix
-label.sticky.nocache=No cache
-label.sticky.indirect=Indirect
-label.sticky.postonly=Post only
-label.sticky.domain=Domain
-state.Allocating=Allocating
-state.Migrating=Migrating
-error.please.specify.physical.network.tags=Network offerings is not available until you specify tags for this physical network.
-
-
-state.Stopping=Stopping
-message.add.load.balancer.under.ip=The load balancer rule has been added under IP:
-message.select.instance=Please select an instance.
-label.select=Select
-label.select.vm.for.static.nat=Select VM for static NAT
-label.select.instance=Select instance
-label.nat.port.range=NAT Port Range
-label.static.nat.vm.details=Static NAT VM Details
-label.edit.lb.rule=Edit LB rule
-message.migrate.instance.to.host=Please confirm that you want to migrate instance to another host.
-label.migrate.instance.to.host=Migrate instance to another host
-message.migrate.instance.to.ps=Please confirm that you want to migrate instance to another primary storage.
-label.migrate.instance.to.ps=Migrate instance to another primary storage
-label.corrections.saved=Corrections saved
-message.installWizard.copy.whatIsSecondaryStorage=Secondary storage is associated with a zone, and it stores the following:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>
-message.installWizard.copy.whatIsPrimaryStorage=A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts. 
-message.installWizard.copy.whatIsACluster=A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster. 
-message.installWizard.copy.whatIsAPod=A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.
-message.installWizard.copy.whatIsAZone=A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).
-message.installWizard.copy.whatIsCloudStack=CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features. 
-message.installWizard.tooltip.addSecondaryStorage.path=The exported path, located on the server you specified above
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=The IP address of the NFS server hosting the secondary storage
-message.installWizard.tooltip.addPrimaryStorage.path=(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.
-message.installWizard.tooltip.addPrimaryStorage.name=The name for the storage device.
-message.installWizard.tooltip.addHost.password=This is the password for the user named above (from your XenServer install).
-message.installWizard.tooltip.addHost.username=Usually root.
-message.installWizard.tooltip.addHost.hostname=The DNS name or IP address of the host.
-message.installWizard.tooltip.addCluster.name=A name for the cluster.  This can be text of your choosing and is not used by CloudStack.
-message.installWizard.tooltip.addPod.reservedSystemEndIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=The netmask in use on the subnet the guests will use.
-message.installWizard.tooltip.addPod.reservedSystemGateway=The gateway for the hosts in that pod.
-message.installWizard.tooltip.addPod.name=A name for the pod
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=The netmask in use on the subnet that the guests should use
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=The gateway that the guests should use
-message.installWizard.tooltip.configureGuestTraffic.description=A description for your network
-message.installWizard.tooltip.configureGuestTraffic.name=A name for your network
-message.installWizard.tooltip.addZone.internaldns2=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.internaldns1=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.dns2=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.name=A name for the zone
-message.installWizard.tooltip.addZone.dns1=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
-message.setup.successful=Cloud setup successful!
-label.may.continue=You may now continue.
-error.installWizard.message=Something went wrong; you may go back and correct any errors
-message.installWizard.now.building=Now building your cloud... 
-message.installWizard.click.retry=Click the button to retry launch.
-label.launch=Launch
-label.installWizard.click.launch=Click the launch button.
-label.congratulations=Congratulations!
-label.installWizard.addSecondaryStorageIntro.subtitle=What is secondary storage?
-label.installWizard.addSecondaryStorageIntro.title=Let&rsquo;s add secondary storage
-label.installWizard.addPrimaryStorageIntro.subtitle=What is primary storage?
-label.installWizard.addPrimaryStorageIntro.title=Let&rsquo;s add primary storage
-label.installWizard.addHostIntro.subtitle=What is a host?
-label.installWizard.addHostIntro.title=Let&rsquo;s add a host
-label.installWizard.addClusterIntro.subtitle=What is a cluster?
-label.installWizard.addClusterIntro.title=Let&rsquo;s add a cluster
-label.installWizard.addPodIntro.subtitle=What is a pod?
-label.installWizard.addPodIntro.title=Let&rsquo;s add a pod
-label.installWizard.addZone.title=Add zone
-label.installWizard.addZoneIntro.subtitle=What is a zone?
-label.installWizard.addZoneIntro.title=Let&rsquo;s add a zone
-error.password.not.match=The password fields do not match
-label.confirm.password=Confirm password
-message.change.password=Please change your password.
-label.save.and.continue=Save and continue
-label.skip.guide=I have used CloudStack before, skip this guide
-label.continue.basic.install=Continue with basic installation
-label.introduction.to.cloudstack=Introduction to CloudStack&#8482
-label.what.is.cloudstack=What is CloudStack&#8482?
-label.hints=Hints
-label.installWizard.subtitle=This tour will aid you in setting up your CloudStack&#8482 installation
-label.continue=Continue
-label.installWizard.title=Hello and Welcome to CloudStack&#8482
-label.agree=Agree
-label.manage.resources=Manage Resources
-label.port.forwarding.policies=Port forwarding policies
-label.load.balancing.policies=Load balancing policies
-label.networking.and.security=Networking and security
-label.bandwidth=Bandwidth
-label.virtual.machines=Virtual machines
-label.compute.and.storage=Compute and Storage
-label.task.completed=Task completed
-label.update.project.resources=Update project resources
-label.remove.project.account=Remove project account
-label.item.listing=Item listing
-message.select.item=Please select an item.
-label.removing=Removing
-label.invite=Invite
-label.add.by=Add by
-label.max.vms=Max. user VMs
-label.max.public.ips=Max. public IPs
-label.max.volumes=Max. volumes
-label.max.snapshots=Max. snapshots
-label.max.templates=Max. templates
-label.max.vpcs=Max. VPCs
-label.project.dashboard=Project dashboard
-label.remind.later=Remind me later
-label.invited.accounts=Invited accounts
-label.invite.to=Invite to
-label.add.accounts.to=Add accounts to
-label.add.accounts=Add accounts
-label.project.name=Project name
-label.create.project=Create project
-label.networks=Networks
-label.launch.vm=Launch VM
-label.new.vm=New VM
-label.previous=Previous
-label.add.to.group=Add to group
-message.vm.review.launch=Please review the following information and confirm that your virtual instance is correct before launch.
-message.select.security.groups=Please select security group(s) for your new VM
-label.new=New
-message.please.select.networks=Please select networks for your virtual machine.
-message.please.proceed=Please proceed to the next step.
-message.zone.no.network.selection=The zone you selected does not have any choices for network selection.
-label.no.thanks=No thanks
-label.my.templates=My templates
-message.select.template=Please select a template for your new virtual instance.
-message.select.iso=Please select an ISO for your new virtual instance.
-message.template.desc=OS image that can be used to boot VMs
-message.iso.desc=Disc image containing data or bootable media for OS
-label.select.iso.or.template=Select ISO or template
-message.select.a.zone=A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.
-label.select.a.zone=Select a zone
-label.review=Review
-label.select.a.template=Select a template
-label.setup=Setup
-state.Allocated=Allocated
-changed.item.properties=Changed item properties
-label.apply=Apply
-label.default=Default
-label.viewing=Viewing
-label.move.to.top=Move to top
-label.move.up.row=Move up one row
-label.move.down.row=Move down one row
-label.move.to.bottom=Move to bottom
-label.drag.new.position=Drag to new position
-label.order=Order
-label.no.data=No data to show
-label.change.value=Change value
-label.clear.list=Clear list
-label.full.path=Full path
-message.add.domain=Please specify the subdomain you want to create under this domain
-message.delete.user=Please confirm that you would like to delete this user.
-message.enable.user=Please confirm that you would like to enable this user.
-message.disable.user=Please confirm that you would like to disable this user.
-message.generate.keys=Please confirm that you would like to generate new keys for this user.
-message.update.resource.count=Please confirm that you want to update resource counts for this account.
-message.edit.account=Edit ("-1" indicates no limit to the amount of resources create)
-label.total.of.vm=Total of VM
-label.total.of.ip=Total of IP Address
-state.enabled=Enabled
-message.action.download.iso=Please confirm that you want to download this ISO.
-message.action.download.template=Please confirm that you want to download this template.
-label.destination.zone=Destination Zone
-label.keyboard.type=Keyboard type
-label.nic.adapter.type=NIC adapter type
-label.root.disk.controller=Root disk controller
-label.community=Community
-label.remove.egress.rule=Remove egress rule
-label.add.egress.rule=Add egress rule
-label.egress.rule=Egress rule
-label.remove.ingress.rule=Remove ingress rule
-label.delete.vpn.user=Delete VPN user
-label.add.vpn.user=Add VPN user
-label.remove.pf=Remove port forwarding rule
-label.remove.vm.from.lb=Remove VM from load balancer rule
-label.add.vms.to.lb=Add VM(s) to load balancer rule
-label.add.vm=Add VM
-label.remove.static.nat.rule=Remove static NAT rule
-label.remove.rule=Remove rule
-label.add.static.nat.rule=Add static NAT rule
-label.add.rule=Add rule
-label.configuration=Configuration
-message.disable.vpn=Are you sure you want to disable VPN?
-label.disable.vpn=Disable VPN
-message.enable.vpn=Please confirm that you want VPN access enabled for this IP address.
-label.enable.vpn=Enable VPN
-message.acquire.new.ip=Please confirm that you would like to acquire a new IP for this network.
-label.elastic=Elastic
-label.my.network=My network
-label.add.vms=Add VMs
-label.configure=Configure
-label.stickiness=Stickiness
-label.source=Source
-label.least.connections=Least connections
-label.round.robin=Round-robin
-label.restart.required=Restart required
-label.clean.up=Clean up
-label.restart.network=Restart network
-label.edit.network.details=Edit network details
-label.add.guest.network=Add guest network
-label.guest.networks=Guest networks
-message.ip.address.changed=Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.
-state.BackingUp=Backing Up
-state.BackedUp=Backed Up
-label.done=Done
-label.vm.name=VM name
-message.migrate.volume=Please confirm that you want to migrate volume to another primary storage.
-label.migrate.volume=Migrate volume to another primary storage
-message.create.template=Are you sure you want to create template?
-label.create.template=Create template
-message.download.volume.confirm=Please confirm that you want to download this volume
-message.detach.disk=Are you sure you want to detach this disk?
-state.ready=Ready
-state.Ready=Ready
-label.vm.display.name=VM display name
-label.select-view=Select view
-label.local.storage=Local Storage
-label.direct.ips=Shared Network IPs
-label.view.all=View all
-label.zone.details=Zone details
-message.alert.state.detected=Alert state detected
-state.Starting=Starting
-state.Expunging=Expunging
-state.Creating=Creating
-message.decline.invitation=Are you sure you want to decline this project invitation?
-label.decline.invitation=Decline invitation
-message.confirm.join.project=Please confirm you wish to join this project.
-message.join.project=You have now joined a project. Please switch to Project view to see the project.
-label.accept.project.invitation=Accept project invitation
-label.token=Token
-label.project.id=Project ID
-message.enter.token=Please enter the token that you were given in your invite e-mail.
-label.enter.token=Enter token
-state.Accepted=Accepted
-state.Pending=Pending
-state.Completed=Completed
-state.Declined=Declined
-label.project=Project
-label.invitations=Invitations
-label.delete.project=Delete project
-message.delete.project=Are you sure you want to delete this project?
-message.activate.project=Are you sure you want to activate this project?
-label.activate.project=Activate Project
-label.suspend.project=Suspend Project
-message.suspend.project=Are you sure you want to suspend this project?
-state.Suspended=Suspended
-label.edit.project.details=Edit project details
-label.new.project=New Project
-state.Active=Active
-state.Disabled=Disabled
-label.projects=Projects
-label.make.project.owner=Make account project owner
-label.remove.project.account=Remove account from project
-message.project.invite.sent=Invite sent to user; they will be added to the project once they accept the invitation
-label.add.account.to.project=Add account to project
-label.revoke.project.invite=Revoke invitation
-label.project.invite=Invite to project
-label.select.project=Select Project
-message.no.projects=You do not have any projects.<br/>Please create a new one from the projects section.
-message.no.projects.adminOnly=You do not have any projects.<br/>Please ask your administrator to create a new project.
-message.pending.projects.1=You have pending project invitations:
-message.pending.projects.2=To view, please go to the projects section, then select invitations from the drop-down.
-message.instanceWizard.noTemplates=You do not have any templates available; please add a compatible template, and re-launch the instance wizard.
-label.view=View
-instances.actions.reboot.label=Reboot instance
-label.filterBy=Filter by
-label.ok=OK
-notification.reboot.instance=Reboot instance
-notification.start.instance=Start instance
-notification.stop.instance=Stop instance
-label.display.name=Display name
-label.zone.name=Zone name
-ui.listView.filters.all=All
-ui.listView.filters.mine=Mine
-state.Running=Running
-state.Stopped=Stopped
-state.Destroyed=Destroyed
-state.Error=Error
-message.reset.password.warning.notPasswordEnabled=The template of this instance was created without password enabled
-message.reset.password.warning.notStopped=Your instance must be stopped before attempting to change its current password
-label.notifications=Notifications
-label.default.view=Default View
-label.project.view=Project View
-
-message.add.system.service.offering=Please fill in the following data to add a new system service offering.
-message.action.delete.system.service.offering=Please confirm that you want to delete this system service offering.
-label.action.delete.system.service.offering=Delete System Service Offering
-label.hypervisor.capabilities=Hypervisor capabilities
-label.hypervisor.version=Hypervisor version
-label.max.guest.limit=Max guest limit
-label.add.network.offering=Add network offering
-label.supported.services=Supported Services
-label.service.capabilities=Service Capabilities
-label.guest.type=Guest Type
-label.specify.IP.ranges=Specify IP ranges
-label.conserve.mode=Conserve mode
-label.created.by.system=Created by system
-label.menu.system.service.offerings=System Offerings
-label.add.system.service.offering=Add System Service Offering
-label.redundant.router.capability=Redundant router capability
-label.supported.source.NAT.type=Supported Source NAT type
-label.elastic.LB=Elastic LB
-label.LB.isolation=LB isolation
-label.elastic.IP=Elastic IP
-label.network.label.display.for.blank.value=Use default gateway
-label.xen.traffic.label=XenServer traffic label
-label.kvm.traffic.label=KVM traffic label
-label.vmware.traffic.label=VMware traffic label
-label.start.IP=Start IP
-label.end.IP=End IP
-label.remove.ip.range=Remove IP range
-label.ip.ranges=IP Ranges
-label.start.vlan=Start Vlan
-label.end.vlan=End Vlan
-label.broadcast.domain.range=Broadcast domain range
-label.compute=Compute
-message.add.guest.network=Please confirm that you would like to add a guest network
-label.subdomain.access=Subdomain Access
-label.guest.start.ip=Guest start IP
-label.guest.end.ip=Guest end IP
-label.virtual.router=Virtual Router
-label.physical.network.ID=Physical network ID
-label.destination.physical.network.id=Destination physical network ID
-label.dhcp=DHCP
-label.destroy.router=Destroy router
-message.confirm.destroy.router=Please confirm that you would like to destroy this router
-label.change.service.offering=Change service offering
-label.view.console=View console
-label.redundant.state=Redundant state
-label.enable.provider=Enable provider
-message.confirm.enable.provider=Please confirm that you would like to enable this provider
-label.disable.provider=Disable provider
-message.confirm.disable.provider=Please confirm that you would like to disable this provider
-label.shutdown.provider=Shutdown provider
-message.confirm.shutdown.provider=Please confirm that you would like to shutdown this provider
-label.netScaler=NetScaler
-label.add.new.NetScaler=Add new NetScaler
-label.capacity=Capacity
-label.dedicated=Dedicated
-label.f5=F5
-label.add.new.F5=Add new F5
-label.srx=SRX
-label.providers=Providers
-label.add.new.SRX=Add new SRX
-label.timeout=Timeout
-label.public.network=Public network
-label.private.network=Private network
-label.enable.swift=Enable Swift
+changed.item.properties=Changed item properties
+confirm.enable.s3=Please fill in the following information to enable support for S3-backed Secondary Storage
 confirm.enable.swift=Please fill in the following information to enable support for Swift
-message.after.enable.swift=Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.
-label.key=Key
-label.delete.NetScaler=Delete NetScaler
-message.confirm.delete.NetScaler=Please confirm that you would like to delete NetScaler
-label.delete.F5=Delete F5
-message.confirm.delete.F5=Please confirm that you would like to delete F5
-label.delete.SRX=Delete SRX
-message.confirm.delete.SRX=Please confirm that you would like to delete SRX
-label.pods=Pods
-label.pod.name=Pod name
-label.reserved.system.gateway=Reserved system gateway
-label.reserved.system.netmask=Reserved system netmask
-label.start.reserved.system.IP=Start Reserved system IP
-label.end.reserved.system.IP=End Reserved system IP
-label.clusters=Clusters
-label.cluster.name=Cluster Name
-label.host.MAC=Host MAC
-label.agent.username=Agent Username
-label.agent.password=Agent Password
-message.confirm.action.force.reconnect=Please confirm that you want to force reconnect this host.
-label.resource.state=Resource state
-label.LUN.number=LUN #
-message.confirm.remove.IP.range=Please confirm that you would like to remove this IP range.
-message.tooltip.zone.name=A name for the zone.
-message.tooltip.dns.1=Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.dns.2=A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.internal.dns.1=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
-message.tooltip.internal.dns.2=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
-message.tooltip.network.domain=A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.
-message.tooltip.pod.name=A name for this pod.
-message.tooltip.reserved.system.gateway=The gateway for the hosts in the pod.
-message.tooltip.reserved.system.netmask=The network prefix that defines the pod subnet. Uses CIDR notation.
-message.creating.zone=Creating zone
-message.creating.physical.networks=Creating physical networks
-message.configuring.physical.networks=Configuring physical networks
-message.adding.Netscaler.device=Adding Netscaler device
-message.creating.pod=Creating pod
-message.configuring.public.traffic=Configuring public traffic
-message.configuring.storage.traffic=Configuring storage traffic
-message.configuring.guest.traffic=Configuring guest traffic
-message.creating.cluster=Creating cluster
-message.adding.host=Adding host
-message.creating.primary.storage=Creating primary storage
-message.creating.secondary.storage=Creating secondary storage
-message.Zone.creation.complete=Zone creation complete
-message.enabling.zone=Enabling zone
-error.something.went.wrong.please.correct.the.following=Something went wrong; please correct the following
 error.could.not.enable.zone=Could not enable zone
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Zone creation complete. Would you like to enable this zone?
-message.please.add.at.lease.one.traffic.range=Please add at least one traffic range.
-message.you.must.have.at.least.one.physical.network=You must have at least one physical network
-message.please.select.a.different.public.and.management.network.before.removing=Please select a different public and management network before removing
-
-label.zone.type=Zone Type
-label.setup.zone=Setup Zone
-label.setup.network=Setup Network
-label.add.resources=Add Resources
-label.launch=Launch
-label.set.up.zone.type=Set up zone type
-message.please.select.a.configuration.for.your.zone=Please select a configuration for your zone.
-message.desc.basic.zone=Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).
-label.basic=Basic
-message.desc.advanced.zone=For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.
-label.advanced=Advanced
-message.desc.zone=A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.
-label.physical.network=Physical Network        
-label.public.traffic=Public traffic     
-label.guest.traffic=Guest Traffic
-label.storage.traffic=Storage Traffic
-message.setup.physical.network.during.zone.creation=When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.
-label.add.physical.network=Add physical network
-label.traffic.types=Traffic Types
-label.management=Management
-label.guest=Guest
-label.please.specify.netscaler.info=Please specify Netscaler info
-message.public.traffic.in.advanced.zone=Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.
-message.public.traffic.in.basic.zone=Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.
-message.add.pod.during.zone.creation=Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.
-message.guest.traffic.in.advanced.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.
-message.guest.traffic.in.basic.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.
-message.storage.traffic=Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.
-message.desc.cluster=Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.
-message.desc.host=Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.
-message.desc.primary.storage=Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.
-message.desc.secondary.storage=Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.
-label.launch.zone=Launch zone 
-message.please.wait.while.zone.is.being.created=Please wait while your zone is being created; this may take a while...
-
-label.load.balancing=Load Balancing
-label.static.nat.enabled=Static NAT Enabled
-label.zones=Zones
-label.view.more=View more
-label.number.of.zones=Number of Zones
-label.number.of.pods=Number of Pods
-label.number.of.clusters=Number of Clusters
-label.number.of.hosts=Number of Hosts
-label.total.hosts=Total Hosts
-label.total.CPU=Total CPU
-label.total.memory=Total Memory
-label.total.storage=Total Storage
-label.purpose=Purpose
-
-
-
-
-label.action.migrate.router=Migrate Router
-label.action.migrate.router.processing=Migrating Router....
-message.migrate.router.confirm=Please confirm the host you wish to migrate the router to:
-label.migrate.router.to=Migrate Router to
-
-label.action.migrate.systemvm=Migrate System VM
-label.action.migrate.systemvm.processing=Migrating System VM....
-message.migrate.systemvm.confirm=Please confirm the host you wish to migrate the system VM to:
-label.migrate.systemvm.to=Migrate System VM to
-
-
-mode=Mode
-side.by.side=Side by Side
-inline=Inline
-
+error.installWizard.message=Something went wrong; you may go back and correct any errors
+error.invalid.username.password=Invalid username or password
+error.login=Your username/password does not match our records.
+error.menu.select=Unable to perform action due to no items being selected. 
+error.mgmt.server.inaccessible=The Management Server is unaccessible.  Please try again later.
+error.password.not.match=The password fields do not match
+error.please.specify.physical.network.tags=Network offerings is not available until you specify tags for this physical network.
+error.session.expired=Your session has expired.
+error.something.went.wrong.please.correct.the.following=Something went wrong; please correct the following
+error.unable.to.reach.management.server=Unable to reach Management Server
+error.unresolved.internet.name=Your internet name cannot be resolved.
 extractable=Extractable
-
-label.ocfs2=OCFS2
-
-label.action.edit.host=Edit Host
-
-network.rate=Network Rate
-
-ICMP.type=ICMP Type
-ICMP.code=ICMP Code
-
-image.directory=Image Directory
-
-label.action.create.template.from.vm=Create Template from VM
-label.action.create.template.from.volume=Create Template from Volume
-
-message.vm.create.template.confirm=Create Template will reboot the VM automatically.
-
-label.action.manage.cluster=Manage Cluster
-message.action.manage.cluster=Please confirm that you want to manage the cluster.
-label.action.manage.cluster.processing=Managing Cluster....
-
-label.action.unmanage.cluster=Unmanage Cluster
-message.action.unmanage.cluster=Please confirm that you want to unmanage the cluster.
-label.action.unmanage.cluster.processing=Unmanaging Cluster....
-
-label.allocation.state=Allocation State
-managed.state=Managed State
-
-label.default.use=Default Use
-label.host.tags=Host Tags 
-
-label.cidr=CIDR
-label.cidr.list=Source CIDR
-
-label.storage.tags=Storage Tags
-
-label.redundant.router=Redundant Router
-label.is.redundant.router=Redundant
-
-force.delete=Force Delete
 force.delete.domain.warning=Warning: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.
-
+force.delete=Force Delete
 force.remove=Force Remove
 force.remove.host.warning=Warning: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.
-
 force.stop=Force Stop
 force.stop.instance.warning=Warning: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.
-
-label.PreSetup=PreSetup
-label.SR.name = SR Name-Label
-label.SharedMountPoint=SharedMountPoint
-label.clvm=CLVM
-label.volgroup=Volume Group
-label.VMFS.datastore=VMFS datastore
-
-label.network.device=Network Device
-label.add.network.device=Add Network Device
-label.network.device.type=Network Device Type
-label.DHCP.server.type=DHCP Server Type
-label.Pxe.server.type=Pxe Server Type
-label.PING.storage.IP=PING storage IP
-label.PING.dir=PING Directory
-label.TFTP.dir=TFTP Directory
-label.PING.CIFS.username=PING CIFS username
-label.PING.CIFS.password=PING CIFS password
-label.CPU.cap=CPU Cap
-
-
-label.action.enable.zone=Enable Zone
-label.action.enable.zone.processing=Enabling Zone....
-message.action.enable.zone=Please confirm that you want to enable this zone.
-label.action.disable.zone=Disable Zone
-label.action.disable.zone.processing=Disabling Zone....
-message.action.disable.zone=Please confirm that you want to disable this zone.
-
-label.action.enable.pod=Enable Pod
-label.action.enable.pod.processing=Enabling Pod....
-message.action.enable.pod=Please confirm that you want to enable this pod.
-label.action.disable.pod=Disable Pod
-label.action.disable.pod.processing=Disabling Pod....
-message.action.disable.pod=Please confirm that you want to disable this pod.
-
-label.action.enable.cluster=Enable Cluster
-label.action.enable.cluster.processing=Enabling Cluster....
-message.action.enable.cluster=Please confirm that you want to enable this cluster.
-label.action.disable.cluster=Disable Cluster
-label.action.disable.cluster.processing=Disabling Cluster....
-message.action.disable.cluster=Please confirm that you want to disable this cluster.
-
+ICMP.code=ICMP Code
+ICMP.type=ICMP Type
+image.directory=Image Directory
+inline=Inline
+instances.actions.reboot.label=Reboot instance
+label.accept.project.invitation=Accept project invitation
+label.account=Account
+label.account.and.security.group=Account, Security group
 label.account.id=Account ID
 label.account.name=Account Name
-label.account.specific=Account-Specific
-label.account=Account
 label.accounts=Accounts
+label.account.specific=Account-Specific
 label.acquire.new.ip=Acquire New IP
-label.show.ingress.rule=Show Ingress Rule
-label.hide.ingress.rule=Hide Ingress Rule
-label.action.attach.disk.processing=Attaching Disk....
 label.action.attach.disk=Attach Disk
-label.action.attach.iso.processing=Attaching ISO....
+label.action.attach.disk.processing=Attaching Disk....
 label.action.attach.iso=Attach ISO
-label.action.cancel.maintenance.mode.processing=Cancelling Maintenance Mode....
+label.action.attach.iso.processing=Attaching ISO....
 label.action.cancel.maintenance.mode=Cancel Maintenance Mode
+label.action.cancel.maintenance.mode.processing=Cancelling Maintenance Mode....
 label.action.change.password=Change Password
-label.action.change.service.processing=Changing Service....
 label.action.change.service=Change Service
-label.action.copy.ISO.processing=Coping ISO....
+label.action.change.service.processing=Changing Service....
 label.action.copy.ISO=Copy ISO
-label.action.copy.template.processing=Coping Template....
+label.action.copy.ISO.processing=Coping ISO....
 label.action.copy.template=Copy Template
-label.action.create.template.processing=Creating Template....
+label.action.copy.template.processing=Coping Template....
 label.action.create.template=Create Template
-label.action.create.vm.processing=Creating VM....
+label.action.create.template.from.vm=Create Template from VM
+label.action.create.template.from.volume=Create Template from Volume
+label.action.create.template.processing=Creating Template....
 label.action.create.vm=Create VM
-label.action.create.volume.processing=Creating Volume....
+label.action.create.vm.processing=Creating VM....
 label.action.create.volume=Create Volume
-label.action.delete.IP.range.processing=Deleting IP Range....
-label.action.delete.IP.range=Delete IP Range
-label.action.delete.ISO.processing=Deleting ISO....
-label.action.delete.ISO=Delete ISO
-label.action.delete.account.processing=Deleting account....
+label.action.create.volume.processing=Creating Volume....
 label.action.delete.account=Delete account
-label.action.delete.cluster.processing=Deleting Cluster....
+label.action.delete.account.processing=Deleting account....
 label.action.delete.cluster=Delete Cluster
-label.action.delete.disk.offering.processing=Deleting Disk Offering....
+label.action.delete.cluster.processing=Deleting Cluster....
 label.action.delete.disk.offering=Delete Disk Offering
-
-label.action.update.resource.count=Update Resource Count
-label.action.update.resource.count.processing=Updating Resource Count....
-
+label.action.delete.disk.offering.processing=Deleting Disk Offering....
 label.action.delete.domain=Delete Domain
 label.action.delete.domain.processing=Deleting Domain....
-
-label.action.delete.firewall.processing=Deleting Firewall....
 label.action.delete.firewall=Delete firewall rule
-label.action.delete.ingress.rule.processing=Deleting Ingress Rule....
+label.action.delete.firewall.processing=Deleting Firewall....
 label.action.delete.ingress.rule=Delete Ingress Rule
-label.action.delete.load.balancer.processing=Deleting Load Balancer....
+label.action.delete.ingress.rule.processing=Deleting Ingress Rule....
+label.action.delete.IP.range=Delete IP Range
+label.action.delete.IP.range.processing=Deleting IP Range....
+label.action.delete.ISO=Delete ISO
+label.action.delete.ISO.processing=Deleting ISO....
 label.action.delete.load.balancer=Delete load balancer rule
-label.action.edit.network.processing=Editing Network....
-label.action.edit.network=Edit Network
-label.action.delete.network.processing=Deleting Network....
+label.action.delete.load.balancer.processing=Deleting Load Balancer....
 label.action.delete.network=Delete Network
-label.action.delete.pod.processing=Deleting Pod....
+label.action.delete.network.processing=Deleting Network....
+label.action.delete.nexusVswitch=Delete Nexus 1000v
+label.action.delete.physical.network=Delete physical network
 label.action.delete.pod=Delete Pod
-label.action.delete.primary.storage.processing=Deleting Primary Storage....
+label.action.delete.pod.processing=Deleting Pod....
 label.action.delete.primary.storage=Delete Primary Storage
-label.action.delete.secondary.storage.processing=Deleting Secondary Storage....
+label.action.delete.primary.storage.processing=Deleting Primary Storage....
 label.action.delete.secondary.storage=Delete Secondary Storage
-label.action.delete.security.group.processing=Deleting Security Group....
+label.action.delete.secondary.storage.processing=Deleting Secondary Storage....
 label.action.delete.security.group=Delete Security Group
-label.action.delete.service.offering.processing=Deleting Service Offering....
+label.action.delete.security.group.processing=Deleting Security Group....
 label.action.delete.service.offering=Delete Service Offering
-label.action.delete.snapshot.processing=Deleting Snapshot....
+label.action.delete.service.offering.processing=Deleting Service Offering....
 label.action.delete.snapshot=Delete Snapshot
-label.action.delete.template.processing=Deleting Template....
+label.action.delete.snapshot.processing=Deleting Snapshot....
+label.action.delete.system.service.offering=Delete System Service Offering
 label.action.delete.template=Delete Template
-label.action.delete.user.processing=Deleting User....
+label.action.delete.template.processing=Deleting Template....
 label.action.delete.user=Delete User
-label.action.delete.volume.processing=Deleting Volume....
+label.action.delete.user.processing=Deleting User....
 label.action.delete.volume=Delete Volume
-label.action.delete.zone.processing=Deleting Zone....
+label.action.delete.volume.processing=Deleting Volume....
 label.action.delete.zone=Delete Zone
-label.action.destroy.instance.processing=Destroying Instance....
+label.action.delete.zone.processing=Deleting Zone....
 label.action.destroy.instance=Destroy Instance
-label.action.destroy.systemvm.processing=Destroying System VM....
+label.action.destroy.instance.processing=Destroying Instance....
 label.action.destroy.systemvm=Destroy System VM
-label.action.detach.disk.processing=Detaching Disk....
+label.action.destroy.systemvm.processing=Destroying System VM....
 label.action.detach.disk=Detach Disk
-label.action.detach.iso.processing=Detaching ISO....
+label.action.detach.disk.processing=Detaching Disk....
 label.action.detach.iso=Detach ISO
-label.action.disable.account.processing=Disabling account....
+label.action.detach.iso.processing=Detaching ISO....
 label.action.disable.account=Disable account
-label.action.disable.static.NAT.processing=Disabling Static NAT....
+label.action.disable.account.processing=Disabling account....
+label.action.disable.cluster=Disable Cluster
+label.action.disable.cluster.processing=Disabling Cluster....
+label.action.disable.nexusVswitch=Disable Nexus 1000v
+label.action.disable.physical.network=Disable physical network
+label.action.disable.pod=Disable Pod
+label.action.disable.pod.processing=Disabling Pod....
 label.action.disable.static.NAT=Disable Static NAT
-label.action.disable.user.processing=Disabling User....
+label.action.disable.static.NAT.processing=Disabling Static NAT....
 label.action.disable.user=Disable User
+label.action.disable.user.processing=Disabling User....
+label.action.disable.zone=Disable Zone
+label.action.disable.zone.processing=Disabling Zone....
 label.action.download.ISO=Download ISO
 label.action.download.template=Download Template
-label.action.download.volume.processing=Downloading Volume....
 label.action.download.volume=Download Volume
-label.action.edit.ISO=Edit ISO
+label.action.download.volume.processing=Downloading Volume....
 label.action.edit.account=Edit account
 label.action.edit.disk.offering=Edit Disk Offering
 label.action.edit.domain=Edit Domain
 label.action.edit.global.setting=Edit Global Setting
+label.action.edit.host=Edit Host
 label.action.edit.instance=Edit Instance
+label.action.edit.ISO=Edit ISO
+label.action.edit.network=Edit Network
 label.action.edit.network.offering=Edit Network Offering
+label.action.edit.network.processing=Editing Network....
 label.action.edit.pod=Edit Pod
 label.action.edit.primary.storage=Edit Primary Storage
 label.action.edit.resource.limits=Edit Resource Limits
@@ -920,22 +157,37 @@ label.action.edit.service.offering=Edit Service Offering
 label.action.edit.template=Edit Template
 label.action.edit.user=Edit User
 label.action.edit.zone=Edit Zone
-label.action.enable.account.processing=Enabling account....
 label.action.enable.account=Enable account
-label.action.enable.maintenance.mode.processing=Enabling Maintenance Mode....
+label.action.enable.account.processing=Enabling account....
+label.action.enable.cluster=Enable Cluster
+label.action.enable.cluster.processing=Enabling Cluster....
 label.action.enable.maintenance.mode=Enable Maintenance Mode
-label.action.enable.static.NAT.processing=Enabling Static NAT....
+label.action.enable.maintenance.mode.processing=Enabling Maintenance Mode....
+label.action.enable.nexusVswitch=Enable Nexus 1000v
+label.action.enable.physical.network=Enable physical network
+label.action.enable.pod=Enable Pod
+label.action.enable.pod.processing=Enabling Pod....
 label.action.enable.static.NAT=Enable Static NAT
-label.action.enable.user.processing=Enabling User....
+label.action.enable.static.NAT.processing=Enabling Static NAT....
 label.action.enable.user=Enable User
-label.action.force.reconnect.processing=Reconnecting....
+label.action.enable.user.processing=Enabling User....
+label.action.enable.zone=Enable Zone
+label.action.enable.zone.processing=Enabling Zone....
 label.action.force.reconnect=Force Reconnect
-label.action.generate.keys.processing=Generate Keys....
+label.action.force.reconnect.processing=Reconnecting....
 label.action.generate.keys=Generate Keys
-label.action.lock.account.processing=Locking account....
+label.action.generate.keys.processing=Generate Keys....
+label.action.list.nexusVswitch=List Nexus 1000v
 label.action.lock.account=Lock account
+label.action.lock.account.processing=Locking account....
+label.action.manage.cluster=Manage Cluster
+label.action.manage.cluster.processing=Managing Cluster....
 label.action.migrate.instance=Migrate Instance
 label.action.migrate.instance.processing=Migrating Instance....
+label.action.migrate.router=Migrate Router
+label.action.migrate.router.processing=Migrating Router....
+label.action.migrate.systemvm=Migrate System VM
+label.action.migrate.systemvm.processing=Migrating System VM....
 label.action.reboot.instance.processing=Rebooting Instance....
 label.action.reboot.instance=Reboot Instance
 label.action.reboot.router.processing=Rebooting Router....
@@ -943,15 +195,20 @@ label.action.reboot.router=Reboot Router
 label.action.reboot.systemvm.processing=Rebooting System VM....
 label.action.reboot.systemvm=Reboot System VM
 label.action.recurring.snapshot=Recurring Snapshots
+label.action.register.iso=Register ISO
+label.action.register.template=Register template
 label.action.release.ip.processing=Releasing IP....
 label.action.release.ip=Release IP
 label.action.remove.host.processing=Removing Host....
 label.action.remove.host=Remove Host
 label.action.reset.password.processing=Resetting Password....
 label.action.reset.password=Reset Password
+label.action.resize.volume.processing=Resizing Volume....
+label.action.resize.volume=Resize Volume
 label.action.resource.limits=Resource limits
 label.action.restore.instance.processing=Restoring Instance....
 label.action.restore.instance=Restore Instance
+label.actions=Actions
 label.action.start.instance.processing=Starting Instance....
 label.action.start.instance=Start Instance
 label.action.start.router.processing=Starting Router....
@@ -966,65 +223,124 @@ label.action.stop.systemvm.processing=Stopping System VM....
 label.action.stop.systemvm=Stop System VM
 label.action.take.snapshot.processing=Taking Snapshot....
 label.action.take.snapshot=Take Snapshot
+label.action.unmanage.cluster.processing=Unmanaging Cluster....
+label.action.unmanage.cluster=Unmanage Cluster
 label.action.update.OS.preference.processing=Updating OS Preference....
 label.action.update.OS.preference=Update OS Preference
-label.actions=Actions
+label.action.update.resource.count.processing=Updating Resource Count....
+label.action.update.resource.count=Update Resource Count
+label.action.vmsnapshot.create=Take VM Snapshot
+label.action.vmsnapshot.delete=Delete VM snapshot
+label.action.vmsnapshot.revert=Revert to VM snapshot
+label.activate.project=Activate Project
 label.active.sessions=Active Sessions
 label.add.account=Add Account
+label.add.accounts=Add accounts
+label.add.accounts.to=Add accounts to
+label.add.account.to.project=Add account to project
+label.add.ACL=Add ACL
+label.add=Add
+label.add.BigSwitchVns.device=Add BigSwitch Vns Controller
+label.add.by=Add by
 label.add.by.cidr=Add By CIDR
 label.add.by.group=Add By Group
 label.add.cluster=Add Cluster
+label.add.compute.offering=Add compute offering
 label.add.direct.iprange=Add Direct Ip Range
 label.add.disk.offering=Add Disk Offering
 label.add.domain=Add Domain
+label.add.egress.rule=Add egress rule
+label.add.F5.device=Add F5 device
 label.add.firewall=Add firewall rule
+label.add.guest.network=Add guest network
 label.add.host=Add Host
+label.adding=Adding
+label.adding.cluster=Adding Cluster
+label.adding.failed=Adding Failed
+label.adding.pod=Adding Pod
+label.adding.processing=Adding....
 label.add.ingress.rule=Add Ingress Rule
+label.adding.succeeded=Adding Succeeded
+label.adding.user=Adding User
+label.adding.zone=Adding Zone
 label.add.ip.range=Add IP Range
+label.additional.networks=Additional Networks
 label.add.load.balancer=Add Load Balancer
 label.add.more=Add More
+label.add.netScaler.device=Add Netscaler device
+label.add.network.ACL=Add network ACL
 label.add.network=Add Network
+label.add.network.device=Add Network Device
+label.add.network.offering=Add network offering
+label.add.new.F5=Add new F5
+label.add.new.gateway=Add new gateway
+label.add.new.NetScaler=Add new NetScaler
+label.add.new.SRX=Add new SRX
+label.add.new.tier=Add new tier
+label.add.NiciraNvp.device=Add Nvp Controller
+label.add.physical.network=Add physical network
 label.add.pod=Add Pod
+label.add.port.forwarding.rule=Add port forwarding rule
 label.add.primary.storage=Add Primary Storage
+label.add.region=Add Region
+label.add.resources=Add Resources
+label.add.route=Add route
+label.add.rule=Add rule
 label.add.secondary.storage=Add Secondary Storage
 label.add.security.group=Add Security Group
 label.add.service.offering=Add Service Offering
+label.add.SRX.device=Add SRX device
+label.add.static.nat.rule=Add static NAT rule
+label.add.static.route=Add static route
+label.add.system.service.offering=Add System Service Offering
 label.add.template=Add Template
+label.add.to.group=Add to group
 label.add.user=Add User
 label.add.vlan=Add VLAN
+label.add.vm=Add VM
+label.add.vms=Add VMs
+label.add.vms.to.lb=Add VM(s) to load balancer rule
+label.add.VM.to.tier=Add VM to tier
 label.add.volume=Add Volume
+label.add.vpc=Add VPC
+label.add.vpn.customer.gateway=Add VPN Customer Gateway
+label.add.VPN.gateway=Add VPN Gateway
+label.add.vpn.user=Add VPN user
 label.add.zone=Add Zone
-label.add=Add
-label.adding.cluster=Adding Cluster
-label.adding.failed=Adding Failed
-label.adding.pod=Adding Pod
-label.adding.processing=Adding....
-label.adding.succeeded=Adding Succeeded
-label.adding.user=Adding User
-label.adding.zone=Adding Zone
-label.adding=Adding
-label.additional.networks=Additional Networks
 label.admin.accounts=Admin Accounts
 label.admin=Admin
+label.advanced=Advanced
 label.advanced.mode=Advanced Mode
 label.advanced.search=Advance Search
-label.advanced=Advanced
+label.agent.password=Agent Password
+label.agent.username=Agent Username
+label.agree=Agree
 label.alert=Alert
 label.algorithm=Algorithm
 label.allocated=Allocated
+label.allocation.state=Allocation State
 label.api.key=API Key
-label.assign.to.load.balancer=Assigning instance to load balancer
+label.apply=Apply
 label.assign=Assign
+label.assign.to.load.balancer=Assigning instance to load balancer
+label.associated.network=Associated Network
 label.associated.network.id=Associated Network ID
 label.attached.iso=Attached ISO
-label.availability.zone=Availability Zone
+label.author.email=Author e-mail
+label.author.name=Author name
 label.availability=Availability
-label.available.public.ips=Available Public IP Addresses
+label.availability.zone=Availability Zone
 label.available=Available
+label.available.public.ips=Available Public IP Addresses
 label.back=Back
+label.bandwidth=Bandwidth
+label.basic=Basic
 label.basic.mode=Basic Mode
+label.bigswitch.controller.address=BigSwitch Vns Controller Address
 label.bootable=Bootable
+label.broadcast.domain.range=Broadcast domain range
 label.broadcast.domain.type=Broadcast Domain Type
+label.broadcast.uri=Broadcast URI
 label.by.account=By Account
 label.by.availability=By Availability
 label.by.domain=By Domain
@@ -1034,30 +350,64 @@ label.by.pod=By Pod
 label.by.role=By Role
 label.by.start.date=By Start Date
 label.by.state=By State
+label.bytes.received=Bytes Received
+label.bytes.sent=Bytes Sent
 label.by.traffic.type=By Traffic Type
-label.by.type.id=By Type ID
 label.by.type=By Type
+label.by.type.id=By Type ID
 label.by.zone=By Zone
-label.bytes.received=Bytes Received
-label.bytes.sent=Bytes Sent
 label.cancel=Cancel
+label.capacity=Capacity
 label.certificate=Certificate
-label.privatekey=PKCS#8 Private Key
-label.domain.suffix=DNS Domain Suffix (i.e., xyz.com)
+label.change.service.offering=Change service offering
+label.change.value=Change value
 label.character=Character
+label.checksum=MD5 checksum
 label.cidr.account=CIDR or Account/Security Group
+label.cidr=CIDR
+label.CIDR.list=CIDR list
+label.cidr.list=Source CIDR
+label.CIDR.of.destination.network=CIDR of destination network
+label.clean.up=Clean up
+label.clear.list=Clear list
 label.close=Close
 label.cloud.console=Cloud Management Console
 label.cloud.managed=Cloud.com Managed
-label.cluster.type=Cluster Type
 label.cluster=Cluster
+label.cluster.name=Cluster Name
+label.clusters=Clusters
+label.cluster.type=Cluster Type
+label.clvm=CLVM
 label.code=Code
+label.community=Community
+label.compute.and.storage=Compute and Storage
+label.compute=Compute
+label.compute.offering=Compute offering
+label.compute.offerings=Compute offerings
+label.configuration=Configuration
+label.configure=Configure
+label.configure.network.ACLs=Configure Network ACLs
+label.configure.vpc=Configure VPC
 label.confirmation=Confirmation
-label.cpu.allocated.for.VMs=CPU Allocated for VMs
+label.confirm.password=Confirm password
+label.congratulations=Congratulations!
+label.conserve.mode=Conserve mode
+label.console.proxy=Console proxy
+label.continue.basic.install=Continue with basic installation
+label.continue=Continue
+label.corrections.saved=Corrections saved
 label.cpu.allocated=CPU Allocated
-label.cpu.utilized=CPU Utilized
+label.cpu.allocated.for.VMs=CPU Allocated for VMs
+label.CPU.cap=CPU Cap
 label.cpu=CPU
+label.cpu.limits=CPU limits
+label.cpu.mhz=CPU (in MHz)
+label.cpu.utilized=CPU Utilized
+label.created.by.system=Created by system
 label.created=Created
+label.create.project=Create project
+label.create.template=Create template
+label.create.VPN.connection=Create VPN Connection
 label.cross.zones=Cross Zones
 label.custom.disk.size=Custom Disk Size
 label.daily=Daily
@@ -1065,47 +415,111 @@ label.data.disk.offering=Data Disk Offering
 label.date=Date
 label.day.of.month=Day of Month
 label.day.of.week=Day of Week
+label.dead.peer.detection=Dead Peer Detection
+label.decline.invitation=Decline invitation
+label.dedicated=Dedicated
+label.default=Default
+label.default.use=Default Use
+label.default.view=Default View
+label.delete.BigSwitchVns=Remove BigSwitch Vns Controller
 label.delete=Delete
+label.delete.F5=Delete F5
+label.delete.gateway=delete gateway
+label.delete.NetScaler=Delete NetScaler
+label.delete.NiciraNvp=Remove Nvp Controller
+label.delete.project=Delete project
+label.delete.SRX=Delete SRX
+label.delete.VPN.connection=delete VPN connection
+label.delete.VPN.customer.gateway=delete VPN Customer Gateway
+label.delete.VPN.gateway=delete VPN Gateway
+label.delete.vpn.user=Delete VPN user
 label.deleting.failed=Deleting Failed
 label.deleting.processing=Deleting....
 label.description=Description
+label.destination.physical.network.id=Destination physical network ID
+label.destination.zone=Destination Zone
+label.destroy=Destroy
+label.destroy.router=Destroy router
 label.detaching.disk=Detaching Disk
 label.details=Details
 label.device.id=Device ID
+label.devices=Devices
+label.dhcp=DHCP
+label.DHCP.server.type=DHCP Server Type
+label.direct.ips=Shared Network IPs
 label.disabled=Disabled
+label.disable.provider=Disable provider
+label.disable.vpn=Disable VPN
 label.disabling.vpn.access=Disabling VPN Access
 label.disk.allocated=Disk Allocated
 label.disk.offering=Disk Offering
-label.disk.size.gb=Disk Size (in GB)
 label.disk.size=Disk Size
+label.disk.size.gb=Disk Size (in GB)
 label.disk.total=Disk Total
 label.disk.volume=Disk Volume
+label.display.name=Display name
 label.display.text=Display Text
 label.dns.1=DNS 1
 label.dns.2=DNS 2
+label.dns=DNS
+label.DNS.domain.for.guest.networks=DNS domain for Guest Networks
 label.domain.admin=Domain Admin
+label.domain=Domain
 label.domain.id=Domain ID
 label.domain.name=Domain Name
-label.domain=Domain
+label.domain.router=Domain router
+label.domain.suffix=DNS Domain Suffix (i.e., xyz.com)
+label.done=Done
 label.double.quotes.are.not.allowed=Double quotes are not allowed
 label.download.progress=Download Progress
+label.drag.new.position=Drag to new position
 label.edit=Edit
+label.edit.lb.rule=Edit LB rule
+label.edit.network.details=Edit network details
+label.edit.project.details=Edit project details
+label.edit.tags=Edit tags
+label.edit.traffic.type=Edit traffic type
+label.edit.vpc=Edit VPC
+label.egress.rule=Egress rule
+label.egress.rules=Egress rules
+label.elastic=Elastic
+label.elastic.IP=Elastic IP
+label.elastic.LB=Elastic LB
 label.email=Email
+label.enable.provider=Enable provider
+label.enable.s3=Enable S3-backed Secondary Storage
+label.enable.swift=Enable Swift
+label.enable.vpn=Enable VPN
 label.enabling.vpn.access=Enabling VPN Access
 label.enabling.vpn=Enabling VPN
-label.end.port=End Port
+label.end.IP=End IP
+label.endpoint=Endpoint
 label.endpoint.or.operation=Endpoint or Operation
+label.end.port=End Port
+label.end.reserved.system.IP=End Reserved system IP
+label.end.vlan=End Vlan
+label.enter.token=Enter token
 label.error.code=Error Code
 label.error=Error
+label.ESP.encryption=ESP Encryption
+label.ESP.hash=ESP Hash
+label.ESP.lifetime=ESP Lifetime (second)
+label.ESP.lifetime=ESP Lifetime(second)
+label.ESP.policy=ESP policy
 label.esx.host=ESX/ESXi Host
 label.example=Example
+label.external.link=External link
+label.f5=F5
 label.failed=Failed
 label.featured=Featured
+label.fetch.latest=Fetch latest
+label.filterBy=Filter by
 label.firewall=Firewall
 label.first.name=First Name
 label.format=Format
 label.friday=Friday
 label.full=Full
+label.full.path=Full path
 label.gateway=Gateway
 label.general.alerts=General Alerts
 label.generating.url=Generating URL
@@ -1113,75 +527,157 @@ label.go.step.2=Go to Step 2
 label.go.step.3=Go to Step 3
 label.go.step.4=Go to Step 4
 label.go.step.5=Go to Step 5
-label.group.optional=Group (Optional)
 label.group=Group
+label.group.optional=Group (Optional)
 label.guest.cidr=Guest CIDR
+label.guest.end.ip=Guest end IP
 label.guest.gateway=Guest Gateway
-label.guest.ip.range=Guest IP Range
+label.guest=Guest
 label.guest.ip=Guest IP Address
+label.guest.ip.range=Guest IP Range
 label.guest.netmask=Guest Netmask
+label.guest.networks=Guest networks
+label.guest.start.ip=Guest start IP
+label.guest.traffic=Guest Traffic
+label.guest.type=Guest Type
 label.ha.enabled=HA Enabled
 label.help=Help
+label.hide.ingress.rule=Hide Ingress Rule
+label.hints=Hints
 label.host.alerts=Host Alerts
-label.host.name=Host Name
 label.host=Host
+label.host.MAC=Host MAC
+label.host.name=Host Name
 label.hosts=Hosts
+label.host.tags=Host Tags 
 label.hourly=Hourly
-label.hypervisor.type=Hypervisor Type
+label.hypervisor.capabilities=Hypervisor capabilities
 label.hypervisor=Hypervisor
+label.hypervisor.type=Hypervisor Type
+label.hypervisor.version=Hypervisor version
 label.id=ID
+label.IKE.DH=IKE DH
+label.IKE.encryption=IKE Encryption
+label.IKE.hash=IKE Hash
+label.IKE.lifetime=IKE lifetime (second)
+label.IKE.lifetime=IKE Lifetime (second)
+label.IKE.policy=IKE policy
 label.info=Info
 label.ingress.rule=Ingress Rule
 label.initiated.by=Initiated By
+label.installWizard.addClusterIntro.subtitle=What is a cluster?
+label.installWizard.addClusterIntro.title=Let&rsquo;s add a cluster
+label.installWizard.addHostIntro.subtitle=What is a host?
+label.installWizard.addHostIntro.title=Let&rsquo;s add a host
+label.installWizard.addPodIntro.subtitle=What is a pod?
+label.installWizard.addPodIntro.title=Let&rsquo;s add a pod
+label.installWizard.addPrimaryStorageIntro.subtitle=What is primary storage?
+label.installWizard.addPrimaryStorageIntro.title=Let&rsquo;s add primary storage
+label.installWizard.addSecondaryStorageIntro.subtitle=What is secondary storage?
+label.installWizard.addSecondaryStorageIntro.title=Let&rsquo;s add secondary storage
+label.installWizard.addZoneIntro.subtitle=What is a zone?
+label.installWizard.addZoneIntro.title=Let&rsquo;s add a zone
+label.installWizard.addZone.title=Add zone
+label.installWizard.click.launch=Click the launch button.
+label.installWizard.subtitle=This tour will aid you in setting up your CloudStack&#8482 installation
+label.installWizard.title=Hello and Welcome to CloudStack&#8482
+label.instance=Instance
 label.instance.limits=Instance Limits
 label.instance.name=Instance Name
-label.instance=Instance
 label.instances=Instances
 label.internal.dns.1=Internal DNS 1
 label.internal.dns.2=Internal DNS 2
+label.internal.name=Internal name
 label.interval.type=Interval Type
+label.introduction.to.cloudstack=Introduction to CloudStack&#8482
 label.invalid.integer=Invalid Integer
 label.invalid.number=Invalid Number
+label.invitations=Invitations
+label.invited.accounts=Invited accounts
+label.invite=Invite
+label.invite.to=Invite to
 label.ip.address=IP Address
+label.ipaddress=IP Address
 label.ip.allocations=IP Allocations
+label.ip=IP
 label.ip.limits=Public IP Limits
 label.ip.or.fqdn=IP or FQDN
 label.ip.range=IP Range
-label.ip=IP
+label.ip.ranges=IP Ranges
+label.IPsec.preshared.key=IPsec Preshared-Key
 label.ips=IPs
-label.is.default=Is Default
-label.is.shared=Is Shared
-label.is.system=Is System
 label.iscsi=iSCSI
+label.is.default=Is Default
 label.iso.boot=ISO Boot
 label.iso=ISO
+label.isolated.networks=Isolated networks
+label.isolation.method=Isolation method
 label.isolation.mode=Isolation Mode
+label.isolation.uri=Isolation URI
+label.is.redundant.router=Redundant
+label.is.shared=Is Shared
+label.is.system=Is System
+label.item.listing=Item listing
 label.keep=Keep
+label.keyboard.type=Keyboard type
+label.key=Key
+label.kvm.traffic.label=KVM traffic label
+label.label=Label
+label.lang.brportugese=Brazilian Portugese
 label.lang.chinese=Chinese (Simplified)
 label.lang.english=English
+label.lang.french=French
 label.lang.japanese=Japanese
-label.lang.spanish=Spanish
 label.lang.korean=Korean
 label.lang.russian=Russian
-label.lang.french=French
-label.lang.brportugese=Brazilian Portugese
+label.lang.spanish=Spanish
 label.last.disconnected=Last Disconnected
 label.last.name=Last Name
+label.latest.events=Latest events
+label.launch=Launch
+label.launch.vm=Launch VM
+label.launch.zone=Launch zone 
+label.LB.isolation=LB isolation
+label.least.connections=Least connections
 label.level=Level
 label.linklocal.ip=Link Local IP Adddress
 label.load.balancer=Load Balancer
+label.load.balancing=Load Balancing
+label.load.balancing.policies=Load balancing policies
 label.loading=Loading
 label.local=Local
+label.local.storage.enabled=Local storage enabled
 label.local.storage.enabled=Local Storage Enabled
+label.local.storage=Local Storage
 label.login=Login
 label.logout=Logout
 label.lun=LUN
+label.LUN.number=LUN #
+label.make.project.owner=Make account project owner
 label.manage=Manage
+label.management.ips=Management IP Addresses
+label.management=Management
+label.manage.resources=Manage Resources
+label.max.cpus=Max. CPU cores
+label.max.guest.limit=Max guest limit
 label.maximum=Maximum
+label.max.memory=Max. memory (MiB)
+label.max.networks=Max. networks
+label.max.primary.storage=Max. primary (GiB)
+label.max.public.ips=Max. public IPs
+label.max.secondary.storage=Max. secondary (GiB)
+label.max.snapshots=Max. snapshots
+label.max.templates=Max. templates
+label.max.vms=Max. user VMs
+label.max.volumes=Max. volumes
+label.max.vpcs=Max. VPCs
+label.may.continue=You may now continue.
 label.memory.allocated=Memory Allocated
+label.memory.limits=Memory limits (MiB)
+label.memory.mb=Memory (in MB)
+label.memory=Memory
 label.memory.total=Memory Total
 label.memory.used=Memory Used
-label.memory=Memory
 label.menu.accounts=Accounts
 label.menu.alerts=Alerts
 label.menu.all.accounts=All Accounts
@@ -1197,6 +693,7 @@ label.menu.events=Events
 label.menu.featured.isos=Featured ISOs
 label.menu.featured.templates=Featured Templates
 label.menu.global.settings=Global Settings
+label.menu.infrastructure=Infrastructure
 label.menu.instances=Instances
 label.menu.ipaddresses=IP Addresses
 label.menu.isos=ISOs
@@ -1204,65 +701,112 @@ label.menu.my.accounts=My Accounts
 label.menu.my.instances=My Instances
 label.menu.my.isos=My ISOs
 label.menu.my.templates=My Templates
-label.menu.network.offerings=Network Offerings
 label.menu.network=Network
+label.menu.network.offerings=Network Offerings
 label.menu.physical.resources=Physical Resources
+label.menu.regions=Regions
 label.menu.running.instances=Running Instances
 label.menu.security.groups=Security Groups
 label.menu.service.offerings=Service Offerings
 label.menu.snapshots=Snapshots
 label.menu.stopped.instances=Stopped Instances
 label.menu.storage=Storage
-label.menu.system.vms=System VMs
+label.menu.system.service.offerings=System Offerings
 label.menu.system=System
+label.menu.system.vms=System VMs
 label.menu.templates=Templates
 label.menu.virtual.appliances=Virtual Appliances
 label.menu.virtual.resources=Virtual Resources
 label.menu.volumes=Volumes
+label.migrate.instance.to.host=Migrate instance to another host
 label.migrate.instance.to=Migrate instance to
+label.migrate.instance.to.ps=Migrate instance to another primary storage
+label.migrate.router.to=Migrate Router to
+label.migrate.systemvm.to=Migrate System VM to
+label.migrate.to.host=Migrate to host
+label.migrate.to.storage=Migrate to storage
+label.migrate.volume=Migrate volume to another primary storage
 label.minimum=Minimum
 label.minute.past.hour=minute(s) Past the Hour
 label.monday=Monday
 label.monthly=Monthly
 label.more.templates=More Templates
+label.move.down.row=Move down one row
+label.move.to.bottom=Move to bottom
+label.move.to.top=Move to top
+label.move.up.row=Move up one row
 label.my.account=My Account
-label.name.optional=Name (Optional)
+label.my.network=My network
+label.my.templates=My templates
 label.name=Name
+label.name.optional=Name (Optional)
+label.nat.port.range=NAT Port Range
 label.netmask=Netmask
+label.netScaler=NetScaler
+label.network.ACL=Network ACL
+label.network.ACLs=Network ACLs
+label.network.ACL.total=Network ACL Total
 label.network.desc=Network Desc
+label.network.device=Network Device
+label.network.device.type=Network Device Type
 label.network.domain=Network Domain
+label.network.domain.text=Network domain
 label.network.id=Network ID
+label.networking.and.security=Networking and security
+label.network.label.display.for.blank.value=Use default gateway
 label.network.name=Network Name
+label.network=Network
 label.network.offering.display.text=Network Offering Display Text
 label.network.offering.id=Network Offering ID
 label.network.offering.name=Network Offering Name
 label.network.offering=Network Offering
-label.network.rate=Network Rate
 label.network.rate.megabytes=Network Rate (Mb/s)
+label.network.rate=Network Rate
 label.network.read=Network Read
+label.network.service.providers=Network Service Providers
+label.networks=Networks
 label.network.type=Network Type
 label.network.write=Network Write
-label.network=Network
+label.new=New
 label.new.password=New Password
+label.new.project=New Project
+label.new.vm=New VM
 label.next=Next
+label.nexusVswitch=Nexus 1000v
+label.nfs=NFS
 label.nfs.server=NFS Server
 label.nfs.storage=NFS Storage
-label.nfs=NFS
+label.nic.adapter.type=NIC adapter type
+label.nicira.controller.address=Controller Address
+label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
+label.nicira.transportzoneuuid=Transport Zone Uuid
 label.nics=NICs
 label.no.actions=No Available Actions
 label.no.alerts=No Recent Alerts
+label.no.data=No data to show
 label.no.errors=No Recent Errors
 label.no.isos=No available ISOs
 label.no.items=No Available Items
-label.no.security.groups=No Available Security Groups
-label.no.thanks=No Thanks
-label.no=No
 label.none=None
+label.no=No
+label.no.security.groups=No Available Security Groups
 label.not.found=Not Found
+label.no.thanks=No thanks
+label.no.thanks=No Thanks
+label.notifications=Notifications
+label.number.of.clusters=Number of Clusters
+label.number.of.hosts=Number of Hosts
+label.number.of.pods=Number of Pods
+label.number.of.system.vms=Number of System VMs
+label.number.of.virtual.routers=Number of Virtual Routers
+label.number.of.zones=Number of Zones
 label.num.cpu.cores=# of CPU Cores
 label.numretries=Number of Retries
+label.ocfs2=OCFS2
 label.offer.ha=Offer HA
+label.ok=OK
 label.optional=Optional
+label.order=Order
 label.os.preference=OS Preference
 label.os.type=OS Type
 label.owned.public.ips=Owned Public IP Addresses
@@ -1272,110 +816,259 @@ label.parent.domain=Parent Domain
 label.password.enabled=Password Enabled
 label.password=Password
 label.path=Path
+label.perfect.forward.secrecy=Perfect Forward Secrecy
+label.physical.network.ID=Physical network ID
+label.physical.network=Physical Network        
+label.PING.CIFS.password=PING CIFS password
+label.PING.CIFS.username=PING CIFS username
+label.PING.dir=PING Directory
+label.PING.storage.IP=PING storage IP
+label.please.specify.netscaler.info=Please specify Netscaler info
 label.please.wait=Please Wait
+label.plugin.details=Plugin details
+label.plugins=Plugins
+label.pod.name=Pod name
 label.pod=Pod
+label.pods=Pods
+label.port.forwarding.policies=Port forwarding policies
 label.port.forwarding=Port Forwarding
 label.port.range=Port Range
+label.PreSetup=PreSetup
+label.previous=Previous
 label.prev=Prev
 label.primary.allocated=Primary Storage Allocated
 label.primary.network=Primary Network
+label.primary.storage.count=Primary Storage Pools
+label.primary.storage.limits=Primary Storage limits (GiB)
 label.primary.storage=Primary Storage
 label.primary.used=Primary Storage Used
+label.private.Gateway=Private Gateway
 label.private.interface=Private Interface
-label.private.ip.range=Private IP Range
 label.private.ip=Private IP Address
+label.private.ip.range=Private IP Range
 label.private.ips=Private IP Addresses
+label.privatekey=PKCS#8 Private Key
+label.private.network=Private network
 label.private.port=Private Port
 label.private.zone=Private Zone
+label.project.dashboard=Project dashboard
+label.project.id=Project ID
+label.project.invite=Invite to project
+label.project.name=Project name
+label.project=Project
+label.projects=Projects
+label.project.view=Project View
 label.protocol=Protocol
+label.providers=Providers
 label.public.interface=Public Interface
 label.public.ip=Public IP Address
 label.public.ips=Public IP Addresses
+label.public.network=Public network
 label.public.port=Public Port
-label.public.zone=Public Zone
 label.public=Public
+label.public.traffic=Public traffic     
+label.public.zone=Public Zone
+label.purpose=Purpose
+label.Pxe.server.type=Pxe Server Type
+label.quickview=Quickview
+label.reboot=Reboot
 label.recent.errors=Recent Errors
+label.redundant.router.capability=Redundant router capability
+label.redundant.router=Redundant Router
+label.redundant.state=Redundant state
 label.refresh=Refresh
+label.region=Region
 label.related=Related
+label.remind.later=Remind me later
+label.remove.ACL=Remove ACL
+label.remove.egress.rule=Remove egress rule
 label.remove.from.load.balancer=Removing instance from load balancer
+label.remove.ingress.rule=Remove ingress rule
+label.remove.ip.range=Remove IP range
+label.remove.pf=Remove port forwarding rule
+label.remove.project.account=Remove account from project
+label.remove.project.account=Remove project account
+label.remove.region=Remove Region
+label.remove.rule=Remove rule
+label.remove.static.nat.rule=Remove static NAT rule
+label.remove.static.route=Remove static route
+label.remove.tier=Remove tier
+label.remove.vm.from.lb=Remove VM from load balancer rule
+label.remove.vpc=remove VPC
+label.removing=Removing
 label.removing.user=Removing User
 label.required=Required
+label.reserved.system.gateway=Reserved system gateway
 label.reserved.system.ip=Reserved System IP
+label.reserved.system.netmask=Reserved system netmask
+label.reset.VPN.connection=Reset VPN connection
+label.resize.new.offering.id=New Offering
+label.resize.new.size=New Size(GB)
+label.resize.shrink.ok=Shrink OK
 label.resource.limits=Resource Limits
 label.resource=Resource
 label.resources=Resources
+label.resource.state=Resource state
+label.restart.network=Restart network
+label.restart.required=Restart required
+label.restart.vpc=restart VPC
+label.restore=Restore
+label.review=Review
+label.revoke.project.invite=Revoke invitation
 label.role=Role
+label.root.disk.controller=Root disk controller
 label.root.disk.offering=Root Disk Offering
+label.round.robin=Round-robin
+label.rules=Rules
 label.running.vms=Running VMs
+label.s3.access_key=Access Key
+label.s3.bucket=Bucket
+label.s3.connection_timeout=Connection Timeout
+label.s3.endpoint=Endpoint
+label.s3.max_error_retry=Max Error Retry
+label.s3.secret_key=Secret Key
+label.s3.socket_timeout=Socket Timeout
+label.s3.use_https=Use HTTPS
 label.saturday=Saturday
+label.save.and.continue=Save and continue
 label.save=Save
 label.saving.processing=Saving....
 label.scope=Scope
 label.search=Search
+label.secondary.storage.count=Secondary Storage Pools
+label.secondary.storage.limits=Secondary Storage limits (GiB)
 label.secondary.storage=Secondary Storage
+label.secondary.storage.vm=Secondary storage VM
 label.secondary.used=Secondary Storage Used
 label

<TRUNCATED>

[45/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - extend listNetworks API to return zone type.


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

Branch: refs/heads/internallb
Commit: 16ba999bf1102938779f0b773984695b75ccd77e
Parents: 35e2072
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 12:25:34 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 13:01:55 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/api/response/NetworkResponse.java   |    7 +++++++
 server/src/com/cloud/api/ApiResponseHelper.java    |    1 +
 2 files changed, 8 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/16ba999b/api/src/org/apache/cloudstack/api/response/NetworkResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/NetworkResponse.java b/api/src/org/apache/cloudstack/api/response/NetworkResponse.java
index cd32ded..3f366e2 100644
--- a/api/src/org/apache/cloudstack/api/response/NetworkResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/NetworkResponse.java
@@ -66,6 +66,9 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
 
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the name of the zone the network belongs to")
     private String zoneName;
+    
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description="the networktype of the zone the network belongs to")
+    private String zoneType;
 
     @SerializedName("networkofferingid") @Param(description="network offering id the network is created from")
     private String networkOfferingId;
@@ -291,6 +294,10 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setCidr(String cidr) {
         this.cidr = cidr;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/16ba999b/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index a7d6165..84dc46e 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -2354,6 +2354,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         if (zone != null) {
             response.setZoneId(zone.getUuid());
             response.setZoneName(zone.getName());
+            response.setZoneType(zone.getNetworkType().toString());
         }
         if (network.getPhysicalNetworkId() != null) {
             PhysicalNetworkVO pnet = ApiDBUtils.findPhysicalNetworkById(network.getPhysicalNetworkId());


[23/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2135: fix the string formatting error in cloudstackConnection.py

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


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

Branch: refs/heads/internallb
Commit: 9572f576483796beb85c7aeb5e0ce3925aee9e42
Parents: f1b9ef8
Author: Talluri <Sr...@citrix.com>
Authored: Mon Apr 22 21:31:31 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Mon Apr 22 19:35:22 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/cloudstackConnection.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9572f576/tools/marvin/marvin/cloudstackConnection.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/cloudstackConnection.py b/tools/marvin/marvin/cloudstackConnection.py
index 14b12e7..214a878 100644
--- a/tools/marvin/marvin/cloudstackConnection.py
+++ b/tools/marvin/marvin/cloudstackConnection.py
@@ -137,7 +137,7 @@ class cloudConnection(object):
             else:
                 response = requests.get(self.baseurl, params=payload)
         except ConnectionError, c:
-            self.logging.debug("Connection refused. Reason: %s" %
+            self.logging.debug("Connection refused. Reason: %s : %s" %
                                (self.baseurl, c))
             raise c
         except HTTPError, h:


[03/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-382: Clarifying storage type in documentation as secondary storage.


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

Branch: refs/heads/internallb
Commit: 489e13eabcef57a32380875b06a2f38a5e4e64a7
Parents: 39abaf6
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 17:41:23 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 17:42:28 2013 -0500

----------------------------------------------------------------------
 docs/en-US/advanced-zone-network-traffic-types.xml |    2 +-
 docs/en-US/basic-zone-network-traffic-types.xml    |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489e13ea/docs/en-US/advanced-zone-network-traffic-types.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/advanced-zone-network-traffic-types.xml b/docs/en-US/advanced-zone-network-traffic-types.xml
index d803592..4d1f465 100644
--- a/docs/en-US/advanced-zone-network-traffic-types.xml
+++ b/docs/en-US/advanced-zone-network-traffic-types.xml
@@ -28,7 +28,7 @@
         <listitem><para>Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. This network can be isolated or shared. In an isolated guest network, the administrator needs to reserve VLAN ranges to provide isolation for each &PRODUCT; account’s network (potentially a large number of VLANs). In a shared guest network, all guest VMs share a single network.</para></listitem>
         <listitem><para>Management. When &PRODUCT;’s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para></listitem>
         <listitem><para>Public. Public traffic is generated when VMs in the cloud access the Internet. Publicly accessible IPs must be allocated for this purpose. End users can use the &PRODUCT; UI to acquire these IPs to implement NAT between their guest network and the public network, as described in “Acquiring a New IP Address” in the Administration Guide.</para></listitem>
-        <listitem><para>Storage. Traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
+        <listitem><para>Storage. While labeled "storage" this is specifically about secondary storage, and doesn't affect traffic for primary storage. This includes traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
     </itemizedlist>
     <para>These traffic types can each be on a separate physical network, or they can be combined with certain restrictions. When you use the Add Zone wizard in the UI to create a new zone, you are guided into making only valid choices.</para>
 </section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489e13ea/docs/en-US/basic-zone-network-traffic-types.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/basic-zone-network-traffic-types.xml b/docs/en-US/basic-zone-network-traffic-types.xml
index 70789d0..8503736 100644
--- a/docs/en-US/basic-zone-network-traffic-types.xml
+++ b/docs/en-US/basic-zone-network-traffic-types.xml
@@ -26,10 +26,10 @@
     <para>When basic networking is used, there can be only one physical network in the zone. That physical network carries the following traffic types:</para>
     <itemizedlist>
         <listitem><para>Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. Each pod in a basic zone is a broadcast domain, and therefore each pod has a different IP range for the guest network. The administrator must configure the IP range for each pod.</para></listitem>
-        <listitem><para>Management. When &PRODUCT;’s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para>
+        <listitem><para>Management. When &PRODUCT;'s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para>
             <note><para>We strongly recommend the use of separate NICs for management traffic and guest traffic.</para></note></listitem>
         <listitem><para>Public. Public traffic is generated when VMs in the cloud access the Internet. Publicly accessible IPs must be allocated for this purpose. End users can use the &PRODUCT; UI to acquire these IPs to implement NAT between their guest network and the public network, as described in Acquiring a New IP Address.</para></listitem>
-        <listitem><para>Storage. Traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
+        <listitem><para>Storage. While labeled "storage" this is specifically about secondary storage, and doesn't affect traffic for primary storage. This includes traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
     </itemizedlist>
     <para>In a basic network, configuring the physical network is fairly straightforward. In most cases, you only need to configure one guest network to carry traffic that is generated by guest VMs. If you use a NetScaler load balancer and enable its elastic IP and elastic load balancing (EIP and ELB) features, you must also configure a network to carry public traffic. &PRODUCT; takes care of presenting the necessary network configuration steps to you in the UI when you add a new zone.</para>
 </section>


[12/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
fixing build errors. Missing hypervisor-host-install-primary-storage.xml, feedback.xml


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

Branch: refs/heads/internallb
Commit: 8c1fcef14d2b241aed563792059251a5f3599f92
Parents: 130492d
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 14:00:44 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 14:02:29 2013 +0530

----------------------------------------------------------------------
 docs/en-US/changed-API-commands-4.2.xml            |  107 +++++++++++
 docs/en-US/hypervisor-kvm-install-flow.xml         |    2 +-
 .../hypervisor-support-for-primarystorage.xml      |  148 ++++++++-------
 docs/en-US/limit-accounts-domains.xml              |    2 +-
 4 files changed, 189 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c1fcef1/docs/en-US/changed-API-commands-4.2.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/changed-API-commands-4.2.xml b/docs/en-US/changed-API-commands-4.2.xml
new file mode 100644
index 0000000..cbaa2e3
--- /dev/null
+++ b/docs/en-US/changed-API-commands-4.2.xml
@@ -0,0 +1,107 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+<!-- 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.
+-->
+<section id="changed-API-commands-4.2">
+  <title>Changed API Commands in 4.2</title>
+  <informaltable>
+    <tgroup cols="2" align="left" colsep="1" rowsep="1">
+      <thead>
+        <row>
+          <entry><para>Parameter Name</para></entry>
+          <entry><para>Description</para></entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry><para>updateResourceLimit</para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter to set the limits:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+        <row>
+          <entry><para>updateResourceCount</para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter to set the limits:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+        <row>
+          <entry><para>listResourceLimits </para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c1fcef1/docs/en-US/hypervisor-kvm-install-flow.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/hypervisor-kvm-install-flow.xml b/docs/en-US/hypervisor-kvm-install-flow.xml
index 7dfd47d..aa19e47 100644
--- a/docs/en-US/hypervisor-kvm-install-flow.xml
+++ b/docs/en-US/hypervisor-kvm-install-flow.xml
@@ -34,5 +34,5 @@
     <xi:include href="hypervisor-host-install-network-openvswitch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="hypervisor-host-install-firewall.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="hypervisor-host-install-finish.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="hypervisor-host-install-primary-storage.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+  <xi:include href="hypervisor-support-for-primarystorage.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 </section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c1fcef1/docs/en-US/hypervisor-support-for-primarystorage.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/hypervisor-support-for-primarystorage.xml b/docs/en-US/hypervisor-support-for-primarystorage.xml
index 7c2596e..fdef1f2 100644
--- a/docs/en-US/hypervisor-support-for-primarystorage.xml
+++ b/docs/en-US/hypervisor-support-for-primarystorage.xml
@@ -22,71 +22,83 @@
 	under the License.
 -->
 <section id="hypervisor-support-for-primarystorage">
-	<title>Hypervisor Support for Primary Storage</title>
-	<para>The following table shows storage options and parameters for different hypervisors.</para>
-	<informaltable>
-		<tgroup cols="5">
-			<colspec colname="c1" colnum="1" colwidth="34%" />
-			<colspec colname="c2" colnum="2" colwidth="16%" />
-			<colspec colname="c3" colnum="3" colwidth="16%"/>
-			<colspec colname="c4" colnum="4" colwidth="17%"/>
-			<colspec colname="c5" colnum="5" colwidth="17%"/>
-			<thead>
-				<row>
-					<entry></entry>
-					<entry><para>VMware vSphere</para></entry>
-					<entry><para>Citrix XenServer</para></entry>
-					<entry><para>KVM</para></entry>
-				</row>
-			</thead>
-			<tbody>
-				<row>
-					<entry><para><emphasis role="bold"><emphasis role="bold">Format for Disks, Templates, and
-									Snapshots</emphasis></emphasis></para></entry>
-					<entry><para>VMDK</para></entry>
-					<entry><para>VHD</para></entry>
-					<entry><para>QCOW2</para></entry>
-				</row>
-				<row>
-					<entry><para><emphasis role="bold">iSCSI support</emphasis></para></entry>
-					<entry><para>VMFS</para></entry>
-					<entry><para>Clustered LVM</para></entry>
-					<entry><para>Yes, via Shared Mountpoint</para></entry>
-				</row>
-				<row>
-					<entry><para><emphasis role="bold">Fiber Channel support</emphasis></para></entry>
-					<entry><para>VMFS</para></entry>
-					<entry><para>Yes, via Existing SR</para></entry>
-					<entry><para>Yes, via Shared Mountpoint</para></entry>
-				</row>
-				<row>
-					<entry><para><emphasis role="bold">NFS support</emphasis></para></entry>
-					<entry><para>Y</para></entry>
-					<entry><para>Y</para></entry>
-					<entry><para>Y</para></entry>
-				</row>
-				
-				<row>
-					<entry><para><emphasis role="bold">Local storage support</emphasis></para></entry>
-					<entry><para>Y</para></entry>
-					<entry><para>Y</para></entry>
-					<entry><para>Y</para></entry>
-				</row>
-				
-				<row>
-					<entry><para><emphasis role="bold">Storage over-provisioning</emphasis></para></entry>
-					<entry><para>NFS and iSCSI</para></entry>
-					<entry><para>NFS</para></entry>
-					<entry><para>NFS</para></entry>
-				</row>
-					
-			</tbody>
-		</tgroup>
-	</informaltable>
-	<para>XenServer uses a clustered LVM system to store VM images on iSCSI and Fiber Channel volumes and does not support over-provisioning in the hypervisor. The storage server itself, however, can support thin-provisioning.  As a result the &PRODUCT; can still support storage over-provisioning by running on thin-provisioned storage volumes.</para>
-	<para>KVM supports "Shared Mountpoint" storage.  A shared mountpoint is a file system path local to each server in a given cluster.  The path must be the same across all Hosts in the cluster, for example /mnt/primary1.  This shared mountpoint is assumed to be a clustered filesystem such as OCFS2.  In this case the &PRODUCT; does not attempt to mount or unmount the storage as is done with NFS.  The &PRODUCT; requires that the administrator insure that the storage is available</para>
-    <!--    <para>Oracle VM supports both iSCSI and NFS storage. When iSCSI is used with OVM, the &PRODUCT; administrator is responsible for setting up iSCSI on the host, including re-mounting the storage after the host recovers from a failure such as a network outage. With other hypervisors, &PRODUCT; takes care of mounting the iSCSI target on the host whenever it discovers a connection with an iSCSI server and unmounting the target when it discovers the connection is down.</para> -->
-	<para>With NFS storage, &PRODUCT; manages the overprovisioning. In this case the global configuration parameter storage.overprovisioning.factor controls the degree of overprovisioning. This is independent of hypervisor type.</para>
-    <para>Local storage is an option for primary storage for vSphere, XenServer, and KVM. When the local disk option is enabled, a local disk storage pool is automatically created on each host. To use local storage for the System Virtual Machines (such as the Virtual Router), set system.vm.use.local.storage to true in global configuration.</para>
-	<para>&PRODUCT; supports multiple primary storage pools in a Cluster. For example, you could provision 2 NFS servers in primary storage. Or you could provision 1 iSCSI LUN initially and then add a second iSCSI LUN when the first approaches capacity.</para>
-	</section>
+  <title>Hypervisor Support for Primary Storage</title>
+  <para>The following table shows storage options and parameters for different hypervisors.</para>
+  <informaltable>
+    <tgroup cols="5">
+      <colspec colname="c1" colnum="1" colwidth="34%"/>
+      <colspec colname="c2" colnum="2" colwidth="16%"/>
+      <colspec colname="c3" colnum="3" colwidth="16%"/>
+      <colspec colname="c4" colnum="4" colwidth="17%"/>
+      <colspec colname="c5" colnum="5" colwidth="17%"/>
+      <thead>
+        <row>
+          <entry/>
+          <entry><para>VMware vSphere</para></entry>
+          <entry><para>Citrix XenServer</para></entry>
+          <entry><para>KVM</para></entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry><para><emphasis role="bold"><emphasis role="bold">Format for Disks, Templates, and
+                  Snapshots</emphasis></emphasis></para></entry>
+          <entry><para>VMDK</para></entry>
+          <entry><para>VHD</para></entry>
+          <entry><para>QCOW2</para></entry>
+        </row>
+        <row>
+          <entry><para><emphasis role="bold">iSCSI support</emphasis></para></entry>
+          <entry><para>VMFS</para></entry>
+          <entry><para>Clustered LVM</para></entry>
+          <entry><para>Yes, via Shared Mountpoint</para></entry>
+        </row>
+        <row>
+          <entry><para><emphasis role="bold">Fiber Channel support</emphasis></para></entry>
+          <entry><para>VMFS</para></entry>
+          <entry><para>Yes, via Existing SR</para></entry>
+          <entry><para>Yes, via Shared Mountpoint</para></entry>
+        </row>
+        <row>
+          <entry><para><emphasis role="bold">NFS support</emphasis></para></entry>
+          <entry><para>Y</para></entry>
+          <entry><para>Y</para></entry>
+          <entry><para>Y</para></entry>
+        </row>
+        <row>
+          <entry><para><emphasis role="bold">Local storage support</emphasis></para></entry>
+          <entry><para>Y</para></entry>
+          <entry><para>Y</para></entry>
+          <entry><para>Y</para></entry>
+        </row>
+        <row>
+          <entry><para><emphasis role="bold">Storage over-provisioning</emphasis></para></entry>
+          <entry><para>NFS and iSCSI</para></entry>
+          <entry><para>NFS</para></entry>
+          <entry><para>NFS</para></entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+  <para>XenServer uses a clustered LVM system to store VM images on iSCSI and Fiber Channel volumes
+    and does not support over-provisioning in the hypervisor. The storage server itself, however,
+    can support thin-provisioning. As a result the &PRODUCT; can still support storage
+    over-provisioning by running on thin-provisioned storage volumes.</para>
+  <para>KVM supports "Shared Mountpoint" storage. A shared mountpoint is a file system path local to
+    each server in a given cluster. The path must be the same across all Hosts in the cluster, for
+    example /mnt/primary1. This shared mountpoint is assumed to be a clustered filesystem such as
+    OCFS2. In this case the &PRODUCT; does not attempt to mount or unmount the storage as is done
+    with NFS. The &PRODUCT; requires that the administrator insure that the storage is
+    available</para>
+  <!--    <para>Oracle VM supports both iSCSI and NFS storage. When iSCSI is used with OVM, the &PRODUCT; administrator is responsible for setting up iSCSI on the host, including re-mounting the storage after the host recovers from a failure such as a network outage. With other hypervisors, &PRODUCT; takes care of mounting the iSCSI target on the host whenever it discovers a connection with an iSCSI server and unmounting the target when it discovers the connection is down.</para> -->
+  <para>With NFS storage, &PRODUCT; manages the overprovisioning. In this case the global
+    configuration parameter storage.overprovisioning.factor controls the degree of overprovisioning.
+    This is independent of hypervisor type.</para>
+  <para>Local storage is an option for primary storage for vSphere, XenServer, and KVM. When the
+    local disk option is enabled, a local disk storage pool is automatically created on each host.
+    To use local storage for the System Virtual Machines (such as the Virtual Router), set
+    system.vm.use.local.storage to true in global configuration.</para>
+  <para>&PRODUCT; supports multiple primary storage pools in a Cluster. For example, you could
+    provision 2 NFS servers in primary storage. Or you could provision 1 iSCSI LUN initially and
+    then add a second iSCSI LUN when the first approaches capacity.</para>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8c1fcef1/docs/en-US/limit-accounts-domains.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/limit-accounts-domains.xml b/docs/en-US/limit-accounts-domains.xml
index 64a886e..da45dab 100644
--- a/docs/en-US/limit-accounts-domains.xml
+++ b/docs/en-US/limit-accounts-domains.xml
@@ -176,7 +176,7 @@
         <para>If any operation needs to pass through two of more resource limit check, then the
           lower of 2 limits will be enforced, For e.g. if an account has VM limit of 10 and CPU
           limit of 20 and user under that account requests 5 VMs of 4 CPUs each, after this user can
-          deploy 5 more VMs(because VM limit is 10) but user has exausted his CPU limit and cannot
+          deploy 5 more VMs(because VM limit is 10) but user has exhausted his CPU limit and cannot
           deploy any more instance.</para>
       </listitem>
     </itemizedlist>


[30/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - revert change in schema-40to410.sql since listVirtualMachines API change will be in 4.2 release only.


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

Branch: refs/heads/internallb
Commit: 0978df95adae173a00ef11ae26106b561c0927f4
Parents: 35306d4
Author: Jessica Wang <je...@apache.org>
Authored: Mon Apr 22 11:43:24 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 11:45:39 2013 -0700

----------------------------------------------------------------------
 setup/db/db/schema-40to410.sql |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0978df95/setup/db/db/schema-40to410.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-40to410.sql b/setup/db/db/schema-40to410.sql
index 57d6ab9..ff1d908 100644
--- a/setup/db/db/schema-40to410.sql
+++ b/setup/db/db/schema-40to410.sql
@@ -486,8 +486,7 @@ CREATE VIEW `cloud`.`user_vm_view` AS
         vm_instance.vm_type vm_type,
         data_center.id data_center_id,
         data_center.uuid data_center_uuid,
-        data_center.name data_center_name,
-        data_center.networktype data_center_type,
+        data_center.name data_center_name,        
         data_center.is_security_group_enabled security_group_enabled,
         host.id host_id,
         host.uuid host_uuid,
@@ -1456,8 +1455,7 @@ CREATE VIEW `cloud`.`storage_pool_view` AS
         cluster.cluster_type,
         data_center.id data_center_id,
         data_center.uuid data_center_uuid,
-        data_center.name data_center_name,
-        data_center.name data_center_type,
+        data_center.name data_center_name,        
         host_pod_ref.id pod_id,
         host_pod_ref.uuid pod_uuid,
         host_pod_ref.name pod_name,


[21/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2065: addNetscalerLoadBalancer is faling to persist
gslb_site_publicip and privateip in db table `external_load_balancer_devices`


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

Branch: refs/heads/internallb
Commit: f1b9ef858195f8a9c50e9f848547c8abb9c0e8d5
Parents: 6bd18d9
Author: Murali Reddy <mu...@citrix.com>
Authored: Mon Apr 22 19:01:32 2013 +0530
Committer: Murali Reddy <mu...@citrix.com>
Committed: Mon Apr 22 19:01:32 2013 +0530

----------------------------------------------------------------------
 .../ExternalLoadBalancerDeviceManagerImpl.java     |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f1b9ef85/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
index 7666397..b4662d1 100644
--- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
@@ -269,11 +269,11 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase
                 txn.start();
                 lbDeviceVO = new ExternalLoadBalancerDeviceVO(host.getId(), pNetwork.getId(), ntwkDevice.getNetworkServiceProvder(),
                         deviceName, capacity, dedicatedUse, gslbProvider);
-                _externalLoadBalancerDeviceDao.persist(lbDeviceVO);
-                if (!gslbProvider) {
+                if (gslbProvider) {
                     lbDeviceVO.setGslbSitePrivateIP(gslbSitePublicIp);
                     lbDeviceVO.setGslbSitePrivateIP(gslbSitePrivateIp);
                 }
+                _externalLoadBalancerDeviceDao.persist(lbDeviceVO);
                 DetailVO hostDetail = new DetailVO(host.getId(), ApiConstants.LOAD_BALANCER_DEVICE_ID, String.valueOf(lbDeviceVO.getId()));
                 _hostDetailDao.persist(hostDetail);
 


[15/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
publican errors in the release notes fixed


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

Branch: refs/heads/internallb
Commit: 987941a5b06b03bc312f4e01f5ea1285b2af29c3
Parents: 6296093
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 14:24:50 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 14:24:50 2013 +0530

----------------------------------------------------------------------
 docs/en-US/Release_Notes.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/987941a5/docs/en-US/Release_Notes.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Release_Notes.xml b/docs/en-US/Release_Notes.xml
index 60209f6..354c25d 100644
--- a/docs/en-US/Release_Notes.xml
+++ b/docs/en-US/Release_Notes.xml
@@ -25,7 +25,7 @@ under the License.
         <title>Welcome to &PRODUCT; 4.1</title>
         <para>Welcome to the 4.1.0 release of &PRODUCT;, the first major release from the Apache CloudStack project since its graduation from the Apache Incubator.</para>
         <para>This document contains information specific to this release of &PRODUCT;, including upgrade instructions from prior releases, new features added to &PRODUCT;, API changes, and issues fixed in the release. For installation instructions, please see the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/Installation_Guide/index.html">Installation Guide</ulink>. For usage and administration instructions, please see the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/Admin_Guide/index.html">&PRODUCT; Administrator's Guide</ulink>. Developers and users who wish to work with the API will find instruction in the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-incubating/html/API_Developers_Guide/index.html">&PRODUCT; API Developer's Guide</ulink></para>
-        <para>If you find any errors or problems in this guide, please see <xref linkend="feedback" />. We hope you enjoy working with &PRODUCT;!</para>
+        <para>If you find any errors or problems in this guide, please see <xref linkend="feedback"/>. We hope you enjoy working with &PRODUCT;!</para>
     </chapter>
     <chapter id="version-4.1">
         <title>Version 4.1.0</title>


[13/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
dummy feedback file


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

Branch: refs/heads/internallb
Commit: 6296093020ff73490cdef628346d5056eaf4bf80
Parents: 8c1fcef
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 14:08:01 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 14:08:01 2013 +0530

----------------------------------------------------------------------
 docs/en-US/changed-API-commands-4.2 |  107 ------------------------------
 docs/en-US/feedback.xml             |   24 +++++++
 docs/en-US/work-with-usage.xml      |    2 +-
 3 files changed, 25 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62960930/docs/en-US/changed-API-commands-4.2
----------------------------------------------------------------------
diff --git a/docs/en-US/changed-API-commands-4.2 b/docs/en-US/changed-API-commands-4.2
deleted file mode 100644
index cbaa2e3..0000000
--- a/docs/en-US/changed-API-commands-4.2
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
-%BOOK_ENTITIES;
-]>
-<!-- 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.
--->
-<section id="changed-API-commands-4.2">
-  <title>Changed API Commands in 4.2</title>
-  <informaltable>
-    <tgroup cols="2" align="left" colsep="1" rowsep="1">
-      <thead>
-        <row>
-          <entry><para>Parameter Name</para></entry>
-          <entry><para>Description</para></entry>
-        </row>
-      </thead>
-      <tbody>
-        <row>
-          <entry><para>updateResourceLimit</para></entry>
-          <entry>
-            <para>Added the following resource types to the <parameter>resourcetype</parameter>
-              request parameter to set the limits:</para>
-            <itemizedlist>
-              <listitem>
-                <para>CPU</para>
-              </listitem>
-              <listitem>
-                <para>RAM</para>
-              </listitem>
-              <listitem>
-                <para>primary storage</para>
-              </listitem>
-              <listitem>
-                <para>secondary storage</para>
-              </listitem>
-              <listitem>
-                <para>network rate</para>
-              </listitem>
-            </itemizedlist>
-          </entry>
-        </row>
-        <row>
-          <entry><para>updateResourceCount</para></entry>
-          <entry>
-            <para>Added the following resource types to the <parameter>resourcetype</parameter>
-              request parameter to set the limits:</para>
-            <itemizedlist>
-              <listitem>
-                <para>CPU</para>
-              </listitem>
-              <listitem>
-                <para>RAM</para>
-              </listitem>
-              <listitem>
-                <para>primary storage</para>
-              </listitem>
-              <listitem>
-                <para>secondary storage</para>
-              </listitem>
-              <listitem>
-                <para>network rate</para>
-              </listitem>
-            </itemizedlist>
-          </entry>
-        </row>
-        <row>
-          <entry><para>listResourceLimits </para></entry>
-          <entry>
-            <para>Added the following resource types to the <parameter>resourcetype</parameter>
-              request parameter:</para>
-            <itemizedlist>
-              <listitem>
-                <para>CPU</para>
-              </listitem>
-              <listitem>
-                <para>RAM</para>
-              </listitem>
-              <listitem>
-                <para>primary storage</para>
-              </listitem>
-              <listitem>
-                <para>secondary storage</para>
-              </listitem>
-              <listitem>
-                <para>network rate</para>
-              </listitem>
-            </itemizedlist>
-          </entry>
-        </row>
-      </tbody>
-    </tgroup>
-  </informaltable>
-</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62960930/docs/en-US/feedback.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/feedback.xml b/docs/en-US/feedback.xml
new file mode 100644
index 0000000..4b06c9f
--- /dev/null
+++ b/docs/en-US/feedback.xml
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+<!-- 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.
+-->
+<section id="feedback">
+  <title>Feedback</title>
+  <para>to-do</para>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62960930/docs/en-US/work-with-usage.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/work-with-usage.xml b/docs/en-US/work-with-usage.xml
index c40b1e2..0017293 100644
--- a/docs/en-US/work-with-usage.xml
+++ b/docs/en-US/work-with-usage.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
 %BOOK_ENTITIES;
 ]>


[48/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - extend listSnapshots API to return zone type.


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

Branch: refs/heads/internallb
Commit: 15e2bc463f05ff8b77f6b6a79bbcb391216778d8
Parents: 6230e5b
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 14:03:35 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 14:03:35 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/api/response/SnapshotResponse.java  |   16 +++++++++++++++
 server/src/com/cloud/api/ApiResponseHelper.java    |    6 +++++
 2 files changed, 22 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/15e2bc46/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java b/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
index 5b77fb2..7484ac9 100644
--- a/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
@@ -93,6 +93,14 @@ public class SnapshotResponse extends BaseResponse implements ControlledEntityRe
     @Param(description = "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage")
     private Snapshot.State state;
 
+    @SerializedName(ApiConstants.ZONE_NAME)
+    @Param(description = "name of the availability zone")
+    private String zoneName;
+    
+    @SerializedName(ApiConstants.ZONE_TYPE)
+    @Param(description = "network type of the availability zone")
+    private String zoneType;
+    
     @SerializedName(ApiConstants.TAGS)  @Param(description="the list of resource tags associated with snapshot", responseObject = ResourceTagResponse.class)
     private List<ResourceTagResponse> tags;
 
@@ -173,6 +181,14 @@ public class SnapshotResponse extends BaseResponse implements ControlledEntityRe
         this.projectName = projectName;
     }
 
+    public void setZoneName(String zoneName) {
+        this.zoneName = zoneName;
+    }
+
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setTags(List<ResourceTagResponse> tags) {
         this.tags = tags;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/15e2bc46/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index f4567c0..ba5322f 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -443,6 +443,12 @@ public class ApiResponseHelper implements ResponseGenerator {
             snapshotResponse.setVolumeId(volume.getUuid());
             snapshotResponse.setVolumeName(volume.getName());
             snapshotResponse.setVolumeType(volume.getVolumeType().name());
+        
+            DataCenter zone = ApiDBUtils.findZoneById(volume.getDataCenterId());
+            if (zone != null) {
+            	snapshotResponse.setZoneName(zone.getName());
+            	snapshotResponse.setZoneType(zone.getNetworkType().toString());                
+            }
         }
         snapshotResponse.setCreated(snapshot.getCreated());
         snapshotResponse.setName(snapshot.getName());


[19/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
1) fix CLOUDSTACK-2129 and CLOUDSTACK-2128
2) include nicId in network.offerings.assign/remove event
3) use publishUsageEvent instead of saveUsageEvent to track usageEvent


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

Branch: refs/heads/internallb
Commit: 5118e9e29faeddd2408e925d43c2b8afdf170b6b
Parents: 9ae29bb
Author: Mice Xia <mi...@tcloudcomputing.com>
Authored: Mon Apr 22 19:37:53 2013 +0800
Committer: Mice Xia <mi...@tcloudcomputing.com>
Committed: Mon Apr 22 19:38:32 2013 +0800

----------------------------------------------------------------------
 .../src/com/cloud/network/NetworkServiceImpl.java  |    7 +++-
 .../com/cloud/usage/UsageNetworkOfferingVO.java    |   14 +++++++++-
 .../usage/dao/UsageNetworkOfferingDaoImpl.java     |    9 +++---
 server/src/com/cloud/vm/UserVmManagerImpl.java     |    2 +-
 server/src/com/cloud/vm/UserVmStateListener.java   |   21 +++++++++-----
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |   11 ++++++++
 setup/db/db/schema-410to420.sql                    |    4 ++-
 usage/src/com/cloud/usage/UsageManagerImpl.java    |   10 +++++-
 8 files changed, 59 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index 878d2a8..ac2ac45 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -1988,8 +1988,11 @@ public class NetworkServiceImpl extends ManagerBase implements  NetworkService {
                         continue;
                     }
                     long isDefault = (nic.isDefaultNic()) ? 1 : 0;
-                    UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), null, oldNetworkOfferingId, null, 0L);
-                    UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), vm.getHostName(), networkOfferingId, null, isDefault);
+                    String nicIdString = Long.toString(nic.getId());
+                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(),
+                            vm.getId(), nicIdString, oldNetworkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid());
+                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(),
+                            vm.getId(), nicIdString, networkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid());
                 }
                 txn.commit();
             }   else {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/usage/UsageNetworkOfferingVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/usage/UsageNetworkOfferingVO.java b/server/src/com/cloud/usage/UsageNetworkOfferingVO.java
index 7290334..fdf758b 100644
--- a/server/src/com/cloud/usage/UsageNetworkOfferingVO.java
+++ b/server/src/com/cloud/usage/UsageNetworkOfferingVO.java
@@ -53,11 +53,14 @@ public class UsageNetworkOfferingVO {
 	@Column(name="deleted")
 	@Temporal(value=TemporalType.TIMESTAMP)
 	private Date deleted = null;
+	
+	@Column(name="nic_id")
+	private Long nicId;
 
 	protected UsageNetworkOfferingVO() {
 	}
 
-	public UsageNetworkOfferingVO(long zoneId, long accountId, long domainId, long vmInstanceId, long networkOfferingId, boolean isDefault, Date created, Date deleted) {
+	public UsageNetworkOfferingVO(long zoneId, long accountId, long domainId, long vmInstanceId, long networkOfferingId, long nicId, boolean isDefault, Date created, Date deleted) {
 		this.zoneId = zoneId;
 		this.accountId = accountId;
 		this.domainId = domainId;
@@ -66,6 +69,7 @@ public class UsageNetworkOfferingVO {
 		this.isDefault = isDefault;
 		this.created = created;
 		this.deleted = deleted;
+		this.nicId = nicId;
 	}
 
 	public long getZoneId() {
@@ -102,4 +106,12 @@ public class UsageNetworkOfferingVO {
 	public void setDeleted(Date deleted) {
 	    this.deleted = deleted;
 	}
+
+    public Long getNicId() {
+        return nicId;
+    }
+
+    public void setNicId(Long nicId) {
+        this.nicId = nicId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java b/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java
index a6539dd..c3fc5a6 100644
--- a/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java
+++ b/server/src/com/cloud/usage/dao/UsageNetworkOfferingDaoImpl.java
@@ -39,15 +39,15 @@ public class UsageNetworkOfferingDaoImpl extends GenericDaoBase<UsageNetworkOffe
 	public static final Logger s_logger = Logger.getLogger(UsageNetworkOfferingDaoImpl.class.getName());
 
 	protected static final String UPDATE_DELETED = "UPDATE usage_network_offering SET deleted = ? WHERE account_id = ? AND vm_instance_id = ? AND network_offering_id = ? and deleted IS NULL";
-    protected static final String GET_USAGE_RECORDS_BY_ACCOUNT = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, is_default, created, deleted " +
+    protected static final String GET_USAGE_RECORDS_BY_ACCOUNT = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, nic_id, is_default, created, deleted " +
                                                                  "FROM usage_network_offering " +
                                                                  "WHERE account_id = ? AND ((deleted IS NULL) OR (created BETWEEN ? AND ?) OR " +
                                                                  "      (deleted BETWEEN ? AND ?) OR ((created <= ?) AND (deleted >= ?)))";
-    protected static final String GET_USAGE_RECORDS_BY_DOMAIN = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, is_default, created, deleted " +
+    protected static final String GET_USAGE_RECORDS_BY_DOMAIN = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, nic_id, is_default, created, deleted " +
                                                                 "FROM usage_network_offering " +
                                                                 "WHERE domain_id = ? AND ((deleted IS NULL) OR (created BETWEEN ? AND ?) OR " +
                                                                 "      (deleted BETWEEN ? AND ?) OR ((created <= ?) AND (deleted >= ?)))";
-    protected static final String GET_ALL_USAGE_RECORDS = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, is_default, created, deleted " +
+    protected static final String GET_ALL_USAGE_RECORDS = "SELECT zone_id, account_id, domain_id, vm_instance_id, network_offering_id, nic_id, is_default, created, deleted " +
                                                           "FROM usage_network_offering " +
                                                           "WHERE (deleted IS NULL) OR (created BETWEEN ? AND ?) OR " +
                                                           "      (deleted BETWEEN ? AND ?) OR ((created <= ?) AND (deleted >= ?))";
@@ -124,6 +124,7 @@ public class UsageNetworkOfferingDaoImpl extends GenericDaoBase<UsageNetworkOffe
                 Long dId = Long.valueOf(rs.getLong(3));
                 long vmId = Long.valueOf(rs.getLong(4));
                 long noId = Long.valueOf(rs.getLong(5));
+                long nicId = Long.valueOf(rs.getLong(6));
                 boolean isDefault = Boolean.valueOf(rs.getBoolean(6));
                 Date createdDate = null;
                 Date deletedDate = null;
@@ -138,7 +139,7 @@ public class UsageNetworkOfferingDaoImpl extends GenericDaoBase<UsageNetworkOffe
                 	deletedDate = DateUtil.parseDateString(s_gmtTimeZone, deletedTS);
                 }
 
-                usageRecords.add(new UsageNetworkOfferingVO(zoneId, acctId, dId, vmId, noId, isDefault, createdDate, deletedDate));
+                usageRecords.add(new UsageNetworkOfferingVO(zoneId, acctId, dId, vmId, noId, nicId, isDefault, createdDate, deletedDate));
             }
         } catch (Exception e) {
             txn.rollback();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index bc6237f..1843f60 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -2777,7 +2777,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
             NetworkVO network = _networkDao.findById(nic.getNetworkId());
             long isDefault = (nic.isDefaultNic()) ? 1 : 0;
             UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(),
-                    vm.getDataCenterId(), vm.getId(), vm.getHostName(), network.getNetworkOfferingId(),
+                    vm.getDataCenterId(), vm.getId(), Long.toString(nic.getId()), network.getNetworkOfferingId(),
                     null, isDefault, VirtualMachine.class.getName(), vm.getUuid());
             if (network.getTrafficType() == TrafficType.Guest) {
                 originalIp = nic.getIp4Address();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/vm/UserVmStateListener.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmStateListener.java b/server/src/com/cloud/vm/UserVmStateListener.java
index 04aa818..3feecbb 100644
--- a/server/src/com/cloud/vm/UserVmStateListener.java
+++ b/server/src/com/cloud/vm/UserVmStateListener.java
@@ -72,21 +72,26 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
         pubishOnEventBus(event.name(), "postStateTransitionEvent", vo, oldState, newState);
 
         if (VirtualMachine.State.isVmCreated(oldState, event, newState)) {
-            UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
-                    vo.getTemplateId(), vo.getHypervisorType().toString());
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
+                    vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(), 
+                    vo.getClass().getName(), vo.getUuid());
         } else if (VirtualMachine.State.isVmStarted(oldState, event, newState)) {
-            UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
-                    vo.getTemplateId(), vo.getHypervisorType().toString());
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
+                    vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(), 
+                    vo.getClass().getName(), vo.getUuid());            
         } else if (VirtualMachine.State.isVmStopped(oldState, event, newState)) {
-            UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName());
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(),
+                    vo.getClass().getName(), vo.getUuid());
             List<NicVO> nics = _nicDao.listByVmId(vo.getId());
             for (NicVO nic : nics) {
                 NetworkVO network = _networkDao.findById(nic.getNetworkId());
-                UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), null, network.getNetworkOfferingId(), null, 0L);
+                UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterId(),
+                        vo.getId(), Long.toString(nic.getId()),network.getNetworkOfferingId(), null, 0L, vo.getClass().getName(), vo.getUuid());
             }
         } else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) {
-            UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
-                    vo.getTemplateId(), vo.getHypervisorType().toString());
+            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
+                    vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(),
+                    vo.getClass().getName(), vo.getUuid());
         } 
         return true;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 2ecece2..b613917 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -78,6 +78,8 @@ import com.cloud.deploy.DeploymentPlanner;
 import com.cloud.deploy.DeploymentPlanner.ExcludeList;
 import com.cloud.deploy.DeploymentPlanningManager;
 import com.cloud.domain.dao.DomainDao;
+import com.cloud.event.EventTypes;
+import com.cloud.event.UsageEventUtils;
 import com.cloud.exception.AffinityConflictException;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.exception.ConcurrentOperationException;
@@ -2751,6 +2753,11 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
                 result = vmGuru.plugNic(network, nicTO, vmTO, context, dest);
                 if (result) {
                     s_logger.debug("Nic is plugged successfully for vm " + vm + " in network " + network + ". Vm  is a part of network now");
+                    long isDefault = (nic.isDefaultNic()) ? 1 : 0;
+                    // insert nic's Id into DB as resource_name
+                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vmVO.getAccountId(),
+                            vmVO.getDataCenterId(), vmVO.getId(), Long.toString(nic.getId()), nic.getNetworkId(),
+                            null, isDefault, VirtualMachine.class.getName(), vmVO.getUuid());                     
                     return nic;
                 } else {
                     s_logger.warn("Failed to plug nic to the vm " + vm + " in network " + network);
@@ -2814,6 +2821,10 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             boolean result = vmGuru.unplugNic(network, nicTO, vmTO, context, dest);
             if (result) {
                 s_logger.debug("Nic is unplugged successfully for vm " + vm + " in network " + network );
+                long isDefault = (nic.isDefaultNic()) ? 1 : 0;
+                UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(),
+                        vm.getId(), Long.toString(nic.getId()), network.getNetworkOfferingId(), null, 
+                        isDefault, VirtualMachine.class.getName(), vm.getUuid());
             } else {
                 s_logger.warn("Failed to unplug nic for the vm " + vm + " from network " + network);
                 return false;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index 14aa2eb..93a685f 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -774,4 +774,6 @@ CREATE VIEW `cloud`.`account_view` AS
             left join
         `cloud`.`async_job` ON async_job.instance_id = account.id
             and async_job.instance_type = 'Account'
-            and async_job.job_status = 0;
\ No newline at end of file
+            and async_job.job_status = 0;
+
+alter table `cloud_usage`.`usage_network_offering` add column nic_id bigint(20) unsigned NOT NULL;             
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5118e9e2/usage/src/com/cloud/usage/UsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java
index 85ea60b..16fe67b 100644
--- a/usage/src/com/cloud/usage/UsageManagerImpl.java
+++ b/usage/src/com/cloud/usage/UsageManagerImpl.java
@@ -78,7 +78,6 @@ import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.GlobalLock;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.Transaction;
-import com.cloud.utils.exception.CloudRuntimeException;
 
 @Component
 @Local(value={UsageManager.class})
@@ -1298,6 +1297,12 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
 
         long vmId = event.getResourceId();
         long networkOfferingId = event.getOfferingId();
+        long nicId = 0;
+        try{
+            nicId = Long.parseLong(event.getResourceName());
+        }catch (Exception e) {
+            s_logger.warn("failed to get nic id from resource name, resource name is: " + event.getResourceName());
+        }
 
         if (EventTypes.EVENT_NETWORK_OFFERING_CREATE.equals(event.getType()) || EventTypes.EVENT_NETWORK_OFFERING_ASSIGN.equals(event.getType())) {
             if (s_logger.isDebugEnabled()) {
@@ -1306,12 +1311,13 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
             zoneId = event.getZoneId();
             Account acct = m_accountDao.findByIdIncludingRemoved(event.getAccountId());
             boolean isDefault = (event.getSize() == 1) ? true : false ;
-            UsageNetworkOfferingVO networkOffering = new UsageNetworkOfferingVO(zoneId, event.getAccountId(), acct.getDomainId(), vmId, networkOfferingId, isDefault, event.getCreateDate(), null);
+            UsageNetworkOfferingVO networkOffering = new UsageNetworkOfferingVO(zoneId, event.getAccountId(), acct.getDomainId(), vmId, networkOfferingId, nicId, isDefault, event.getCreateDate(), null);
             m_usageNetworkOfferingDao.persist(networkOffering);
         } else if (EventTypes.EVENT_NETWORK_OFFERING_DELETE.equals(event.getType()) || EventTypes.EVENT_NETWORK_OFFERING_REMOVE.equals(event.getType())) {
             SearchCriteria<UsageNetworkOfferingVO> sc = m_usageNetworkOfferingDao.createSearchCriteria();
             sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
             sc.addAnd("vmInstanceId", SearchCriteria.Op.EQ, vmId);
+            sc.addAnd("nicId", SearchCriteria.Op.EQ, nicId);
             sc.addAnd("networkOfferingId", SearchCriteria.Op.EQ, networkOfferingId);
             sc.addAnd("deleted", SearchCriteria.Op.NULL);
             List<UsageNetworkOfferingVO> noVOs = m_usageNetworkOfferingDao.search(sc, null);


[02/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Temporarely disabing vpc test as some part of it requires connection to the real DB. Will re-enable after fixing the problem


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

Branch: refs/heads/internallb
Commit: 39abaf645258bc6fb75022850b2bfce0a7e7ae6f
Parents: 2857234
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Fri Apr 19 12:41:56 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Apr 19 12:42:42 2013 -0700

----------------------------------------------------------------------
 server/pom.xml |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/39abaf64/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 7249c55..8b64335 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -157,6 +157,7 @@
             <exclude>com/cloud/network/vpn/RemoteAccessVpnTest.java</exclude>
             <exclude>com/cloud/network/security/SecurityGroupManagerImpl2Test.java</exclude>
             <exclude>com/cloud/network/security/SecurityGroupManagerImpl2Test.java</exclude>
+            <exclude>com/cloud/vpc/*</exclude>
           </excludes>
         </configuration>
       </plugin>


[07/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
naming conventions for test_modules

Pythonesque is better. Also test_modules should not have executable bit
set as the test runner will not find them.


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

Branch: refs/heads/internallb
Commit: dc87d9325e98bc161f1ff1898ae64cc82d42be3e
Parents: d0108b8
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 14:26:27 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 14:26:27 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_ScaleVm.py         |  221 -------------------
 test/integration/smoke/test_UpdateCfg.py       |   85 -------
 test/integration/smoke/test_global_settings.py |   85 +++++++
 test/integration/smoke/test_scale_vm.py        |  221 +++++++++++++++++++
 4 files changed, 306 insertions(+), 306 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/component/test_asa1000v_fw.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_asa1000v_fw.py b/test/integration/component/test_asa1000v_fw.py
old mode 100755
new mode 100644

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_ScaleVm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_ScaleVm.py b/test/integration/smoke/test_ScaleVm.py
deleted file mode 100644
index 81a477e..0000000
--- a/test/integration/smoke/test_ScaleVm.py
+++ /dev/null
@@ -1,221 +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.
-""" P1 tests for Scaling up Vm
-"""
-#Import Local Modules
-import marvin
-from marvin.cloudstackTestCase import *
-from marvin.cloudstackAPI import *
-from marvin.remoteSSHClient import remoteSSHClient
-from marvin.integration.lib.utils import *
-from marvin.integration.lib.base import *
-from marvin.integration.lib.common import *
-from nose.plugins.attrib import attr
-#Import System modules
-import time
-
-_multiprocess_shared_ = True
-class Services:
-    """Test VM Life Cycle Services
-    """
-
-    def __init__(self):
-        self.services = {
-
-                "account": {
-                    "email": "test@test.com",
-                    "firstname": "Test",
-                    "lastname": "User",
-                    "username": "test",
-                    # Random characters are appended in create account to 
-                    # ensure unique username generated each time
-                    "password": "password",
-                },
-                "small":
-                # Create a small virtual machine instance with disk offering 
-                {
-                    "displayname": "testserver",
-                    "username": "root", # VM creds for SSH
-                    "password": "password",
-                    "ssh_port": 22,
-                    "hypervisor": 'XenServer',
-                    "privateport": 22,
-                    "publicport": 22,
-                    "protocol": 'TCP',
-                },
-                "service_offerings":
-                {
-                 "small":
-                    {
-                     # Small service offering ID to for change VM 
-                     # service offering from medium to small
-                        "name": "SmallInstance",
-                        "displaytext": "SmallInstance",
-                        "cpunumber": 1,
-                        "cpuspeed": 100,
-                        "memory": 256,
-                    },
-                "big":
-                    {
-                     # Big service offering ID to for change VM 
-                        "name": "BigInstance",
-                        "displaytext": "BigInstance",
-                        "cpunumber": 1,
-                        "cpuspeed": 100,
-                        "memory": 512,
-                    }
-                },
-                #Change this
-                "template": {
-                    "displaytext": "xs",
-                    "name": "xs",
-                    "passwordenabled": False,
-                },
-            "diskdevice": '/dev/xvdd',
-            # Disk device where ISO is attached to instance
-            "mount_dir": "/mnt/tmp",
-            "sleep": 60,
-            "timeout": 10,
-            #Migrate VM to hostid
-            "ostype": 'CentOS 5.3 (64-bit)',
-            # CentOS 5.3 (64-bit)
-        }
-
-class TestScaleVm(cloudstackTestCase):
-
-    @classmethod
-    def setUpClass(cls):
-        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
-        cls.services = Services().services
-
-        # Get Zone, Domain and templates
-        domain = get_domain(cls.api_client, cls.services)
-        zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = cls.zone.networktype
-
-        template = get_template(
-                            cls.api_client,
-                            zone.id,
-                            cls.services["ostype"]
-                            )
-        # Set Zones and disk offerings ??
-        cls.services["small"]["zoneid"] = zone.id
-        cls.services["small"]["template"] = template.id
-
-        # Create account, service offerings, vm.
-        cls.account = Account.create(
-                            cls.api_client,
-                            cls.services["account"],
-                            domainid=domain.id
-                            )
-
-        cls.small_offering = ServiceOffering.create(
-                                    cls.api_client,
-                                    cls.services["service_offerings"]["small"]
-                                    )
-        
-        cls.big_offering = ServiceOffering.create(
-                                    cls.api_client,
-                                    cls.services["service_offerings"]["big"]
-                                    )
-
-        #create a virtual machine
-        cls.virtual_machine = VirtualMachine.create(
-                                        cls.api_client,
-                                        cls.services["small"],
-                                        accountid=cls.account.account.name,
-                                        domainid=cls.account.account.domainid,
-                                        serviceofferingid=cls.small_offering.id,
-                                        mode=cls.services["mode"]
-                                        )
-        #how does it work ??
-        cls._cleanup = [
-                        cls.small_offering,
-                        cls.account
-                        ]
-
-    @classmethod
-    def tearDownClass(cls):
-        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
-        cleanup_resources(cls.api_client, cls._cleanup)
-        return
-
-    def setUp(self):
-        self.apiclient = self.testClient.getApiClient()
-        self.dbclient = self.testClient.getDbConnection()
-        self.cleanup = []
-
-    def tearDown(self):
-        #Clean up, terminate the created ISOs
-        cleanup_resources(self.apiclient, self.cleanup)
-        return
-
-    @attr(tags = ["xenserver", "advanced", "basic"])
-    def test_01_scale_vm(self):
-        """Test scale virtual machine 
-        """
-        # Validate the following
-        # Scale up the vm and see if it scales to the new svc offering and is finally in running state
-        
-      
-      
-        self.debug("Scaling VM-ID: %s to service offering: %s" % (
-                                        self.virtual_machine.id,
-                                        self.big_offering.id
-                                        ))
-        
-        cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
-        cmd.serviceofferingid = self.big_offering.id
-        cmd.id = self.virtual_machine.id
-        self.apiclient.scaleVirtualMachine(cmd)  
-
-        list_vm_response = list_virtual_machines(
-                                            self.apiclient,
-                                            id=self.virtual_machine.id
-                                            )
-        self.assertEqual(
-                        isinstance(list_vm_response, list),
-                        True,
-                        "Check list response returns a valid list"
-                        )
-
-        self.assertNotEqual(
-                            list_vm_response,
-                            None,
-                            "Check virtual machine is listVirtualMachines"
-                            )
-
-        vm_response = list_vm_response[0]
-
-        self.assertEqual(
-                        vm_response.id,
-                        self.virtual_machine.id,
-                        "Check virtual machine ID of scaled VM"
-                        )
-
-        self.assertEqual(
-                        vm_response.serviceofferingid,
-                        self.big_offering.id,
-                        "Check service offering of the VM"
-                        )
-
-        self.assertEqual(
-                        vm_response.state,
-                        'Running',
-                        "Check the state of VM"
-                        )
-        return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_UpdateCfg.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_UpdateCfg.py b/test/integration/smoke/test_UpdateCfg.py
deleted file mode 100644
index be501b9..0000000
--- a/test/integration/smoke/test_UpdateCfg.py
+++ /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.
-""" P1 tests for updating the granular Configuration parameter with scope and resource id provided.
-"""
-#Import Local Modules
-import marvin
-from marvin.cloudstackTestCase import *
-from marvin.cloudstackAPI import *
-from marvin.remoteSSHClient import remoteSSHClient
-from marvin.integration.lib.utils import *
-from marvin.integration.lib.base import *
-from marvin.integration.lib.common import *
-from nose.plugins.attrib import attr
-#Import System modules
-import unittest
-import hashlib
-import random
-
-class TestUpdateConfigWithScope(cloudstackTestCase):
-    """
-    This test updates the value of a configuration parameter
-    which is at zone level(scope)
-    """
-    def setUp(self):
-        """
-        CloudStack internally saves its passwords in md5 form and that is how we
-        specify it in the API. Python's hashlib library helps us to quickly hash
-        strings as follows
-        """
-        mdf = hashlib.md5()
-        mdf.update('password')
-        mdf_pass = mdf.hexdigest()
-
-        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
-
-
-
-    def test_UpdateConfigParamWithScope(self):
-
-        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
-        updateConfigurationCmd.name = "use.external.dns"
-        updateConfigurationCmd.value = "true"
-        updateConfigurationCmd.scope = "zone"
-        updateConfigurationCmd.id = 1
-
-        updateConfigurationResponse = self.apiClient.updateConfiguration(updateConfigurationCmd)
-        self.debug("updated the parameter %s with value %s"%(updateConfigurationResponse.name, updateConfigurationResponse.value))
-
-        listConfigurationsCmd = listConfigurations.listConfigurationsCmd()
-        listConfigurationsCmd.cfgName = updateConfigurationResponse.name
-        listConfigurationsCmd.scope = "zone"
-        listConfigurationsCmd.id = 1
-        listConfigurationsResponse = self.apiClient.listConfigurations(listConfigurationsCmd)
-
-        self.assertNotEqual(len(listConfigurationsResponse), 0, "Check if the list API \
-                            returns a non-empty response")
-
-        configParam = listConfigurationsResponse[0]
-
-        self.assertEqual(configParam.value, updateConfigurationResponse.value, "Check if the update API returned \
-                         is the same as the one we got in the list API")
-
-
-    def tearDown(self):
-
-        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
-        updateConfigurationCmd.name = "use.external.dns"
-        updateConfigurationCmd.value = "false"
-        updateConfigurationCmd.scope = "zone"
-        updateConfigurationCmd.id = 1
-        self.apiClient.updateConfiguration(updateConfigurationCmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_global_settings.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_global_settings.py b/test/integration/smoke/test_global_settings.py
new file mode 100644
index 0000000..be501b9
--- /dev/null
+++ b/test/integration/smoke/test_global_settings.py
@@ -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.
+""" P1 tests for updating the granular Configuration parameter with scope and resource id provided.
+"""
+#Import Local Modules
+import marvin
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.remoteSSHClient import remoteSSHClient
+from marvin.integration.lib.utils import *
+from marvin.integration.lib.base import *
+from marvin.integration.lib.common import *
+from nose.plugins.attrib import attr
+#Import System modules
+import unittest
+import hashlib
+import random
+
+class TestUpdateConfigWithScope(cloudstackTestCase):
+    """
+    This test updates the value of a configuration parameter
+    which is at zone level(scope)
+    """
+    def setUp(self):
+        """
+        CloudStack internally saves its passwords in md5 form and that is how we
+        specify it in the API. Python's hashlib library helps us to quickly hash
+        strings as follows
+        """
+        mdf = hashlib.md5()
+        mdf.update('password')
+        mdf_pass = mdf.hexdigest()
+
+        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
+
+
+
+    def test_UpdateConfigParamWithScope(self):
+
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "use.external.dns"
+        updateConfigurationCmd.value = "true"
+        updateConfigurationCmd.scope = "zone"
+        updateConfigurationCmd.id = 1
+
+        updateConfigurationResponse = self.apiClient.updateConfiguration(updateConfigurationCmd)
+        self.debug("updated the parameter %s with value %s"%(updateConfigurationResponse.name, updateConfigurationResponse.value))
+
+        listConfigurationsCmd = listConfigurations.listConfigurationsCmd()
+        listConfigurationsCmd.cfgName = updateConfigurationResponse.name
+        listConfigurationsCmd.scope = "zone"
+        listConfigurationsCmd.id = 1
+        listConfigurationsResponse = self.apiClient.listConfigurations(listConfigurationsCmd)
+
+        self.assertNotEqual(len(listConfigurationsResponse), 0, "Check if the list API \
+                            returns a non-empty response")
+
+        configParam = listConfigurationsResponse[0]
+
+        self.assertEqual(configParam.value, updateConfigurationResponse.value, "Check if the update API returned \
+                         is the same as the one we got in the list API")
+
+
+    def tearDown(self):
+
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "use.external.dns"
+        updateConfigurationCmd.value = "false"
+        updateConfigurationCmd.scope = "zone"
+        updateConfigurationCmd.id = 1
+        self.apiClient.updateConfiguration(updateConfigurationCmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_scale_vm.py b/test/integration/smoke/test_scale_vm.py
new file mode 100644
index 0000000..81a477e
--- /dev/null
+++ b/test/integration/smoke/test_scale_vm.py
@@ -0,0 +1,221 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+""" P1 tests for Scaling up Vm
+"""
+#Import Local Modules
+import marvin
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.remoteSSHClient import remoteSSHClient
+from marvin.integration.lib.utils import *
+from marvin.integration.lib.base import *
+from marvin.integration.lib.common import *
+from nose.plugins.attrib import attr
+#Import System modules
+import time
+
+_multiprocess_shared_ = True
+class Services:
+    """Test VM Life Cycle Services
+    """
+
+    def __init__(self):
+        self.services = {
+
+                "account": {
+                    "email": "test@test.com",
+                    "firstname": "Test",
+                    "lastname": "User",
+                    "username": "test",
+                    # Random characters are appended in create account to 
+                    # ensure unique username generated each time
+                    "password": "password",
+                },
+                "small":
+                # Create a small virtual machine instance with disk offering 
+                {
+                    "displayname": "testserver",
+                    "username": "root", # VM creds for SSH
+                    "password": "password",
+                    "ssh_port": 22,
+                    "hypervisor": 'XenServer',
+                    "privateport": 22,
+                    "publicport": 22,
+                    "protocol": 'TCP',
+                },
+                "service_offerings":
+                {
+                 "small":
+                    {
+                     # Small service offering ID to for change VM 
+                     # service offering from medium to small
+                        "name": "SmallInstance",
+                        "displaytext": "SmallInstance",
+                        "cpunumber": 1,
+                        "cpuspeed": 100,
+                        "memory": 256,
+                    },
+                "big":
+                    {
+                     # Big service offering ID to for change VM 
+                        "name": "BigInstance",
+                        "displaytext": "BigInstance",
+                        "cpunumber": 1,
+                        "cpuspeed": 100,
+                        "memory": 512,
+                    }
+                },
+                #Change this
+                "template": {
+                    "displaytext": "xs",
+                    "name": "xs",
+                    "passwordenabled": False,
+                },
+            "diskdevice": '/dev/xvdd',
+            # Disk device where ISO is attached to instance
+            "mount_dir": "/mnt/tmp",
+            "sleep": 60,
+            "timeout": 10,
+            #Migrate VM to hostid
+            "ostype": 'CentOS 5.3 (64-bit)',
+            # CentOS 5.3 (64-bit)
+        }
+
+class TestScaleVm(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+        cls.services = Services().services
+
+        # Get Zone, Domain and templates
+        domain = get_domain(cls.api_client, cls.services)
+        zone = get_zone(cls.api_client, cls.services)
+        cls.services['mode'] = cls.zone.networktype
+
+        template = get_template(
+                            cls.api_client,
+                            zone.id,
+                            cls.services["ostype"]
+                            )
+        # Set Zones and disk offerings ??
+        cls.services["small"]["zoneid"] = zone.id
+        cls.services["small"]["template"] = template.id
+
+        # Create account, service offerings, vm.
+        cls.account = Account.create(
+                            cls.api_client,
+                            cls.services["account"],
+                            domainid=domain.id
+                            )
+
+        cls.small_offering = ServiceOffering.create(
+                                    cls.api_client,
+                                    cls.services["service_offerings"]["small"]
+                                    )
+        
+        cls.big_offering = ServiceOffering.create(
+                                    cls.api_client,
+                                    cls.services["service_offerings"]["big"]
+                                    )
+
+        #create a virtual machine
+        cls.virtual_machine = VirtualMachine.create(
+                                        cls.api_client,
+                                        cls.services["small"],
+                                        accountid=cls.account.account.name,
+                                        domainid=cls.account.account.domainid,
+                                        serviceofferingid=cls.small_offering.id,
+                                        mode=cls.services["mode"]
+                                        )
+        #how does it work ??
+        cls._cleanup = [
+                        cls.small_offering,
+                        cls.account
+                        ]
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        #Clean up, terminate the created ISOs
+        cleanup_resources(self.apiclient, self.cleanup)
+        return
+
+    @attr(tags = ["xenserver", "advanced", "basic"])
+    def test_01_scale_vm(self):
+        """Test scale virtual machine 
+        """
+        # Validate the following
+        # Scale up the vm and see if it scales to the new svc offering and is finally in running state
+        
+      
+      
+        self.debug("Scaling VM-ID: %s to service offering: %s" % (
+                                        self.virtual_machine.id,
+                                        self.big_offering.id
+                                        ))
+        
+        cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
+        cmd.serviceofferingid = self.big_offering.id
+        cmd.id = self.virtual_machine.id
+        self.apiclient.scaleVirtualMachine(cmd)  
+
+        list_vm_response = list_virtual_machines(
+                                            self.apiclient,
+                                            id=self.virtual_machine.id
+                                            )
+        self.assertEqual(
+                        isinstance(list_vm_response, list),
+                        True,
+                        "Check list response returns a valid list"
+                        )
+
+        self.assertNotEqual(
+                            list_vm_response,
+                            None,
+                            "Check virtual machine is listVirtualMachines"
+                            )
+
+        vm_response = list_vm_response[0]
+
+        self.assertEqual(
+                        vm_response.id,
+                        self.virtual_machine.id,
+                        "Check virtual machine ID of scaled VM"
+                        )
+
+        self.assertEqual(
+                        vm_response.serviceofferingid,
+                        self.big_offering.id,
+                        "Check service offering of the VM"
+                        )
+
+        self.assertEqual(
+                        vm_response.state,
+                        'Running',
+                        "Check the state of VM"
+                        )
+        return


[37/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1561. Docs. Update VM Snapshots section.


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

Branch: refs/heads/internallb
Commit: e23d6b2af414a5789800a5b848f1a527dfdf66ce
Parents: b2b8f0e
Author: Jessica Tomechak <je...@gmail.com>
Authored: Mon Apr 22 23:07:29 2013 -0700
Committer: Jessica Tomechak <je...@gmail.com>
Committed: Mon Apr 22 23:08:10 2013 -0700

----------------------------------------------------------------------
 docs/en-US/vm-snapshots.xml |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e23d6b2a/docs/en-US/vm-snapshots.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/vm-snapshots.xml b/docs/en-US/vm-snapshots.xml
index 8d4bcf9..3e72fe4 100644
--- a/docs/en-US/vm-snapshots.xml
+++ b/docs/en-US/vm-snapshots.xml
@@ -24,8 +24,8 @@
 <section id="vm-snapshots">
   <title>Virtual Machine Snapshots for VMware</title>
   <para>(VMware hosts only)
-    In addition to the existing &PRODUCT; ability to snapshot VM volumes,
-    you can now take a VM snapshot to preserve all of the VM's state and data.
+    In addition to the existing &PRODUCT; ability to snapshot individual VM volumes,
+    you can now take a VM snapshot to preserve all the VM's data volumes as well as (optionally) its CPU/memory state.
     This is useful for quick restore of a VM.
     For example, you can snapshot a VM, then make changes such as software upgrades.
     If anything goes wrong, simply restore the VM to its previous state using the previously saved VM snapshot.
@@ -51,7 +51,9 @@
       <listitem><para>If a VM has some stored snapshots, you can't attach new volume to the VM
         or delete any existing volumes.
         If you change the volumes on the VM, it would become impossible to restore the VM snapshot
-        which was created with the previous volume structure.</para></listitem>
+        which was created with the previous volume structure.
+        If you want to attach a volume to such a VM, first delete its snapshots.
+      </para></listitem>
       <listitem><para>VM snapshots which include both data volumes and memory can't be kept if you change the VM's
         service offering. Any existing VM snapshots of this type will be discarded.</para></listitem>
       <listitem>
@@ -72,7 +74,7 @@
   <section id="vm-snapshot-configure">
     <title>Configuring VM Snapshots</title>
     <para>The cloud administrator can use global configuration variables to control the behavior of VM snapshots.
-      To set these variables, go through the Global Settings are of the UI.</para>
+      To set these variables, go through the Global Settings area of the &PRODUCT; UI.</para>
     <informaltable>
       <tgroup cols="2" align="left" colsep="1" rowsep="1">
         <thead>


[10/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-713


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

Branch: refs/heads/internallb
Commit: 2f67dae711ec2cd084229d8fd5366a72a832c060
Parents: 5a0f4b6
Author: Radhika PC <ra...@citrix.com>
Authored: Mon Apr 22 13:36:51 2013 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Mon Apr 22 13:36:51 2013 +0530

----------------------------------------------------------------------
 docs/en-US/changed-API-commands-4.2   |  107 ++++++++
 docs/en-US/limit-accounts-domains.xml |  387 ++++++++++++++++++++++++++++
 docs/en-US/work-with-usage.xml        |   24 +-
 3 files changed, 507 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2f67dae7/docs/en-US/changed-API-commands-4.2
----------------------------------------------------------------------
diff --git a/docs/en-US/changed-API-commands-4.2 b/docs/en-US/changed-API-commands-4.2
new file mode 100644
index 0000000..cbaa2e3
--- /dev/null
+++ b/docs/en-US/changed-API-commands-4.2
@@ -0,0 +1,107 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+<!-- 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.
+-->
+<section id="changed-API-commands-4.2">
+  <title>Changed API Commands in 4.2</title>
+  <informaltable>
+    <tgroup cols="2" align="left" colsep="1" rowsep="1">
+      <thead>
+        <row>
+          <entry><para>Parameter Name</para></entry>
+          <entry><para>Description</para></entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry><para>updateResourceLimit</para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter to set the limits:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+        <row>
+          <entry><para>updateResourceCount</para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter to set the limits:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+        <row>
+          <entry><para>listResourceLimits </para></entry>
+          <entry>
+            <para>Added the following resource types to the <parameter>resourcetype</parameter>
+              request parameter:</para>
+            <itemizedlist>
+              <listitem>
+                <para>CPU</para>
+              </listitem>
+              <listitem>
+                <para>RAM</para>
+              </listitem>
+              <listitem>
+                <para>primary storage</para>
+              </listitem>
+              <listitem>
+                <para>secondary storage</para>
+              </listitem>
+              <listitem>
+                <para>network rate</para>
+              </listitem>
+            </itemizedlist>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2f67dae7/docs/en-US/limit-accounts-domains.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/limit-accounts-domains.xml b/docs/en-US/limit-accounts-domains.xml
new file mode 100644
index 0000000..64a886e
--- /dev/null
+++ b/docs/en-US/limit-accounts-domains.xml
@@ -0,0 +1,387 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- 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.
+-->
+<section id="limit-accounts-domains">
+  <title>Limiting Resource Usage</title>
+  <para>In addition to VMs, volumes, and snapshots, &PRODUCT; allows you limit resource types, such
+    as CPU, RAM, Primary storage, Secondary storage, and Network Rate.</para>
+  <para>Previously in &PRODUCT;, resource usage limit was imposed based on the resource count, that
+    is, restrict a user or domain on the basis of the number of VMs, volumes, or snapshots used. A
+    new set of resource types has been added to the existing pool of resources (VMs, Volumes, and
+    Snapshots) to support the customization model&mdash;need-basis usage, such as large VM or small
+    VM. The new resource types are now broadly classified as CPU, RAM, Primary storage, Secondary
+    storage, and Network Rate. &PRODUCT; now allows the root administrator to impose resource usage
+    limit by the following resource types for Domain, Project and Accounts. </para>
+  <itemizedlist>
+    <listitem>
+      <para>CPUs</para>
+    </listitem>
+    <listitem>
+      <para>Memory (RAM)</para>
+    </listitem>
+    <listitem>
+      <para>Primary Storage (Volumes)</para>
+    </listitem>
+    <listitem>
+      <para>Secondary Storage (Snapshots, Templates, ISOs)</para>
+    </listitem>
+    <listitem>
+      <para>Network Rate (Mbps)</para>
+    </listitem>
+  </itemizedlist>
+  <para>To control the behaviour of this feature, the following configuration parameters have been
+    added:</para>
+  <informaltable>
+    <tgroup cols="2" align="left" colsep="1" rowsep="1">
+      <thead>
+        <row>
+          <entry><para>Parameter Name</para></entry>
+          <entry><para>Description</para></entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry><para>max.account.cpus</para></entry>
+          <entry><para>Maximum number of CPU cores that can be used for an account. </para>
+            <para>Default is 40.</para></entry>
+        </row>
+        <row>
+          <entry><para>max.account.ram (MB)</para></entry>
+          <entry><para>Maximum RAM that can be used for an account. </para>
+            <para>Default is 40960.</para></entry>
+        </row>
+        <row>
+          <entry><para>max.account.primary.storage (GB)</para></entry>
+          <entry><para>Maximum primary storage space that can be used for an account. </para>
+            <para>Default is 20*10.</para>
+          </entry>
+        </row>
+        <row>
+          <entry><para>max.account.secondary.storage (GB)</para></entry>
+          <entry><para>Maximum secondary storage space that can be used for an account. </para>
+            <para>Default is 20*20.</para></entry>
+        </row>
+        <row>
+          <entry><para>max.account.network.rate (Mbps)</para></entry>
+          <entry><para>Maximum network rate that can be used for an account. </para>
+            <para>Default is 200.</para></entry>
+        </row>
+        <row>
+          <entry><para>max.project.cpus</para></entry>
+          <entry>
+            <para>Maximum number of CPU cores that can be used for an account. </para>
+            <para>Default is 40.</para>
+          </entry>
+        </row>
+        <row>
+          <entry><para>max.project.ram (MB)</para></entry>
+          <entry>
+            <para>Maximum RAM that can be used for an account. </para>
+            <para>Default is 40960.</para>
+          </entry>
+        </row>
+        <row>
+          <entry><para>max.project.primary.storage (GB)</para></entry>
+          <entry>
+            <para>Maximum primary storage space that can be used for an account. </para>
+            <para>Default is 20*10.</para>
+          </entry>
+        </row>
+        <row>
+          <entry><para>max.project.secondary.storage (GB)</para></entry>
+          <entry>
+            <para>Maximum secondary storage space that can be used for an account. </para>
+            <para>Default is 20*20.</para>
+          </entry>
+        </row>
+        <row>
+          <entry><para>max.project.network.rate (Mbps)</para></entry>
+          <entry>
+            <para>Maximum network rate that can be used for an account. </para>
+            <para>Default is 200.</para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+  <section id="user-permission-rn">
+    <title>User Permission</title>
+    <para>The root administrator, domain administrators and users are able to list resources. Ensure
+      that proper logs are maintained in the <filename>vmops.log</filename> and
+        <filename>api.log</filename> files.</para>
+    <itemizedlist>
+      <listitem>
+        <para>The root admin will have the privilege to list and update resource limits.</para>
+      </listitem>
+      <listitem>
+        <para>The domain administrators are allowed to list and change these resource limits only
+          for the sub-domains and accounts under their own domain or the sub-domains. </para>
+      </listitem>
+      <listitem>
+        <para>Normal users would have privilege to list resource limits. Use the listResourceLimits
+          API.</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section id="consideration-rn">
+    <title>Use Cases and Considerations</title>
+    <itemizedlist>
+      <listitem>
+        <para>When you refer to Primary or Seconday storage space, it implies that the stated size
+          of the volume and not the physical size&mdash; the actual consumed size on disk in case of
+          thin provisioning.</para>
+      </listitem>
+      <listitem>
+        <para>If admin reduces the resource limit for an account and set it to less than the
+          resources currently consumed by that account, the existing VMs/templates/volumes are
+          destroyed. Using those resources, limits are imposed if the user under that account tries
+          to execute a new operation. For example, the existing behavior in the case of a VM are: </para>
+        <itemizedlist>
+          <listitem>
+            <para>migrateVirtualMachine: The users under that account will be able to migrate the
+              running VM into any other host without facing any limit issue.</para>
+          </listitem>
+          <listitem>
+            <para>recoverVirtualMachine: Destroyed VMs cannot be recovered.</para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+      <listitem>
+        <para>For any resource type, if a domain has limit X, sub-domain or accounts under that
+          domain can have there own limits, but at any point of time the sum of resource allocated
+          to sub-domain or accounts under the domain should never exceed the value X.</para>
+        <para>For example, if a domain has the CPU limit of 40 and sub-domain D1 and account A1 can
+          have limits of 30 each, but at any point of time the resource allocated to D1 and A1
+          should not exceed the limit 40.</para>
+      </listitem>
+      <listitem>
+        <para>If any operation needs to pass through two of more resource limit check, then the
+          lower of 2 limits will be enforced, For e.g. if an account has VM limit of 10 and CPU
+          limit of 20 and user under that account requests 5 VMs of 4 CPUs each, after this user can
+          deploy 5 more VMs(because VM limit is 10) but user has exausted his CPU limit and cannot
+          deploy any more instance.</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section id="per-domain-limits">
+    <title>Per-Domain Limits</title>
+    <para>&PRODUCT; allows the configuration of limits on a domain basis. With a domain limit in
+      place, all users still have their account limits. They are additionally limited, as a group,
+      to not exceed the resource limits set on their domain. Domain limits aggregate the usage of
+      all accounts in the domain as well as all accounts in all sub-domains of that domain. Limits
+      set at the root domain level apply to the sum of resource usage by the accounts in all domains
+      and sub-domains below that root domain.</para>
+    <para>To set a domain limit:</para>
+    <orderedlist>
+      <listitem>
+        <para>Log in to the &PRODUCT; UI.</para>
+      </listitem>
+      <listitem>
+        <para>In the left navigation tree, click Domains.</para>
+      </listitem>
+      <listitem>
+        <para>Select the domain you want to modify. The current domain limits are displayed. </para>
+        <para>A value of -1 shows that there is no limit in place.</para>
+      </listitem>
+      <listitem>
+        <para>Click the Edit button<inlinemediaobject>
+            <imageobject>
+              <imagedata fileref="./images/edit-icon.png"/>
+            </imageobject>
+            <textobject>
+              <phrase>editbutton.png: edits the settings.</phrase>
+            </textobject>
+          </inlinemediaobject></para>
+      </listitem>
+      <listitem>
+        <para>Edit the following as per your requirement:</para>
+        <informaltable>
+          <tgroup cols="2" align="left" colsep="1" rowsep="1">
+            <thead>
+              <row>
+                <entry><para>Parameter Name</para></entry>
+                <entry><para>Description</para></entry>
+              </row>
+            </thead>
+            <tbody>
+              <row>
+                <entry><para>Instance Limits</para></entry>
+                <entry><para>The number of instances that can be used in a domain.</para></entry>
+              </row>
+              <row>
+                <entry><para>Public IP Limits</para></entry>
+                <entry>
+                  <para>The number of public IP addresses that can be used in a
+                  domain.</para></entry>
+              </row>
+              <row>
+                <entry><para>Volume Limits</para></entry>
+                <entry><para>The number of disk volumes that can be created in a domain. </para>
+                </entry>
+              </row>
+              <row>
+                <entry><para>Snapshot Limits</para></entry>
+                <entry>The number of snapshots that can be created in a domain.</entry>
+              </row>
+              <row>
+                <entry><para>Template Limits</para></entry>
+                <entry><para>The number of templates that can be registered in a
+                  domain.</para></entry>
+              </row>
+              <row>
+                <entry><para>VPC limits</para></entry>
+                <entry><para>The number of VPCs that can be created in a domain.</para></entry>
+              </row>
+              <row>
+                <entry><para>CPU limits</para></entry>
+                <entry>
+                  <para>The number of CPU cores that can be used for a domain.</para>
+                </entry>
+              </row>
+              <row>
+                <entry><para>Memory limits (MB)</para></entry>
+                <entry>
+                  <para>The number of RAM that can be used for a domain.</para>
+                </entry>
+              </row>
+              <row>
+                <entry><para>Primary Storage limits (GB)</para></entry>
+                <entry>
+                  <para>The primary storage space that can be used for a domain.</para>
+                </entry>
+              </row>
+              <row>
+                <entry><para>Secondary Storage limits (GB)</para></entry>
+                <entry>
+                  <para>The secondary storage space that can be used for a domain.</para>
+                </entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+      </listitem>
+      <listitem><para>Click Apply.</para></listitem>
+    </orderedlist>
+  </section>
+  <section id="default-account-resource-limit">
+    <title>Default Account Resource Limits</title>
+    <para>You can limit resource use by accounts. The default limits are set by using global
+      configuration parameters, and they affect all accounts within a cloud. The relevant parameters
+      are those beginning with max.account, for example: max.account.snapshots.</para>
+    <para>To override a default limit for a particular account, set a per-account resource
+      limit.</para>
+    <orderedlist>
+      <listitem>
+        <para>Log in to the &PRODUCT; UI.</para>
+      </listitem>
+      <listitem>
+        <para>In the left navigation tree, click Accounts.</para>
+      </listitem>
+      <listitem>
+        <para>Select the account you want to modify. The current limits are displayed. </para>
+        <para>A value of -1 shows that there is no limit in place.</para>
+      </listitem>
+      <listitem>
+        <para>Click the Edit button.<inlinemediaobject>
+            <imageobject>
+              <imagedata fileref="./images/edit-icon.png"/>
+            </imageobject>
+            <textobject>
+              <phrase>editbutton.png: edits the settings</phrase>
+            </textobject>
+          </inlinemediaobject></para>
+      </listitem>
+      <listitem>
+        <para>Edit the following as per your requirement:</para>
+        <informaltable>
+          <tgroup cols="2" align="left" colsep="1" rowsep="1">
+            <thead>
+              <row>
+                <entry><para>Parameter Name</para></entry>
+                <entry><para>Description</para></entry>
+              </row>
+            </thead>
+            <tbody>
+              <row>
+                <entry><para>Instance Limits</para></entry>
+                <entry><para>The number of instances that can be used in an account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>Public IP Limits</para></entry>
+                <entry>
+                  <para>The number of public IP addresses that can be used in an
+                  account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>Volume Limits</para></entry>
+                <entry><para>The number of disk volumes that can be created in an account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>Snapshot Limits</para></entry>
+                <entry><para>The number of snapshots that can be created in an account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>Template Limits</para></entry>
+                <entry><para>The number of templates that can be registered in an
+                account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>VPC limits</para></entry>
+                <entry><para>The number of VPCs that can be created in an account.</para>
+                  <para>The default is 20.</para></entry>
+              </row>
+              <row>
+                <entry><para>CPU limits</para></entry>
+                <entry>
+                  <para>The number of CPU cores that can be used for an account.</para>
+                  <para>The default is 40.</para></entry>
+              </row>
+              <row>
+                <entry><para>Memory limits (MB)</para></entry>
+                <entry>
+                  <para>The number of RAM that can be used for an account.</para>
+                  <para>The default is 40960.</para></entry>
+              </row>
+              <row>
+                <entry><para>Primary Storage limits (GB)</para></entry>
+                <entry>
+                  <para>The primary storage space that can be used for an account.</para>
+                  <para>The default is 200.</para></entry>
+              </row>
+              <row>
+                <entry><para>Secondary Storage limits (GB)</para></entry>
+                <entry>
+                  <para>The secondary storage space that can be used for an account.</para>
+                  <para>The default is 400.</para></entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+      </listitem>
+      <listitem><para>Click Apply.</para></listitem>
+    </orderedlist>
+  </section>
+</section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2f67dae7/docs/en-US/work-with-usage.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/work-with-usage.xml b/docs/en-US/work-with-usage.xml
index 00a7fb5..c40b1e2 100644
--- a/docs/en-US/work-with-usage.xml
+++ b/docs/en-US/work-with-usage.xml
@@ -21,16 +21,18 @@
     specific language governing permissions and limitations
     under the License.
 -->
-
 <chapter id="work-with-usage">
-    <title>Working with Usage</title>
-    <para>The Usage Server is an optional, separately-installed part of &PRODUCT; that provides aggregated usage records which you can use to create billing integration for &PRODUCT;. The Usage Server works by taking data from the events log and creating summary usage records that you can access using the listUsageRecords API call. </para>
-    <para>The usage records show the amount of resources, such as VM run time or template storage
-        space, consumed by guest instances.</para>
-    <para>The Usage Server runs at least once per day. It can be configured to run multiple times per day.</para>
-    <xi:include href="configure-usage-server.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="set-usage-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="globally-configured-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-    <xi:include href="default-account-resource-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
-    <xi:include href="per-domain-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
+  <title>Working with Usage</title>
+  <para>The Usage Server is an optional, separately-installed part of &PRODUCT; that provides
+    aggregated usage records which you can use to create billing integration for &PRODUCT;. The
+    Usage Server works by taking data from the events log and creating summary usage records that
+    you can access using the listUsageRecords API call. </para>
+  <para>The usage records show the amount of resources, such as VM run time or template storage
+    space, consumed by guest instances.</para>
+  <para>The Usage Server runs at least once per day. It can be configured to run multiple times per
+    day.</para>
+  <xi:include href="configure-usage-server.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+  <xi:include href="set-usage-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+  <xi:include href="globally-configured-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+  <xi:include href="limit-accounts-domains.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 </chapter>


[26/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Alphebetical order for keys, remove one duplicate key

Signed-off-by: Milamber <mi...@apache.org>


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

Branch: refs/heads/internallb
Commit: 2a769cffc02f0c3e6c75389fc6dc027e3b3260cb
Parents: a1912d9
Author: Milamber <mi...@apache.org>
Authored: Mon Apr 22 16:04:56 2013 +0000
Committer: Milamber <mi...@apache.org>
Committed: Mon Apr 22 16:52:16 2013 +0000

----------------------------------------------------------------------
 .../WEB-INF/classes/resources/messages.properties  | 1857 +++++++--------
 1 files changed, 889 insertions(+), 968 deletions(-)
----------------------------------------------------------------------



[24/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Adding new release manager scripts to master (used for 4.1.0 RCs)

Signed-off-by: Chip Childers <ch...@apache.org>


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

Branch: refs/heads/internallb
Commit: c064afe069d6d134271ea7cc4ea5f0f0d5a56043
Parents: a1912d9
Author: Chip Childers <ch...@apache.org>
Authored: Mon Apr 22 12:48:44 2013 -0400
Committer: Chip Childers <ch...@apache.org>
Committed: Mon Apr 22 12:48:44 2013 -0400

----------------------------------------------------------------------
 tools/build/build_asf.sh      |   79 ++++++++++++++++++++++++++++++------
 tools/build/setnextversion.sh |   75 ++++++++++++++++++++++++++++++++++
 2 files changed, 141 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c064afe0/tools/build/build_asf.sh
----------------------------------------------------------------------
diff --git a/tools/build/build_asf.sh b/tools/build/build_asf.sh
index f58f5e0..a4a4706 100755
--- a/tools/build/build_asf.sh
+++ b/tools/build/build_asf.sh
@@ -18,33 +18,34 @@
 
 version='TESTBUILD'
 sourcedir=~/cloudstack/
-outputdir=~/cs-asf-build/
+outputdir=/tmp/cloudstack-build/
 branch='master'
 tag='no'
 certid='X'
+committosvn='X'
 
 usage(){
-    echo "usage: $0 -v version [-b branch] [-s source dir] [-o output dir] [-t [-u]] [-h]"
+    echo "usage: $0 -v version [-b branch] [-s source dir] [-o output dir] [-t] [-u] [-c] [-h]"
     echo "  -v sets the version"
     echo "  -b sets the branch (defaults to 'master')"
     echo "  -s sets the source directory (defaults to $sourcedir)"
     echo "  -o sets the output directory (defaults to $outputdir)"
     echo "  -t tags the git repo with the version"
-    echo "  -u sets the certificate ID to sign the tag with (if not provided, the default key is attempted)"
-    echo "  -k sets the key to sign the tarball with"
+    echo "  -u sets the certificate ID to sign with (if not provided, the default key is attempted)"
+    echo "  -c commits build artifacts to cloudstack dev dist dir in svn"
     echo "  -h"
 }
 
-while getopts v:s:o:b:tu:k:h opt
+while getopts v:s:o:b:u:tch opt
 do
     case "$opt" in
       v)  version="$OPTARG";;
       s)  sourcedir="$OPTARG";;
       o)  outputdir="$OPTARG";;
       b)  branch="$OPTARG";;
-      t)  tag='yes';;
+      t)  tag="yes";;
       u)  certid="$OPTARG";;
-      k)  keyid="--default-key $OPTARG";;
+      c)  committosvn="yes";;
       h)  usage
           exit 0;;
       /?)       # unknown flag
@@ -54,7 +55,7 @@ do
 done
 shift `expr $OPTIND - 1`
 
-if [ $version == 'TESTBUILD' ]; then
+if [ $version == "TESTBUILD" ]; then
     echo >&2 "A version must be specified with the -v option: build_asf.sh -v 4.0.0.RC1"
     exit 1
 fi
@@ -63,8 +64,8 @@ echo "Using version: $version"
 echo "Using source directory: $sourcedir"
 echo "Using output directory: $outputdir"
 echo "Using branch: $branch"
-if [ $tag == 'yes' ]; then
-    if [ $certid == 'X' ]; then
+if [ "$tag" == "yes" ]; then
+    if [ "$certid" == "X" ]; then
         echo "Tagging the branch with the version number, and signing the branch with your default certificate."
     else
         echo "Tagging the branch with the version number, and signing the branch with certificate ID $certid."
@@ -80,13 +81,38 @@ else
 fi
 
 cd $sourcedir
+
+echo 'checking out correct branch'
+git checkout $branch
+
+echo 'determining current mvn version'
+export currentversion=`mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\['`
+echo "found $currentversion"
+
+echo 'setting version numbers'
+mvn versions:set -DnewVersion=$version -P vmware -P developer -P systemvm -P simulator -P baremetal -P ucs -Dnonoss
+mv deps/XenServerJava/pom.xml.versionsBackup deps/XenServerJava/pom.xml
+perl -pi -e 's/$ENV{'currentversion'}/$ENV{'version'}/' deps/XenServerJava/pom.xml
+perl -pi -e 's/$ENV{'currentversion'}/$ENV{'version'}/' tools/apidoc/pom.xml
+git clean -f
+
+echo 'commit changes'
+git commit -a -s -m "Updating pom.xml version numbers for release $version"
+export commitsh=`git show HEAD | head -n 1 | cut -d ' ' -f 2`
+
+echo "committed as $commitsh"
+
 echo 'archiving'
 git archive --format=tar --prefix=apache-cloudstack-$version-src/ $branch > $outputdir/apache-cloudstack-$version-src.tar
 bzip2 $outputdir/apache-cloudstack-$version-src.tar
 
 cd $outputdir
 echo 'armor'
-gpg -v $keyid --armor --output apache-cloudstack-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-$version-src.tar.bz2
+if [ "$certid" == "X" ]; then
+  gpg -v --armor --output apache-cloudstack-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-$version-src.tar.bz2
+else
+  gpg -v --default-key $certid --armor --output apache-cloudstack-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-$version-src.tar.bz2
+fi
 
 echo 'md5'
 gpg -v --print-md MD5 apache-cloudstack-$version-src.tar.bz2 > apache-cloudstack-$version-src.tar.bz2.md5
@@ -97,12 +123,39 @@ gpg -v --print-md SHA512 apache-cloudstack-$version-src.tar.bz2 > apache-cloudst
 echo 'verify'
 gpg -v --verify apache-cloudstack-$version-src.tar.bz2.asc apache-cloudstack-$version-src.tar.bz2
 
-if [ $tag == 'yes' ]; then
+if [ "$tag" == "yes" ]; then
   echo 'tag'
   cd $sourcedir
-  if [ $certid == 'X' ]; then
+  if [ "$certid" == "X" ]; then
       git tag -s $version -m "Tagging release $version on branch $branch."
   else
       git tag -u $certid -s $version -m "Tagging release $version on branch $branch."
   fi
 fi
+
+if [ "$committosvn" == "yes" ]; then
+  echo 'committing artifacts to svn'
+  rm -Rf /tmp/cloudstack-dev-dist
+  cd /tmp
+  svn co https://dist.apache.org/repos/dist/dev/cloudstack/ cloudstack-dev-dist
+  cd cloudstack-dev-dist
+  if [ -d "$version" ]; then
+    cd $version
+    svn rm *
+  else
+    mkdir $version
+    svn add $version
+    cd $version
+  fi
+  cp $outputdir/apache-cloudstack-$version-src.tar.bz2 .
+  cp $outputdir/apache-cloudstack-$version-src.tar.bz2.asc .
+  cp $outputdir/apache-cloudstack-$version-src.tar.bz2.md5 .
+  cp $outputdir/apache-cloudstack-$version-src.tar.bz2.sha .
+  svn add apache-cloudstack-$version-src.tar.bz2
+  svn add apache-cloudstack-$version-src.tar.bz2.asc
+  svn add apache-cloudstack-$version-src.tar.bz2.md5
+  svn add apache-cloudstack-$version-src.tar.bz2.sha
+  svn commit -m "Committing release candidate artifacts for $version to dist/dev/cloudstack in preparation for release vote"
+fi
+
+echo "completed.  use commit-sh of $commitsh when starting the VOTE thread"

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c064afe0/tools/build/setnextversion.sh
----------------------------------------------------------------------
diff --git a/tools/build/setnextversion.sh b/tools/build/setnextversion.sh
new file mode 100755
index 0000000..71173a3
--- /dev/null
+++ b/tools/build/setnextversion.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+version='TESTBUILD'
+sourcedir=~/cloudstack/
+branch='master'
+
+usage(){
+    echo "usage: $0 -v version [-b branch] [-s source dir] [-h]"
+    echo "  -v sets the version"
+    echo "  -b sets the branch (defaults to 'master')"
+    echo "  -s sets the source directory (defaults to $sourcedir)"
+    echo "  -h"
+}
+
+while getopts v:s:b:h opt
+do
+    case "$opt" in
+      v)  version="$OPTARG";;
+      s)  sourcedir="$OPTARG";;
+      b)  branch="$OPTARG";;
+      h)  usage
+          exit 0;;
+      /?)       # unknown flag
+          usage
+          exit 1;;
+    esac
+done
+shift `expr $OPTIND - 1`
+
+if [ $version == 'TESTBUILD' ]; then
+    echo >&2 "A version must be specified with the -v option: $0 -v 4.0.0.RC1"
+    exit 1
+fi
+
+echo "Using version: $version"
+echo "Using source directory: $sourcedir"
+echo "Using branch: $branch"
+
+cd $sourcedir
+
+echo 'checking out correct branch'
+git checkout $branch
+
+echo 'determining current mvn version'
+export currentversion=`mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -v '\['`
+echo "found $currentversion"
+
+echo 'setting version numbers'
+mvn versions:set -DnewVersion=$version -P vmware -P developer -P systemvm -P simulator -P baremetal -P ucs -Dnonoss
+mv deps/XenServerJava/pom.xml.versionsBackup deps/XenServerJava/pom.xml
+perl -pi -e 's/$ENV{'currentversion'}/$ENV{'version'}/' deps/XenServerJava/pom.xml
+perl -pi -e 's/$ENV{'currentversion'}/$ENV{'version'}/' tools/apidoc/pom.xml
+git clean -f
+
+echo 'commit changes'
+git commit -a -s -m "Updating pom.xml version numbers for release $version"
+export commitsh=`git show HEAD | head -n 1 | cut -d ' ' -f 2`
+
+echo "committed as $commitsh"


[46/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - extend listTemplates API to return zone type.


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

Branch: refs/heads/internallb
Commit: f7f1279d81f32a908b552f38f724e4d5ba4dab7e
Parents: 16ba999
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 13:01:09 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 13:01:55 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/api/response/TemplateResponse.java  |    7 +++++++
 server/src/com/cloud/api/ApiResponseHelper.java    |    1 +
 2 files changed, 8 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f7f1279d/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/TemplateResponse.java b/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
index ed933ff..896154a 100644
--- a/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
@@ -87,6 +87,9 @@ public class TemplateResponse extends BaseResponse implements ControlledEntityRe
 
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the name of the zone for this template")
     private String zoneName;
+    
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description="the networktype of the zone for this template")
+    private String zoneType;
 
     @SerializedName(ApiConstants.STATUS) @Param(description="the status of the template")
     private String status;
@@ -156,6 +159,10 @@ public class TemplateResponse extends BaseResponse implements ControlledEntityRe
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setAccountId(String accountId) {
         this.accountId = accountId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f7f1279d/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 84dc46e..0b996c9 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -1449,6 +1449,7 @@ public class ApiResponseHelper implements ResponseGenerator {
             // Add the zone ID
             templateResponse.setZoneId(datacenter.getUuid());
             templateResponse.setZoneName(datacenter.getName());
+            templateResponse.setZoneType(datacenter.getNetworkType().toString());
         }
 
         boolean isAdmin = false;


[35/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1617: cloudstack UI - IPv6 - zone wizard - hide IPv6 DNS 1, IPv6 DNS2 when Advanced SG-Enabled mode is selected.


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

Branch: refs/heads/internallb
Commit: b9d8955f4d9467467baa33416c4f939bdb76e08b
Parents: 2790069
Author: Jessica Wang <je...@apache.org>
Authored: Mon Apr 22 14:24:03 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 14:24:03 2013 -0700

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9d8955f/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index aa2c2fa..b282585 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -323,23 +323,30 @@
         preFilter: function(args) {
           var $form = args.$form;
 
-          if (args.data['network-model'] == 'Basic') {
+          if (args.data['network-model'] == 'Basic') { //Basic zone
             args.$form.find('[rel=networkOfferingId]').show();
             args.$form.find('[rel=guestcidraddress]').hide();						
-						args.$form.find('[rel=ip6dns1]').hide();
-						args.$form.find('[rel=ip6dns2]').hide();
+	    
+            args.$form.find('[rel=ip6dns1]').hide();
+	    args.$form.find('[rel=ip6dns2]').hide();
           }
-          else { //args.data['network-model'] == 'Advanced'
+          else { //Advanced zone
             args.$form.find('[rel=networkOfferingId]').hide();
 						
-						if(args.data["zone-advanced-sg-enabled"] !=	"on")
+	    if(args.data["zone-advanced-sg-enabled"] !=	"on") { //Advanced SG-disabled zone
               args.$form.find('[rel=guestcidraddress]').show();
-						else //args.data["zone-advanced-sg-enabled"] ==	"on
-						  args.$form.find('[rel=guestcidraddress]').hide();
-          					  
-						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();
+
+              args.$form.find('[rel=ip6dns1]').hide();
+	      args.$form.find('[rel=ip6dns2]').hide();
+            }
+          
+	  }													
 										
           setTimeout(function() {
             if ($form.find('input[name=ispublic]').is(':checked')) {


[16/50] [abbrv] fixing RN build errors

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/67bd2c6e/docs/en-US/Release_Notes.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/Release_Notes.xml b/docs/en-US/Release_Notes.xml
index 354c25d..cda8d72 100644
--- a/docs/en-US/Release_Notes.xml
+++ b/docs/en-US/Release_Notes.xml
@@ -19,4239 +19,4790 @@ specific language governing permissions and limitations
 under the License.
 -->
 <book>
-    <xi:include href="Book_Info_Release_Notes_4-0.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-    <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-    <chapter id="welcome-4.1">
-        <title>Welcome to &PRODUCT; 4.1</title>
-        <para>Welcome to the 4.1.0 release of &PRODUCT;, the first major release from the Apache CloudStack project since its graduation from the Apache Incubator.</para>
-        <para>This document contains information specific to this release of &PRODUCT;, including upgrade instructions from prior releases, new features added to &PRODUCT;, API changes, and issues fixed in the release. For installation instructions, please see the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/Installation_Guide/index.html">Installation Guide</ulink>. For usage and administration instructions, please see the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/Admin_Guide/index.html">&PRODUCT; Administrator's Guide</ulink>. Developers and users who wish to work with the API will find instruction in the <ulink url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-incubating/html/API_Developers_Guide/index.html">&PRODUCT; API Developer's Guide</ulink></para>
-        <para>If you find any errors or problems in this guide, please see <xref linkend="feedback"/>. We hope you enjoy working with &PRODUCT;!</para>
-    </chapter>
-    <chapter id="version-4.1">
-        <title>Version 4.1.0</title>
-        <section id="what-new-in-4.1">
-            <title>What’s New in 4.1</title>
-            <para>Apache CloudStack 4.1.0 includes many new features. This section covers the most prominent new features and changes.</para>
-            <section id="localization">
-                <title>Localization</title>
-                <para>The 4.1.0 release adds partial User Interface (UI) support for Catalan, Chinese, French, German, Italian, Japanese, Korean, Norwegian, Portuguese, Russian, and Spanish. Not all languages are complete.</para>
-                <para>The 4.1.0 release also adds documentation translations for Chinese, Chinese (Taiwan), Italian, Japanese, Korean, and Portuguese.</para>
-            </section>
-            <section id="aws-style-regions">
-                <title>Added Region Support</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-241">CLOUDSTACK-241</ulink>: This feature adds a "region" construct that spans several management servers. The objective of this feature is to add AWS EC2 like Regions implementation into CloudStack.  Regions are dispersed and located in separate geographic areas. Availability Zones (or Zones in CloudStack) are distinct locations within a Region that are engineered to be isolated from failures in other Zones and provide inexpensive, low latency network connectivity to other Zones in the same Region.</para>
-                <para>Regions are expected to add the following benefits</para>
-                <itemizedlist>
-                    <listitem><para>Higher availability of the services: users can deploy services across AZs and even if one of the AZ goes down the services are still available to the end-user through VMs deployed in other zones.</para></listitem>
-                    <listitem><para>Higher availability of the Management Server (MS): Since each MS Cluster only manages a single Region, if that MS Cluster goes down, only that particular Region is impacted. Admin should be able to access all the other Regions.</para></listitem>
-                    <listitem><para>Scalability: The scalability limit of CloudStack dramatically improves, as the scalability limit of MS Cluster is limited to a single Region.</para></listitem>
-                    <listitem><para>Object Store: With Regions construct, CloudStack would also allow users to define Object Store (Secondary Storage) across AZs. This helps users easily deploy VMs in different AZs using the same template, offerings.</para></listitem>
-                    <listitem><para>Geographical Grouping: Regions allow admins to group AZs (that have low latency and are geographically located nearby) into a broader region construct.</para></listitem>
-                </itemizedlist>
-                <para>Currently the Region feature is exposed in the API, but does not have a UI component.</para>
-            </section>
-            <section id="ec2-query-api">
-                <title>Support for EC2 Query API</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-197">CLOUDSTACK-197</ulink>: This introduces a query API for the AWS APIs that are currently only supported by SOAP. The AWS Java SDK and AWS PHP SDK should now be supported by the AWSAPI in CloudStack.</para>
-                <para>Supported Query APIs in 4.1.0:</para>
-                <itemizedlist>
-                    <listitem><para><command>AllocateAddress</command></para></listitem>
-                    <listitem><para><command>AssociateAddress</command></para></listitem>
-                    <listitem><para><command>AttachVolume</command></para></listitem>
-                    <listitem><para><command>AuthorizeSecurityGroupIngress</command></para></listitem>
-                    <listitem><para><command>CreateImage</command></para></listitem>
-                    <listitem><para><command>CreateKeyPair</command></para></listitem>
-                    <listitem><para><command>CreateSecurityGroup</command></para></listitem>
-                    <listitem><para><command>CreateSnapshot</command></para></listitem>
-                    <listitem><para><command>CreateTags</command></para></listitem>
-                    <listitem><para><command>CreateVolume</command></para></listitem>
-                    <listitem><para><command>DeleteKeyPair</command></para></listitem>
-                    <listitem><para><command>DeleteSecurityGroup</command></para></listitem>
-                    <listitem><para><command>DeleteSnapshot</command></para></listitem>
-                    <listitem><para><command>DeleteTags</command></para></listitem>
-                    <listitem><para><command>DeleteVolume</command></para></listitem>
-                    <listitem><para><command>DeregisterImage</command></para></listitem>
-                    <listitem><para><command>DescribeAddresses</command></para></listitem>
-                    <listitem><para><command>DescribeAvailabilityZones</command></para></listitem>
-                    <listitem><para><command>DescribeImageAttribute</command></para></listitem>
-                    <listitem><para><command>DescribeImages</command></para></listitem>
-                    <listitem><para><command>DescribeInstanceAttribute</command></para></listitem>
-                    <listitem><para><command>DescribeInstances</command></para></listitem>
-                    <listitem><para><command>DescribeKeyPairs</command></para></listitem>
-                    <listitem><para><command>DescribeSecurityGroups</command></para></listitem>
-                    <listitem><para><command>DescribeSnapshots</command></para></listitem>
-                    <listitem><para><command>DescribeTags</command></para></listitem>
-                    <listitem><para><command>DescribeVolumes</command></para></listitem>
-                    <listitem><para><command>DetachVolume</command></para></listitem>
-                    <listitem><para><command>DisassociateAddress</command></para></listitem>
-                    <listitem><para><command>GetPasswordData</command></para></listitem>
-                    <listitem><para><command>ImportkeyPair</command></para></listitem>
-                    <listitem><para><command>ModifyImageAttribute</command></para></listitem>
-                    <listitem><para><command>RebootInstances</command></para></listitem>
-                    <listitem><para><command>RegisterImage</command></para></listitem>
-                    <listitem><para><command>ReleaseAddress</command></para></listitem>
-                    <listitem><para><command>ResetImageAttribute</command></para></listitem>
-                    <listitem><para><command>RevokeSecurityGroupIngress</command></para></listitem>
-                    <listitem><para><command>RunInstances</command></para></listitem>
-                    <listitem><para><command>StartInstances</command></para></listitem>
-                    <listitem><para><command>StopInstances</command></para></listitem>
-                    <listitem><para><command>TerminateInstances</command></para></listitem>
-                </itemizedlist>
-                <para>See the <ulink url="https://cwiki.apache.org/CLOUDSTACK/ec2-functional-spec-for-query-api-support.html">Feature Specification</ulink> for more information on the Query API support.</para>
-            </section>
-            <section id="cloudmonkey">
-                <title>Auto-Completing Shell for CloudStack (CloudMonkey)</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-132">CLOUDSTACK-132</ulink>: Adds a auto-completing shell and command-line tool for &PRODUCT; written in Python, called <application>CloudMonkey</application>.</para>
-                <para>CloudMonkey includes the following features:</para>
-                <itemizedlist>
-                    <listitem><para>Usable as a command line tool and interactive shell.</para></listitem>
-                    <listitem><para>All commands are lowercase unlike API.</para></listitem>
-                    <listitem><para>Api Discovery using sync feature, with build time api precaching for failsafe sync.</para></listitem>
-                    <listitem><para>Raw api execution support.</para></listitem>
-                    <listitem><para>Auto-completion via double <command>tab</command>.</para></listitem>
-                    <listitem><para>Reverse search using <command>Ctrl+R</command></para></listitem>
-                    <listitem><para>Emacs compatible key bindings.</para></listitem>
-                    <listitem><para>Output that's "pipeable" to other *nix programs.</para></listitem>
-                    <listitem><para>Unix shell execution.</para></listitem>
-                    <listitem><para>Support to handle asynchronous jobs using user defined blocking or non-blocking way.</para></listitem>
-                    <listitem><para>Tabular or JSON output with filtering of table columns.</para></listitem>
-                    <listitem><para>Colored output.</para></listitem>
-                    <listitem><para>API parameter value completion (based on predication, fuzzy results may fail sometimes).</para></listitem>
-                </itemizedlist>
-                <para>CloudMonkey has a few requirements above and beyond CloudStack, and does not need to be run on the same machine as a management server. If you wish to run <application>CloudMonkey</application> you'll need Python 2.5 or later, <application>readline</application>, <application>Pygments</application>, and <application>prettytable</application>. CloudMonkey can be installed with <application>pip</application>:</para>
-                <programlisting language="Bash"><prompt>$</prompt> pip install cloudmonkey</programlisting>
-                <para>See the Developer's Guide and <ulink url="https://cwiki.apache.org/CLOUDSTACK/cloudstack-cloudmonkey-cli.html">the CloudStack wiki</ulink> for the latest information on <application>CloudMonkey</application> installation and use.</para>
-            </section>
-            <section id="apidiscover">
-                <title>API Discovery Service</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-926">CLOUDSTACK-926</ulink>: CloudStack has more than 300 APIs and more are added in each major release. CloudStack admins can enable or disable APIs, or add plugins which provide more APIs. The API Discovery Service is a plugin which will help users discover the APIs available to them on a CloudStack Management Server.</para>
-                <para>The discovery service implements a method called <command>listApis</command> which will return information about APIs for a user. It currently accepts an apiName to list api information of that particular API. The method ensures that user can only list APIs they are entitled to.</para>
-                <para>All CloudStack APIs are implemented by annotated command class and PluggableService is a contract implemented by all the components such as the Management Server and all the plugins which provide an API. During load time, API discovery service asks all the pluggable services to return list of API cmd classes from whose fields and annotations it gathers information about each API, the information consists of name, description, parameter name, parameter description, etc.</para>
-                <para>For more information on the implementation of the API Discovery Service for 4.1.0, see the <ulink url="https://cwiki.apache.org/CLOUDSTACK/api-discovery-service.html">CloudStack wiki</ulink>.</para> 
-            </section>
-            <section id="events-framework">
-                <title>Events Framework</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-820">CLOUDSTACK-820</ulink>: The Events Framework provides a mechanism to publish and subscribe to events in &PRODUCT;.</para>
-            </section>
-            <section id="additional-vmx-settings">
-                <title>Additional VMX Settings</title>
-                <para>###</para>
-            </section>
-            <section id="l3-nicira">
-                <title>L3 Router Functionality in Nicira Nvp Plugin</title>
-                <para>###</para>
-            </section>
-            <section id="persistent-networks">
-                <title>Persistent Networks without Running VM</title>
-                <para>###</para>
-            </section>
-            <section id="add-remove-network-vm">
-                <title>Add/Remove Network on VM</title>
-                <para>###</para>
-            </section>
-            <section id="resize-volumes">
-                <title>Resize Volumes Feature</title>
-                <para>###</para>
-            </section>
-            <section id="autoscale">
-                <title>Autoscale</title>
-                <para>###</para>
-            </section>
-            <section id="api-throttling">
-                <title>API Request Throttling</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-618">CLOUDSTACK-618</ulink>: Limits the number of API requests per second that can be placed against a management server to avoid DoS attacks via API requests.</para>
-                <para>The throttling is controlled by the <command>api.throttling.enabled</command>, <command>api.throttling.interval</command>, and <command>api.throttling.max</command> configuration settings. Note that <command>api.throttling.enabled</command> is set to <emphasis>false</emphasis> by default.</para>
-            </section>
-            <section id="s3-backed-storage">
-                <title>S3 Backed Secondary Storage</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-509">CLOUDSTACK-509</ulink>: This enhancement backs NFS secondary storage with an S3-compatible object store. Periodically, a reaper thread synchronizes the templates, ISOs, and snapshots stored on a NFS secondary storage mount with a configured S3 object store. In addition to permitting the use of commodity or IaaS storage solutions for static assets, it provides a means of automatically synchronizing template and ISO assets across multiple zones.</para>
-                <para>See the <ulink url="https://cwiki.apache.org/CLOUDSTACK/s3-backed-secondary-storage.html">&PRODUCT; wiki</ulink> for more information on this feature, currently the <ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-878">documentation is incomplete</ulink>.</para>
-            </section>
-            <section id="user-domain-admin-create-key">
-                <title>User and Domain Admin Can Create API Key and Secret</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-437">CLOUDSTACK-437</ulink>: This feature adds the ability for domain admins and users to create their own API Key and Secret. Domain admins can create keys for themselves, subdomain admins, and for regular users, but not for other domain admins.</para>
-            </section>
-            <section id="inline-srx-f5-mode">
-                <title>Support Inline Mode for F5 and SRX</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-306">CLOUDSTACK-306</ulink>: For &PRODUCT; deployments using the Juniper SRX (firewall) and F5 Big IP (load balancer), &PRODUCT; 4.1.0 supports putting the firewall in front of the load balancer, making the firewall device the gateway and putting the load balancer behind the public network.</para>
-            </section>
-            <section id="egress-firewall">
-                <title>Egress Firewall Rules for Guest Networks</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-299">CLOUDSTACK-299</ulink>: This feature allows users to create egress (exit) traffic rules from private networks to public networks (<emphasis>e.g.</emphasis> from your internal network to the public Internet). By default all traffic is blocked from internal networks to the public networks, this allows you to open ports as necessary.</para>
-                <para>Egress traffic rules are suppored only on virtual routers at this time, physical devices are not supported.</para>
-            </section>
-            <section id="reset-ssh-key">
-                <title>Reset SSH Key to Access VM</title>
-                <para><ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK-297">CLOUDSTACK-297</ulink>: &PRODUCT; 4.1.0 introduces a new API <command>resetSSHKeyForVirtualMachine</command>, that can allow them to set or reset the SSH keypair assigned to a virtual machine.</para>
-            </section>
-        </section>
-        <section id="issues-fixed-4.0">
-            <title>Issues Fixed in 4.1.0</title>
-            <para>Apache CloudStack uses <ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK">Jira</ulink>
-                to track its issues. All new features and bugs for 4.1.0 have been tracked in Jira, and have 
-                a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the issue number.</para>
-            <para>This section includes a summary of known issues against 4.0.0 that were fixed in 4.1.0. Approximately 470 bugs were resolved or closed in the 4.1.0 cycle.</para>
-            <informaltable>
-                <tgroup cols="2" align="left" colsep="1" rowsep="1">
-                    <colspec colwidth="1*" colname="1" colnum="1"/>
-                    <colspec colwidth="2*" colname="2" colnum="2"/>
-                    <thead>
-                        <row>
-                            <entry>
-                                <para>Defect</para>
-                            </entry>
-                            <entry>
-                                <para>Description</para>
-                            </entry>
-                        </row>
-                    </thead>
-                    <tbody>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-46</para>
-                            </entry>
-                            <entry>
-                                <para>Remnants of mycloud remain.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-70</para>
-                            </entry>
-                            <entry>
-                                <para>Improve Network Restart Behaviour for Basic Zone: Restarting Network Fail</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-94</para>
-                            </entry>
-                            <entry>
-                                <para>"API command, listIsos documentation clarity</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-95</para>
-                            </entry>
-                            <entry>
-                                <para>IP address allocation not working when a user tries to allocate IP addresses in a Project</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-97</para>
-                            </entry>
-                            <entry>
-                                <para>Vmware network labels are ignored when creating a Zone using basic networking</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-108</para>
-                            </entry>
-                            <entry>
-                                <para>VM should not be allowed to be deployed on two Isolated Networks of an Account that were created from DefaultNetworkOfferingwithSourceNATService</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-118</para>
-                            </entry>
-                            <entry>
-                                <para>Status of host resorce stuck in "ErrorInMaintenance"</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-119</para>
-                            </entry>
-                            <entry>
-                                <para>Move Agent-Simulator in to the hypervisor plugin model</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-130</para>
-                            </entry>
-                            <entry>
-                                <para>Clarify docs on tags parameter in API reference</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-152</para>
-                            </entry>
-                            <entry>
-                                <para>Routes on the User VM are programmed incorrectly on a VM present on both Isolated and Shared Guest Network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-178</para>
-                            </entry>
-                            <entry>
-                                <para>Expose name parameter of VM in list Vm view.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-198</para>
-                            </entry>
-                            <entry>
-                                <para>vpn:failto add VPN Users deletes all the existing Vpn user</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-222</para>
-                            </entry>
-                            <entry>
-                                <para>Admin UI prompts to restart Management server with cancel edit operation</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-225</para>
-                            </entry>
-                            <entry>
-                                <para>API Docs: Request params repeated with different description</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-226</para>
-                            </entry>
-                            <entry>
-                                <para>UpdatePhysicalNetworkcommand failed due to java.sql.BatchUpdateException ; Tried to extend the existing Guest VLAN Range of one physical network into the Guest VLAN range of the other physical network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-227</para>
-                            </entry>
-                            <entry>
-                                <para>ReconnectHostCmd: NullPointerException: Unable to get host Information for XenServer 6.0.2 host - on intentionally changing the traffic labels on the physical network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-228</para>
-                            </entry>
-                            <entry>
-                                <para>UI provides an option to reconnect a disconnected host - ServerApiException is thrown on an attempt</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-232</para>
-                            </entry>
-                            <entry>
-                                <para>Zone infrastructure chart -- disable resource total display</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-235</para>
-                            </entry>
-                            <entry>
-                                <para>Network rate can be set in 2 places. Clarify docs on how this works</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-249</para>
-                            </entry>
-                            <entry>
-                                <para>Add host id to failed VM deploy alerts</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-250</para>
-                            </entry>
-                            <entry>
-                                <para>Incorrect description of maintenance mode in admin guide</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-256</para>
-                            </entry>
-                            <entry>
-                                <para>"vpn:As an admin user, not able to delete VPN user which is present in a regular user's network.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-271</para>
-                            </entry>
-                            <entry>
-                                <para>updatePhysicalNetwork dies with an NPE when the vlan range is empty</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-274</para>
-                            </entry>
-                            <entry>
-                                <para>Two error codes mapped to same value in API</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-275</para>
-                            </entry>
-                            <entry>
-                                <para>hostid not always a UUID</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-277</para>
-                            </entry>
-                            <entry>
-                                <para>Message during CloudStack management server Installation: cannot access /usr/share/cloud/bridge/lib: No such file or directory</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-279</para>
-                            </entry>
-                            <entry>
-                                <para>deleteProject fails when executed by the regular user (works fine for root/domain admin)</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-284</para>
-                            </entry>
-                            <entry>
-                                <para>listVirtualMachines does not return deleted machines when zone is specified</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-290</para>
-                            </entry>
-                            <entry>
-                                <para>3.0.0 template also needed for 2.2.14 to 3.0.5 direct upgrade.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-293</para>
-                            </entry>
-                            <entry>
-                                <para>"We do awful, hacky things in our spec file for client"</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-304</para>
-                            </entry>
-                            <entry>
-                                <para>Add synchronization for createSnapshot command per host basis</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-309</para>
-                            </entry>
-                            <entry>
-                                <para>iptables rules being deleted from wrong VM after a migration</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-318</para>
-                            </entry>
-                            <entry>
-                                <para>Adding XenServer Host Fails - 6.0.2 fails with 4.0.0</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-320</para>
-                            </entry>
-                            <entry>
-                                <para>"sessionKey query parameter should be case-insensitive, now only sessionkey is accepted"</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-322</para>
-                            </entry>
-                            <entry>
-                                <para>During upgrade displays error - a foreign key constraint fails (`cloud/#sql-f34_6e`..</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-332</para>
-                            </entry>
-                            <entry>
-                                <para>"count" property in list* API response should be equal to how many entries in database, not how many objects in API response</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-333</para>
-                            </entry>
-                            <entry>
-                                <para>When Datacenter name in VCenter has spaces Primary Storage (VMFS) discovery will fail</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-335</para>
-                            </entry>
-                            <entry>
-                                <para>KVM VPC load balancer not working</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-336</para>
-                            </entry>
-                            <entry>
-                                <para>listZones doesn't honour paging</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-343</para>
-                            </entry>
-                            <entry>
-                                <para>"Document what tools and packages are required to build, package and install CloudStack 4.0</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-346</para>
-                            </entry>
-                            <entry>
-                                <para>Cannot add Vmware cluster with class loader conflict exception</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-347</para>
-                            </entry>
-                            <entry>
-                                <para>listNetworks API: return vlan information only when the caller is ROOT admin</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-348</para>
-                            </entry>
-                            <entry>
-                                <para>deleteNetwork does not clean up network resource count correctly</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-354</para>
-                            </entry>
-                            <entry>
-                                <para>Display of storage statistics is wrong</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-355</para>
-                            </entry>
-                            <entry>
-                                <para>"Fix ""count"" in a bunch of API commands</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-357</para>
-                            </entry>
-                            <entry>
-                                <para>"ISOs can be deleted while still attached to a running VM, and they subsequently cannot be detached from a running VM</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-359</para>
-                            </entry>
-                            <entry>
-                                <para>PropagateResourceEventCommand failes in cluster configuration</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-361</para>
-                            </entry>
-                            <entry>
-                                <para>Wrong creation of guest networks on a KVM host in Multiple Physical Networks with guest traffic</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-364</para>
-                            </entry>
-                            <entry>
-                                <para>Docs point to download.cloud.com for AWS API script</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-368</para>
-                            </entry>
-                            <entry>
-                                <para>OVM - cannot create guest VM</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-369</para>
-                            </entry>
-                            <entry>
-                                <para>ASF 4.0 - unable to support XenServer 6.1 host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-373</para>
-                            </entry>
-                            <entry>
-                                <para>"static NAT and Firewall is not working on external firewall device SRX, it needs to be implemented</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-377</para>
-                            </entry>
-                            <entry>
-                                <para>provide deployment config access to marvin's testcase</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-378</para>
-                            </entry>
-                            <entry>
-                                <para>mavenize marvin on master</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-390</para>
-                            </entry>
-                            <entry>
-                                <para>Install Guide: Section 4.5.7 (Prepare the System VM Template): Links go to cloud.com</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-397</para>
-                            </entry>
-                            <entry>
-                                <para>Install Guide: Section 11.1 (Guest Traffic): Diagram is the wrong diagram</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-398</para>
-                            </entry>
-                            <entry>
-                                <para>Install Guide: Section 11.17.3 (Using VPN with Mac OSX): Not complete</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-404</para>
-                            </entry>
-                            <entry>
-                                <para>Update docs on the usage of cloud-setup-database</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-412</para>
-                            </entry>
-                            <entry>
-                                <para>Data truncation: Out of range value for column 'ram' at row </para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-415</para>
-                            </entry>
-                            <entry>
-                                <para>restartNetwork call causes VM to be unreachable when Nicira based SDN is used</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-416</para>
-                            </entry>
-                            <entry>
-                                <para>XCP 1.6beta2 (61002c) - can't add a host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-417</para>
-                            </entry>
-                            <entry>
-                                <para>Handle password server securely to run on port 8080 on VR</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-424</para>
-                            </entry>
-                            <entry>
-                                <para>Updated userdata not propagating to the VR</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-427</para>
-                            </entry>
-                            <entry>
-                                <para>Change hardcoded step number references to dynamic link</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-428</para>
-                            </entry>
-                            <entry>
-                                <para>Storage capacity shown in UI is incorrect</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-435</para>
-                            </entry>
-                            <entry>
-                                <para>Vmware network labels are ignored when creating a Zone using basic networking</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-441</para>
-                            </entry>
-                            <entry>
-                                <para>Running mgmt server using jetty fails to start api server</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-446</para>
-                            </entry>
-                            <entry>
-                                <para>"Host going to alert state, if you are adding already added host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-448</para>
-                            </entry>
-                            <entry>
-                                <para>SSVM bootstrap failure on XenServer hosts with E3 CPU</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-456</para>
-                            </entry>
-                            <entry>
-                                <para>License tag in SPEC isn't what RPM is expecting</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-459</para>
-                            </entry>
-                            <entry>
-                                <para>[Optional Public IP assignment for EIP with Basic Zone] Associate IP Checkbox in Create Network Offering Dialog is Displayed When Elastic LB is Selected</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-462</para>
-                            </entry>
-                            <entry>
-                                <para>A few corrections to make to the 4.0.0 installation guide</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-464</para>
-                            </entry>
-                            <entry>
-                                <para>"Regression in AWSAPI docs, entire sections removed</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-465</para>
-                            </entry>
-                            <entry>
-                                <para>French language file quotes are dropping javascript syntax error</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-467</para>
-                            </entry>
-                            <entry>
-                                <para>Developer's Guide points to cloud.com for API reference</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-479</para>
-                            </entry>
-                            <entry>
-                                <para>UpdateVirtualMachine api fails to propagate userdata to domr</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-481</para>
-                            </entry>
-                            <entry>
-                                <para>Installation Guide Doc Error</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-493</para>
-                            </entry>
-                            <entry>
-                                <para>2.2.x-3.0 DB upgrade support for Advance SG enabled network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-499</para>
-                            </entry>
-                            <entry>
-                                <para>cloudmonkey CLI can't accept complex parameter</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-500</para>
-                            </entry>
-                            <entry>
-                                <para>Passwd-server iptables rules are dropped on domr on fresh start or on reboot.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-501</para>
-                            </entry>
-                            <entry>
-                                <para>Apidocs and marvin does not know how to handle Autoscaling docs.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-504</para>
-                            </entry>
-                            <entry>
-                                <para>Duplicate guest password scripts in codebase.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-507</para>
-                            </entry>
-                            <entry>
-                                <para>fix api docs for listSSHKeyPair</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-508</para>
-                            </entry>
-                            <entry>
-                                <para>CLVM copies template to primary storage unnecessarily.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-510</para>
-                            </entry>
-                            <entry>
-                                <para>Add button not visible when adding public IPs to physical network.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-514</para>
-                            </entry>
-                            <entry>
-                                <para>Marvin and Cloudmonkey don't work when an API target uses https or an alternate path.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-518</para>
-                            </entry>
-                            <entry>
-                                <para>API refactoring -- change @Parameter annotation and remove the @IdentityMapper annotation.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-520</para>
-                            </entry>
-                            <entry>
-                                <para>Dependency jar names mismatch with install-non-oss.sh</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-521</para>
-                            </entry>
-                            <entry>
-                                <para>Build will hung up when doing test for TestAgentShell</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-522</para>
-                            </entry>
-                            <entry>
-                                <para>Log requests in cloudmonkey's log file.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-527</para>
-                            </entry>
-                            <entry>
-                                <para>List API performance optimization by using DB views and removing UUID conversion.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-534</para>
-                            </entry>
-                            <entry>
-                                <para>Failed to add host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-536</para>
-                            </entry>
-                            <entry>
-                                <para>remove citrix cloudpatform from 4.0 build - CloudStack is ASF project.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-539</para>
-                            </entry>
-                            <entry>
-                                <para>Cropped Text in UI under Quick View.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-552</para>
-                            </entry>
-                            <entry>
-                                <para>]Quick view details for a volume displays scroll bar in place of name of the volume when the name of the volume has more no of characters.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-553</para>
-                            </entry>
-                            <entry>
-                                <para>"SRX - When adding SRX device make "Public Network" - default to "untrusted" and "Private Network" - default to "trusted" as un-editable fields.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-556</para>
-                            </entry>
-                            <entry>
-                                <para>Erratic window behavior in Quick View tooltip.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-559</para>
-                            </entry>
-                            <entry>
-                                <para>source code import problem</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-560</para>
-                            </entry>
-                            <entry>
-                                <para>Usage server doesn't work in 4.0.0 due to missing db changes</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-572</para>
-                            </entry>
-                            <entry>
-                                <para>SG Enabled Advanced Zone - Not able to deploy a VM in an account specific shared network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-573</para>
-                            </entry>
-                            <entry>
-                                <para>"NPE at ""com.cloud.network.NetworkManagerImpl.networkOfferingIsConfiguredForExternalNetworking(NetworkManagerImpl.java:4345)"" when create network from the network offering having NULL provider for the service</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-578</para>
-                            </entry>
-                            <entry>
-                                <para>The already deleted same hostname is not deleted from /etc/hosts of vRouter</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-584</para>
-                            </entry>
-                            <entry>
-                                <para>"typos in ""Apache_CloudStack-4.0.0-incubating-CloudStack_Nicira_NVP_Guide-en-US""</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-590</para>
-                            </entry>
-                            <entry>
-                                <para>Incorrect Network Gateways Assigned to System VM</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-592</para>
-                            </entry>
-                            <entry>
-                                <para>"API bloat, unknown apis cmd classes</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-593</para>
-                            </entry>
-                            <entry>
-                                <para>"2 guest network, auto create vlan error</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-596</para>
-                            </entry>
-                            <entry>
-                                <para>DeployVM command takes a lot of time to return job id.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-599</para>
-                            </entry>
-                            <entry>
-                                <para>DhcpEntryCommand fails on Router VM on CS4.0 and vSphere5 with Advanced Network Zone.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-600</para>
-                            </entry>
-                            <entry>
-                                <para>When rebooting KVM local storage VM host, libvirt definitions deleted</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-605</para>
-                            </entry>
-                            <entry>
-                                <para>Host physical CPU is incorrectly calculated for Vmware host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-606</para>
-                            </entry>
-                            <entry>
-                                <para>Starting VM fails with 'ConcurrentOperationException' in a clustered MS scenario</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-614</para>
-                            </entry>
-                            <entry>
-                                <para>"ListTemplates API is not returning ""Enable SSH Key"" attribute for any given template</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-617</para>
-                            </entry>
-                            <entry>
-                                <para>Unable to edit a Sub domain</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-639</para>
-                            </entry>
-                            <entry>
-                                <para>API Refactoring: Adapters for ACL</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-648</para>
-                            </entry>
-                            <entry>
-                                <para>The normal users could change their own login password.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-660</para>
-                            </entry>
-                            <entry>
-                                <para>Network Traffic Labels are not functional in Marvin</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-683</para>
-                            </entry>
-                            <entry>
-                                <para>Image Is Missing in the Accessing VM Section</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-689</para>
-                            </entry>
-                            <entry>
-                                <para>RVR: Stop pending flag is not cleared when user start the disconnected router from another host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-691</para>
-                            </entry>
-                            <entry>
-                                <para>A warning dialog box shows after reloading the welcome page.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-693</para>
-                            </entry>
-                            <entry>
-                                <para>Adding a VPC virtual router to a NiciraNVP enabled network fails.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-694</para>
-                            </entry>
-                            <entry>
-                                <para>"Create a new VPC network offering with "connectivity" option needed for SDN networking) is not allowed / VPC support for SDN networks</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-717</para>
-                            </entry>
-                            <entry>
-                                <para>cloudmonkey fails to parse/print response.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-720</para>
-                            </entry>
-                            <entry>
-                                <para>Fail to load a png image when accessing the web console.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-721</para>
-                            </entry>
-                            <entry>
-                                <para>Bytes sent/received in user statistics is empty (CloudStack 4.0)</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-725</para>
-                            </entry>
-                            <entry>
-                                <para>UI: Error when the Egress rules tab is selected for a network.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-734</para>
-                            </entry>
-                            <entry>
-                                <para>api_refactoring: CreateAccountCmd fails to send response due to NPE in service layer</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-735</para>
-                            </entry>
-                            <entry>
-                                <para>Integration smoke tests: Fix expunge vm test on api_refactoring</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-736</para>
-                            </entry>
-                            <entry>
-                                <para>Integration smoke tests: Fix check for vm name for the deployvm smoke test.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-793</para>
-                            </entry>
-                            <entry>
-                                <para>"Create cloudmonkey-helper, a plugin that helps autodiscover and sync api info via an api over some endpoint</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-798</para>
-                            </entry>
-                            <entry>
-                                <para>Move usage related cmd classes from cloud-server to cloud-api</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-799</para>
-                            </entry>
-                            <entry>
-                                <para>[Load Test] Check router statistics falls behind in gathering stats by more than 2 times the set value</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-819</para>
-                            </entry>
-                            <entry>
-                                <para>Create Account/User API logging password in access log</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-863</para>
-                            </entry>
-                            <entry>
-                                <para>Non-printable characters (ASCII control character) such as %00 or %0025 are getting stored in raw/non encoded form in the database</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-870</para>
-                            </entry>
-                            <entry>
-                                <para>Client UI: Wrong character encoding for some language</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-928</para>
-                            </entry>
-                            <entry>
-                                <para>[Simulator] Latency for Agent Commands - change unit of wait from seconds to milliseconds</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-938</para>
-                            </entry>
-                            <entry>
-                                <para>s2s VPN trouble</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-959</para>
-                            </entry>
-                            <entry>
-                                <para>Missing sub-sections in document section System Service Offering</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-968</para>
-                            </entry>
-                            <entry>
-                                <para>marvin: vlan should be an attribute of the physical_network and not the zone</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-977</para>
-                            </entry>
-                            <entry>
-                                <para>Document how to use openvswitch with KVM hypervisor</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-978</para>
-                            </entry>
-                            <entry>
-                                <para>TypeError: instance.displayname is undefined while adding VM's to the LB rule</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-985</para>
-                            </entry>
-                            <entry>
-                                <para>Different MAC address for RvR caused issue in short term network outage</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-987</para>
-                            </entry>
-                            <entry>
-                                <para>Sections missing in Working With Snapshots</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-993</para>
-                            </entry>
-                            <entry>
-                                <para>"admin"" user is not getting created when management server is started.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-995</para>
-                            </entry>
-                            <entry>
-                                <para>Not able to add the KVM host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1002</para>
-                            </entry>
-                            <entry>
-                                <para>Not able to start VM</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1006</para>
-                            </entry>
-                            <entry>
-                                <para>need to disable service libvirt-guests in CentOS packaging RPMs, or in installation docs</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1008</para>
-                            </entry>
-                            <entry>
-                                <para>"Egress"" tab should not be presented in the UI for Shared Networks</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1010</para>
-                            </entry>
-                            <entry>
-                                <para>Host count and Secondary storage count always shows 1 in UI</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1011</para>
-                            </entry>
-                            <entry>
-                                <para>KVM host getting disconnected in cluster environment</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1013</para>
-                            </entry>
-                            <entry>
-                                <para>running cloudstack overwrites default public/private ssh key</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1014</para>
-                            </entry>
-                            <entry>
-                                <para>Merge ManagementServer and ManagementServerEx</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1016</para>
-                            </entry>
-                            <entry>
-                                <para>Not able to deploy VM</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1021</para>
-                            </entry>
-                            <entry>
-                                <para>the vlan is not creat to right nic. when i creat multi guest network</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1024</para>
-                            </entry>
-                            <entry>
-                                <para>Regression: Unable to add Xenserver host with latest build.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1027</para>
-                            </entry>
-                            <entry>
-                                <para>"Update SSL certificate" button should properly reflect its functionality</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1029</para>
-                            </entry>
-                            <entry>
-                                <para>Enter the token to specified project is malfunctioned</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1037</para>
-                            </entry>
-                            <entry>
-                                <para>"Make cloudmonkey awesome-er: Online help docs and api discovery, better colored output, parameter value autocompletion</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1050</para>
-                            </entry>
-                            <entry>
-                                <para>No Documentation on Adding a Load Balancer Rule</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1051</para>
-                            </entry>
-                            <entry>
-                                <para>API dispatcher unable to find objectVO corresponding to DeleteTemplatecmd</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1055</para>
-                            </entry>
-                            <entry>
-                                <para>"The overlay still exists when the ""Recurring Snapshots"" dialog is canceled by pressing esc key.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1056</para>
-                            </entry>
-                            <entry>
-                                <para>S3 secondary storage fails to upload systemvm template due to KVMHA directory</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1057</para>
-                            </entry>
-                            <entry>
-                                <para>regression of changeServiceForVirtualMachine API - fails to find service offering by serviceOfferingId parameter</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1063</para>
-                            </entry>
-                            <entry>
-                                <para>"SG Enabled Advanced Zone - "Add Guest Networks" - When user tries to add a guest Network with scope as "Account" he should NOT be presented with "Offering for shared security group enabled"</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1064</para>
-                            </entry>
-                            <entry>
-                                <para>A type error occurs when trying to add account/register template...</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1068</para>
-                            </entry>
-                            <entry>
-                                <para>Names in VR list is useless</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1070</para>
-                            </entry>
-                            <entry>
-                                <para>javelin: NPE on executing registerIso API</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1071</para>
-                            </entry>
-                            <entry>
-                                <para>Netscaler element is not getting loaded as part of LoadBalancing Service Providers</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1078</para>
-                            </entry>
-                            <entry>
-                                <para>Not able to start System Vms on Rhel 6.3 KVM host</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1079</para>
-                            </entry>
-                            <entry>
-                                <para>Deploying AWSAPI with mvn -pl :cloud-awsapi jetty:run fail</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1082</para>
-                            </entry>
-                            <entry>
-                                <para>UI doesn't throw any error message when trying to delete ip range from a network that is in use.</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1083</para>
-                            </entry>
-                            <entry>
-                                <para>listUsageRecords api: removed project results in NPE</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1087</para>
-                            </entry>
-                            <entry>
-                                <para>Update the Developer Guide for ASFCS 4.1 Release</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1088</para>
-                            </entry>
-                            <entry>
-                                <para>EnableStaticNat error will clear the data in database</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1094</para>
-                            </entry>
-                            <entry>
-                                <para>Ipv6 - hostname/hostname --fqdn does not return the name of the VM. But i am able to reach the Vm using their names</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1095</para>
-                            </entry>
-                            <entry>
-                                <para>Ipv6 - dhclient command needs to be run manually on the Vms to get the Ipv6 address</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1100</para>
-                            </entry>
-                            <entry>
-                                <para>Expunge thread is not kicked off based on global configuration if the global setting is less than 60 seconds</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1103</para>
-                            </entry>
-                            <entry>
-                                <para>"IpV6 - listNetwork() command does not retrun gateway,netmask,cidr</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1104</para>
-                            </entry>
-                            <entry>
-                                <para>Ipv6 - listVlanIpRanges() returns error 530</para>
-                            </entry>
-                        </row>
-                        <row>
-                            <entry>
-                                <para>CLOUDSTACK-1105</para>
-               

<TRUNCATED>

[33/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-751: added a support for blacklisting certain routes on a zone level so they can't be used when create Static Route for VPC Private Gateway


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

Branch: refs/heads/internallb
Commit: c9c2c5902d0e9bc865683529a90d968686512425
Parents: df039aa
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Apr 22 12:05:49 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Apr 22 13:35:15 2013 -0700

----------------------------------------------------------------------
 server/src/com/cloud/configuration/Config.java     |   17 ++++--
 .../configuration/ConfigurationManagerImpl.java    |   12 ++++-
 server/src/com/cloud/dc/dao/DataCenterDao.java     |    2 +
 server/src/com/cloud/dc/dao/DataCenterDaoImpl.java |    8 +++
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   42 ++++++++++++++-
 5 files changed, 73 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c9c2c590/server/src/com/cloud/configuration/Config.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java
index 4d1185a..dbcbc53 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -16,7 +16,10 @@
 // under the License.
 package com.cloud.configuration;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.StringTokenizer;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 
@@ -26,6 +29,7 @@ import com.cloud.ha.HighAvailabilityManager;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.network.NetworkManager;
 import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
+import com.cloud.network.vpc.VpcManager;
 import com.cloud.server.ManagementServer;
 import com.cloud.storage.StorageManager;
 import com.cloud.storage.secondary.SecondaryStorageVmManager;
@@ -34,10 +38,6 @@ import com.cloud.template.TemplateManager;
 import com.cloud.vm.UserVmManager;
 import com.cloud.vm.snapshot.VMSnapshotManager;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
 public enum Config {
 
 	// Alert
@@ -400,7 +400,10 @@ public enum Config {
     VMSnapshotMax("Advanced", VMSnapshotManager.class, Integer.class, "vmsnapshot.max", "10", "Maximum vm snapshots for a vm", null),
     VMSnapshotCreateWait("Advanced", VMSnapshotManager.class, Integer.class, "vmsnapshot.create.wait", "1800", "In second, timeout for create vm snapshot", null),
 
-    CloudDnsName("Advanced", ManagementServer.class, String.class, "cloud.dns.name", "default", " DNS name of the cloud", null);
+    CloudDnsName("Advanced", ManagementServer.class, String.class, "cloud.dns.name", "default", " DNS name of the cloud", null),
+	
+    BlacklistedRoutes("Advanced", VpcManager.class, String.class, "blacklisted.routes", null, "Routes that are blacklisted, can not be used for Static Routes creation for the VPC Private Gateway",
+	           "routes", ConfigurationParameterScope.zone.toString());
     
 	
 	private final String _category;
@@ -532,6 +535,8 @@ public enum Config {
             return "StorageManager";
         } else if (_componentClass == TemplateManager.class) {
             return "TemplateManager";
+        } else if (_componentClass == VpcManager.class) {
+            return "VpcManager";
         }else {
             return "none";
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c9c2c590/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index b5734a2..a2a6291 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -342,7 +342,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 }
                 DcDetailVO dcDetailVO = _zoneDetailsDao.findDetail(resourceId, name.toLowerCase());
                 if (dcDetailVO == null) {
-                    dcDetailVO = new DcDetailVO(dcDetailVO.getId(), name, value);
+                    dcDetailVO = new DcDetailVO(zone.getId(), name, value);
                     _zoneDetailsDao.persist(dcDetailVO);
                 } else {
                     dcDetailVO.setValue(value);
@@ -584,6 +584,16 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 if (!NetUtils.verifyInstanceName(value)) {
                     return "Instance name can not contain hyphen, spaces and plus sign";
                 }
+            } else if (range.equals("routes")) {
+                String[] routes = value.split(",");
+                for (String route : routes) {
+                    if (route != null) {
+                        String routeToVerify = route.trim();
+                        if (!NetUtils.isValidCIDR(routeToVerify)) {
+                            throw new InvalidParameterValueException("Invalid value for blacklisted route: " + route);
+                        }
+                    }
+                }
             } else {
                 String[] options = range.split(",");
                 for (String option : options) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c9c2c590/server/src/com/cloud/dc/dao/DataCenterDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/dc/dao/DataCenterDao.java b/server/src/com/cloud/dc/dao/DataCenterDao.java
index ee228f1..e54b9bb 100755
--- a/server/src/com/cloud/dc/dao/DataCenterDao.java
+++ b/server/src/com/cloud/dc/dao/DataCenterDao.java
@@ -77,4 +77,6 @@ public interface DataCenterDao extends GenericDao<DataCenterVO, Long> {
 	List<DataCenterVO> findZonesByDomainId(Long domainId, String keyword);
 
 	List<DataCenterVO> findByKeyword(String keyword);
+
+    List<DataCenterVO> listAllZones();
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c9c2c590/server/src/com/cloud/dc/dao/DataCenterDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/dc/dao/DataCenterDaoImpl.java b/server/src/com/cloud/dc/dao/DataCenterDaoImpl.java
index 2a6c2ec..4afd640 100755
--- a/server/src/com/cloud/dc/dao/DataCenterDaoImpl.java
+++ b/server/src/com/cloud/dc/dao/DataCenterDaoImpl.java
@@ -401,4 +401,12 @@ public class DataCenterDaoImpl extends GenericDaoBase<DataCenterVO, Long> implem
         txn.commit();
         return result;
     }
+    
+    @Override
+    public List<DataCenterVO> listAllZones(){
+        SearchCriteria<DataCenterVO> sc = NameSearch.create();
+        List<DataCenterVO> dcs =  listBy(sc);
+
+        return dcs;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c9c2c590/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index dbd36ae..425f551 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -39,11 +39,14 @@ import org.springframework.stereotype.Component;
 
 import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
+import com.cloud.configuration.ConfigurationVO;
 import com.cloud.configuration.Resource.ResourceType;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.DataCenter;
+import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.Vlan.VlanType;
 import com.cloud.dc.VlanVO;
+import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.VlanDao;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.event.ActionEvent;
@@ -92,6 +95,7 @@ import com.cloud.offerings.NetworkOfferingServiceMapVO;
 import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
 import com.cloud.org.Grouping;
 import com.cloud.projects.Project.ListProjectResourcesCriteria;
+import com.cloud.server.ConfigurationServer;
 import com.cloud.server.ResourceTag.TaggedResourceType;
 import com.cloud.tags.ResourceTagVO;
 import com.cloud.tags.dao.ResourceTagDao;
@@ -115,7 +119,6 @@ import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.Transaction;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.DomainRouterVO;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.ReservationContextImpl;
 import com.cloud.vm.dao.DomainRouterDao;
@@ -175,11 +178,17 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
     ResourceLimitService _resourceLimitMgr;
     @Inject
     VpcServiceMapDao _vpcSrvcDao;
+    @Inject
+    DataCenterDao _dcDao;
+    @Inject
+    ConfigurationServer _configServer;
 
     private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
     private List<VpcProvider> vpcElements = null;
     private final List<Service> nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall);
     private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp);
+    
+    private Map<Long, Set<String>> zoneBlackListedRoutes;
  
     int _cleanupInterval;
     int _maxNetworks;
@@ -231,6 +240,26 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         IpAddressSearch.join("virtualNetworkVlanSB", virtualNetworkVlanSB, IpAddressSearch.entity().getVlanId(), virtualNetworkVlanSB.entity().getId(), JoinBuilder.JoinType.INNER);
         IpAddressSearch.done();
         
+        //populate blacklisted routes
+        List<DataCenterVO> zones = _dcDao.listAllZones();
+        zoneBlackListedRoutes = new HashMap<Long, Set<String>>();
+        for (DataCenterVO zone : zones) {
+            List<ConfigurationVO> confs = _configServer.getConfigListByScope(Config.ConfigurationParameterScope.zone.toString(), zone.getId());
+            for (ConfigurationVO conf : confs) {
+                String routeStr = conf.getValue();
+                if (conf.getName().equalsIgnoreCase(Config.BlacklistedRoutes.key()) && routeStr != null && !routeStr.isEmpty()) {
+                    String[] routes = routeStr.split(",");
+                    Set<String> cidrs = new HashSet<String>();
+                    for (String route : routes) {
+                        cidrs.add(route);
+                    }
+                    
+                    zoneBlackListedRoutes.put(zone.getId(), cidrs);
+                    break;
+                }
+            }
+        }
+        
         return true;
     }
 
@@ -1653,6 +1682,17 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         if (NetUtils.isNetworksOverlap(vpc.getCidr(), NetUtils.getLinkLocalCIDR())) {
             throw new InvalidParameterValueException("CIDR should be outside of link local cidr " + NetUtils.getLinkLocalCIDR());
         }
+        
+        //3) Verify against blacklisted routes
+        Set<String> cidrBlackList = zoneBlackListedRoutes.get(vpc.getZoneId());
+        
+        if (cidrBlackList != null && !cidrBlackList.isEmpty()) {
+            for (String blackListedRoute : cidrBlackList) {
+                if (NetUtils.isNetworksOverlap(blackListedRoute, cidr)) {
+                    throw new InvalidParameterValueException("The static gateway cidr overlaps with one of the blacklisted routes of the VPC zone");
+                }
+            }
+        }
 
         Transaction txn = Transaction.currentTxn();
         txn.start();


[43/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
LOUDSTACK-751: changed the way the code retrieves the blacklisted.routes config. Now it always reads it from the DB while before we used to load it only on the management server start, and the update happened only after MS restart


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

Branch: refs/heads/internallb
Commit: ba4b8f170569ea5e04cfdae37cee043aaa3ee3a6
Parents: 2712ddd
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Apr 23 12:19:14 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Apr 23 12:22:04 2013 -0700

----------------------------------------------------------------------
 .../configuration/ConfigurationManagerImpl.java    |    3 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   53 ++++++---------
 2 files changed, 22 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ba4b8f17/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index a2a6291..d5e405d 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -590,7 +590,8 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                     if (route != null) {
                         String routeToVerify = route.trim();
                         if (!NetUtils.isValidCIDR(routeToVerify)) {
-                            throw new InvalidParameterValueException("Invalid value for blacklisted route: " + route);
+                            throw new InvalidParameterValueException("Invalid value for blacklisted route: " + route + ". Valid format is list" +
+                            		" of cidrs separated by coma. Example: 10.1.1.0/24,192.168.0.0/24");
                         }
                     }
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ba4b8f17/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index 425f551..224a680 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -39,11 +39,9 @@ import org.springframework.stereotype.Component;
 
 import com.cloud.configuration.Config;
 import com.cloud.configuration.ConfigurationManager;
-import com.cloud.configuration.ConfigurationVO;
 import com.cloud.configuration.Resource.ResourceType;
 import com.cloud.configuration.dao.ConfigurationDao;
 import com.cloud.dc.DataCenter;
-import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.Vlan.VlanType;
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.DataCenterDao;
@@ -187,9 +185,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
     private List<VpcProvider> vpcElements = null;
     private final List<Service> nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall);
     private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp);
-    
-    private Map<Long, Set<String>> zoneBlackListedRoutes;
- 
+     
     int _cleanupInterval;
     int _maxNetworks;
     SearchBuilder<IPAddressVO> IpAddressSearch;
@@ -240,26 +236,6 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         IpAddressSearch.join("virtualNetworkVlanSB", virtualNetworkVlanSB, IpAddressSearch.entity().getVlanId(), virtualNetworkVlanSB.entity().getId(), JoinBuilder.JoinType.INNER);
         IpAddressSearch.done();
         
-        //populate blacklisted routes
-        List<DataCenterVO> zones = _dcDao.listAllZones();
-        zoneBlackListedRoutes = new HashMap<Long, Set<String>>();
-        for (DataCenterVO zone : zones) {
-            List<ConfigurationVO> confs = _configServer.getConfigListByScope(Config.ConfigurationParameterScope.zone.toString(), zone.getId());
-            for (ConfigurationVO conf : confs) {
-                String routeStr = conf.getValue();
-                if (conf.getName().equalsIgnoreCase(Config.BlacklistedRoutes.key()) && routeStr != null && !routeStr.isEmpty()) {
-                    String[] routes = routeStr.split(",");
-                    Set<String> cidrs = new HashSet<String>();
-                    for (String route : routes) {
-                        cidrs.add(route);
-                    }
-                    
-                    zoneBlackListedRoutes.put(zone.getId(), cidrs);
-                    break;
-                }
-            }
-        }
-        
         return true;
     }
 
@@ -1684,14 +1660,8 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         }
         
         //3) Verify against blacklisted routes
-        Set<String> cidrBlackList = zoneBlackListedRoutes.get(vpc.getZoneId());
-        
-        if (cidrBlackList != null && !cidrBlackList.isEmpty()) {
-            for (String blackListedRoute : cidrBlackList) {
-                if (NetUtils.isNetworksOverlap(blackListedRoute, cidr)) {
-                    throw new InvalidParameterValueException("The static gateway cidr overlaps with one of the blacklisted routes of the VPC zone");
-                }
-            }
+        if (isCidrBlacklisted(cidr, vpc.getZoneId())) {
+            throw new InvalidParameterValueException("The static gateway cidr overlaps with one of the blacklisted routes of the zone the VPC belongs to");
         }
 
         Transaction txn = Transaction.currentTxn();
@@ -1713,6 +1683,23 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         return newRoute;
     }
 
+    protected boolean isCidrBlacklisted(String cidr, long zoneId) {
+        String routesStr = _configServer.getConfigValue(Config.BlacklistedRoutes.key(), Config.ConfigurationParameterScope.zone.toString(), zoneId);
+        if (routesStr != null && !routesStr.isEmpty()) {
+            String[] cidrBlackList = routesStr.split(",");
+            
+            if (cidrBlackList != null && cidrBlackList.length > 0) {
+                for (String blackListedRoute : cidrBlackList) {
+                    if (NetUtils.isNetworksOverlap(blackListedRoute, cidr)) {
+                        return true;
+                    }
+                }
+            }
+        }
+       
+        return false;
+    }
+
     @Override
     public Pair<List<? extends StaticRoute>, Integer> listStaticRoutes(ListStaticRoutesCmd cmd) {
         Long id = cmd.getId();


[49/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2120: mixed zone management - extend listPods, listClusters, listHosts, listStoragePools, listSystemVms, listRouters API to return zone type.


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

Branch: refs/heads/internallb
Commit: 04a2b2d326c34e234e78852b28fa18a5f96fcc00
Parents: 15e2bc4
Author: Jessica Wang <je...@apache.org>
Authored: Tue Apr 23 16:32:19 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Tue Apr 23 16:32:19 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/api/response/ClusterResponse.java   |    9 +-
 .../api/response/DomainRouterResponse.java         |   11 +
 .../cloudstack/api/response/HostResponse.java      |    9 +-
 .../cloudstack/api/response/PodResponse.java       |    9 +-
 .../api/response/StoragePoolResponse.java          |   15 +-
 .../cloudstack/api/response/SystemVmResponse.java  |   11 +
 server/src/com/cloud/api/ApiResponseHelper.java    |    3 +
 .../api/query/dao/DomainRouterJoinDaoImpl.java     |    1 +
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |    1 +
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |    1 +
 .../com/cloud/api/query/vo/DomainRouterJoinVO.java |   12 +
 server/src/com/cloud/api/query/vo/HostJoinVO.java  |   11 +
 .../com/cloud/api/query/vo/StoragePoolJoinVO.java  |   11 +
 setup/db/db/schema-410to420.sql                    |  230 ++++++++++++++-
 14 files changed, 328 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/ClusterResponse.java b/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
index a90acde..cfd772d 100644
--- a/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
@@ -46,7 +46,10 @@ public class ClusterResponse extends BaseResponse {
 
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name of the cluster")
     private String zoneName;
-
+    
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;
+    
     @SerializedName("hypervisortype") @Param(description="the hypervisor type of the cluster")
     private String hypervisorType;
 
@@ -116,6 +119,10 @@ public class ClusterResponse extends BaseResponse {
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public String getClusterType() {
         return clusterType;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java b/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
index b2bc02e..79c8596 100644
--- a/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
@@ -42,6 +42,9 @@ public class DomainRouterResponse extends BaseResponse implements ControlledView
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name for the router")
     private String zoneName;
 
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;   
+    
     @SerializedName(ApiConstants.DNS1) @Param(description="the first DNS for the router")
     private String dns1;
 
@@ -186,6 +189,14 @@ public class DomainRouterResponse extends BaseResponse implements ControlledView
         this.zoneName = zoneName;
     }
 
+    public String getZoneType() {
+        return zoneType;
+    }
+
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }        
+    
     public void setDns1(String dns1) {
         this.dns1 = dns1;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/HostResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/HostResponse.java b/api/src/org/apache/cloudstack/api/response/HostResponse.java
index 687687d..be1a4b4 100644
--- a/api/src/org/apache/cloudstack/api/response/HostResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/HostResponse.java
@@ -59,7 +59,10 @@ public class HostResponse extends BaseResponse {
 
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name of the host")
     private String zoneName;
-
+    
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;
+    
     @SerializedName(ApiConstants.POD_ID) @Param(description="the Pod ID of the host")
     private String podId;
 
@@ -209,6 +212,10 @@ public class HostResponse extends BaseResponse {
         this.zoneName = zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setPodId(String podId) {
         this.podId = podId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/PodResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/PodResponse.java b/api/src/org/apache/cloudstack/api/response/PodResponse.java
index f31c289..471cac1 100644
--- a/api/src/org/apache/cloudstack/api/response/PodResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/PodResponse.java
@@ -36,10 +36,13 @@ public class PodResponse extends BaseResponse {
 
     @SerializedName("zoneid") @Param(description="the Zone ID of the Pod")
     private String zoneId;
-
+    
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name of the Pod")
     private String zoneName;
 
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;    
+    
     @SerializedName("gateway") @Param(description="the gateway of the Pod")
     private String gateway;
 
@@ -86,6 +89,10 @@ public class PodResponse extends BaseResponse {
         return zoneName;
     }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public void setZoneName(String zoneName) {
         this.zoneName = zoneName;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java b/api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java
index e034b17..4411ddc 100644
--- a/api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/StoragePoolResponse.java
@@ -38,12 +38,15 @@ public class StoragePoolResponse extends BaseResponse {
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name of the storage pool")
     private String zoneName;
 
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;
+    
     @SerializedName("podid") @Param(description="the Pod ID of the storage pool")
     private String podId;
 
     @SerializedName("podname") @Param(description="the Pod name of the storage pool")
-    private String podName;
-
+    private String podName;    
+    
     @SerializedName("name") @Param(description="the name of the storage pool")
     private String name;
 
@@ -126,6 +129,14 @@ public class StoragePoolResponse extends BaseResponse {
         this.zoneName = zoneName;
     }
 
+    public String getZoneType() {
+        return zoneType;
+    }
+    
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public String getPodId() {
         return podId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/api/src/org/apache/cloudstack/api/response/SystemVmResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/SystemVmResponse.java b/api/src/org/apache/cloudstack/api/response/SystemVmResponse.java
index 8d2798a..3439dc0 100644
--- a/api/src/org/apache/cloudstack/api/response/SystemVmResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/SystemVmResponse.java
@@ -46,6 +46,9 @@ public class SystemVmResponse extends BaseResponse {
     @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name for the system VM")
     private String zoneName;
 
+    @SerializedName(ApiConstants.ZONE_TYPE) @Param(description = "network type of the availability zone")
+    private String zoneType;    
+    
     @SerializedName("dns1") @Param(description="the first DNS for the system VM")
     private String dns1;
 
@@ -150,7 +153,15 @@ public class SystemVmResponse extends BaseResponse {
     public void setZoneName(String zoneName) {
         this.zoneName = zoneName;
     }
+      
+    public String getZoneType() {
+        return zoneType;
+    }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }        
+    
     public String getDns1() {
         return dns1;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index ba5322f..cd0158d 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -817,6 +817,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         if (zone != null) {
             podResponse.setZoneId(zone.getUuid());
             podResponse.setZoneName(zone.getName());
+            podResponse.setZoneType(zone.getNetworkType().toString());
         }
         podResponse.setNetmask(NetUtils.getCidrNetmask(pod.getCidrSize()));
         podResponse.setStartIp(ipRange[0]);
@@ -961,6 +962,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         if (dc != null) {
             clusterResponse.setZoneId(dc.getUuid());
             clusterResponse.setZoneName(dc.getName());
+            clusterResponse.setZoneType(dc.getNetworkType().toString());
         }
         clusterResponse.setHypervisorType(cluster.getHypervisorType().toString());
         clusterResponse.setClusterType(cluster.getClusterType().toString());
@@ -1165,6 +1167,7 @@ public class ApiResponseHelper implements ResponseGenerator {
             if (zone != null) {
                 vmResponse.setZoneId(zone.getUuid());
                 vmResponse.setZoneName(zone.getName());
+                vmResponse.setZoneType(zone.getNetworkType().toString());
                 vmResponse.setDns1(zone.getDns1());
                 vmResponse.setDns2(zone.getDns2());
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
index 488c4e4..25cd62f 100644
--- a/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
@@ -148,6 +148,7 @@ public class DomainRouterJoinDaoImpl extends GenericDaoBase<DomainRouterJoinVO,
         routerResponse.setDomainName(router.getDomainName());
 
         routerResponse.setZoneName(router.getDataCenterName());
+        routerResponse.setZoneType(router.getDataCenterType());
         routerResponse.setDns1(router.getDns1());
         routerResponse.setDns2(router.getDns2());
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
index 7796529..c678f2f 100644
--- a/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
@@ -99,6 +99,7 @@ public class HostJoinDaoImpl extends GenericDaoBase<HostJoinVO, Long> implements
             hostResponse.setOsCategoryId(host.getOsCategoryUuid());
             hostResponse.setOsCategoryName(host.getOsCategoryName());
             hostResponse.setZoneName(host.getZoneName());
+            hostResponse.setZoneType(host.getZoneType().toString());
             hostResponse.setPodName(host.getPodName());
             if ( host.getClusterId() > 0) {
                 hostResponse.setClusterName(host.getClusterName());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java
index 34b88ba..260ff4d 100644
--- a/server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java
@@ -77,6 +77,7 @@ public class StoragePoolJoinDaoImpl extends GenericDaoBase<StoragePoolJoinVO, Lo
         poolResponse.setIpAddress(pool.getHostAddress());
         poolResponse.setZoneId(pool.getZoneUuid());
         poolResponse.setZoneName(pool.getZoneName());
+        poolResponse.setZoneType(pool.getZoneType());
         if (pool.getPoolType() != null) {
             poolResponse.setType(pool.getPoolType().toString());
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java b/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
index b04120a..5f2b500 100644
--- a/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/DomainRouterJoinVO.java
@@ -101,6 +101,9 @@ public class DomainRouterJoinVO extends BaseViewVO implements ControlledViewEnti
     @Column(name="data_center_name")
     private String dataCenterName = null;
 
+    @Column(name="data_center_type")
+    private String dataCenterType;
+    
     @Column(name="dns1")
     private String dns1 = null;
 
@@ -447,6 +450,15 @@ public class DomainRouterJoinVO extends BaseViewVO implements ControlledViewEnti
         this.dataCenterName = zoneName;
     }
 
+    
+    public String getDataCenterType() {
+        return dataCenterType;
+    }
+
+    public void setDataCenterType(String dataCenterType) {
+        this.dataCenterType = dataCenterType;
+    }
+        
 
     public Long getHostId() {
         return hostId;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/vo/HostJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/HostJoinVO.java b/server/src/com/cloud/api/query/vo/HostJoinVO.java
index 0b8f672..4aa45e5 100644
--- a/server/src/com/cloud/api/query/vo/HostJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/HostJoinVO.java
@@ -130,6 +130,9 @@ public class HostJoinVO extends BaseViewVO implements InternalIdentity, Identity
     @Column(name="data_center_name")
     private String zoneName;
 
+    @Column(name="data_center_type")
+    private String zoneType;
+    
     @Column(name="pod_id")
     private long podId;
 
@@ -231,7 +234,15 @@ public class HostJoinVO extends BaseViewVO implements InternalIdentity, Identity
     public void setZoneName(String zoneName) {
         this.zoneName = zoneName;
     }
+    
+    public String getZoneType() {
+        return zoneType;
+    }
 
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }   
+    
     public String getName() {
         return name;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java b/server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java
index bab3990..da06227 100644
--- a/server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/StoragePoolJoinVO.java
@@ -97,6 +97,9 @@ public class StoragePoolJoinVO extends BaseViewVO implements InternalIdentity, I
     @Column(name="data_center_name")
     private String zoneName;
 
+    @Column(name="data_center_type")
+    private String zoneType;
+    
     @Column(name="pod_id")
     private long podId;
 
@@ -283,6 +286,14 @@ public class StoragePoolJoinVO extends BaseViewVO implements InternalIdentity, I
         this.zoneName = zoneName;
     }
 
+    public String getZoneType() {
+        return zoneType;
+    }
+
+    public void setZoneType(String zoneType) {
+        this.zoneType = zoneType;
+    }
+    
     public long getPodId() {
         return podId;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04a2b2d3/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index ac52f53..cfce81f 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -544,6 +544,77 @@ CREATE VIEW `cloud`.`affinity_group_view` AS
             left join
         `cloud`.`user_vm` ON user_vm.id = vm_instance.id;
 
+DROP VIEW IF EXISTS `cloud`.`host_view`;
+CREATE VIEW `cloud`.`host_view` AS
+    select 
+        host.id,
+        host.uuid,
+        host.name,
+        host.status,
+        host.disconnected,
+        host.type,
+        host.private_ip_address,
+        host.version,
+        host.hypervisor_type,
+        host.hypervisor_version,
+        host.capabilities,
+        host.last_ping,
+        host.created,
+        host.removed,
+        host.resource_state,
+        host.mgmt_server_id,
+        host.cpus,
+        host.speed,
+        host.ram,
+        cluster.id cluster_id,
+        cluster.uuid cluster_uuid,
+        cluster.name cluster_name,
+        cluster.cluster_type,
+        data_center.id data_center_id,
+        data_center.uuid data_center_uuid,
+        data_center.name data_center_name,
+        data_center.networktype data_center_type,
+        host_pod_ref.id pod_id,
+        host_pod_ref.uuid pod_uuid,
+        host_pod_ref.name pod_name,
+        host_tags.tag,
+        guest_os_category.id guest_os_category_id,
+        guest_os_category.uuid guest_os_category_uuid,
+        guest_os_category.name guest_os_category_name,
+        mem_caps.used_capacity memory_used_capacity,
+        mem_caps.reserved_capacity memory_reserved_capacity,
+        cpu_caps.used_capacity cpu_used_capacity,
+        cpu_caps.reserved_capacity cpu_reserved_capacity,
+        async_job.id job_id,
+        async_job.uuid job_uuid,
+        async_job.job_status job_status,
+        async_job.account_id job_account_id
+    from
+        `cloud`.`host`
+            left join
+        `cloud`.`cluster` ON host.cluster_id = cluster.id
+            left join
+        `cloud`.`data_center` ON host.data_center_id = data_center.id
+            left join
+        `cloud`.`host_pod_ref` ON host.pod_id = host_pod_ref.id
+            left join
+        `cloud`.`host_details` ON host.id = host_details.id
+            and host_details.name = 'guest.os.category.id'
+            left join
+        `cloud`.`guest_os_category` ON guest_os_category.id = CONVERT( host_details.value , UNSIGNED)
+            left join
+        `cloud`.`host_tags` ON host_tags.host_id = host.id
+            left join
+        `cloud`.`op_host_capacity` mem_caps ON host.id = mem_caps.host_id
+            and mem_caps.capacity_type = 0
+            left join
+        `cloud`.`op_host_capacity` cpu_caps ON host.id = cpu_caps.host_id
+            and cpu_caps.capacity_type = 1
+            left join
+        `cloud`.`async_job` ON async_job.instance_id = host.id
+            and async_job.instance_type = 'Host'
+            and async_job.job_status = 0;
+        
 DROP VIEW IF EXISTS `cloud`.`volume_view`;
 CREATE VIEW `cloud`.`volume_view` AS
     select 
@@ -645,7 +716,164 @@ CREATE VIEW `cloud`.`volume_view` AS
         `cloud`.`async_job` ON async_job.instance_id = volumes.id
             and async_job.instance_type = 'Volume'
             and async_job.job_status = 0;                       
-        
+ 
+DROP VIEW IF EXISTS `cloud`.`storage_pool_view`;
+CREATE VIEW `cloud`.`storage_pool_view` AS
+    select 
+        storage_pool.id,
+        storage_pool.uuid,
+        storage_pool.name,
+        storage_pool.status,
+        storage_pool.path,
+        storage_pool.pool_type,
+        storage_pool.host_address,
+        storage_pool.created,
+        storage_pool.removed,
+        storage_pool.capacity_bytes,
+        storage_pool.scope,
+        cluster.id cluster_id,
+        cluster.uuid cluster_uuid,
+        cluster.name cluster_name,
+        cluster.cluster_type,
+        data_center.id data_center_id,
+        data_center.uuid data_center_uuid,
+        data_center.name data_center_name,      
+        data_center.networktype data_center_type,
+        host_pod_ref.id pod_id,
+        host_pod_ref.uuid pod_uuid,
+        host_pod_ref.name pod_name,
+        storage_pool_details.name tag,
+        op_host_capacity.used_capacity disk_used_capacity,
+        op_host_capacity.reserved_capacity disk_reserved_capacity,
+        async_job.id job_id,
+        async_job.uuid job_uuid,
+        async_job.job_status job_status,
+        async_job.account_id job_account_id
+    from
+        `cloud`.`storage_pool`
+            left join
+        `cloud`.`cluster` ON storage_pool.cluster_id = cluster.id
+            left join
+        `cloud`.`data_center` ON storage_pool.data_center_id = data_center.id
+            left join
+        `cloud`.`host_pod_ref` ON storage_pool.pod_id = host_pod_ref.id
+            left join
+        `cloud`.`storage_pool_details` ON storage_pool_details.pool_id = storage_pool.id
+            and storage_pool_details.value = 'true'
+            left join
+        `cloud`.`op_host_capacity` ON storage_pool.id = op_host_capacity.host_id
+            and op_host_capacity.capacity_type = 3
+            left join
+        `cloud`.`async_job` ON async_job.instance_id = storage_pool.id
+            and async_job.instance_type = 'StoragePool'
+            and async_job.job_status = 0;
+            
+
+DROP VIEW IF EXISTS `cloud`.`domain_router_view`;
+CREATE VIEW `cloud`.`domain_router_view` AS
+    select 
+        vm_instance.id id,
+        vm_instance.name name,
+        account.id account_id,
+        account.uuid account_uuid,
+        account.account_name account_name,
+        account.type account_type,
+        domain.id domain_id,
+        domain.uuid domain_uuid,
+        domain.name domain_name,
+        domain.path domain_path,
+        projects.id project_id,
+        projects.uuid project_uuid,
+        projects.name project_name,
+        vm_instance.uuid uuid,
+        vm_instance.created created,
+        vm_instance.state state,
+        vm_instance.removed removed,
+        vm_instance.pod_id pod_id,
+        vm_instance.instance_name instance_name,
+        host_pod_ref.uuid pod_uuid,
+        data_center.id data_center_id,
+        data_center.uuid data_center_uuid,
+        data_center.name data_center_name,
+        data_center.networktype data_center_type,
+        data_center.dns1 dns1,
+        data_center.dns2 dns2,
+        data_center.ip6_dns1 ip6_dns1,
+        data_center.ip6_dns2 ip6_dns2,
+        host.id host_id,
+        host.uuid host_uuid,
+        host.name host_name,
+        vm_template.id template_id,
+        vm_template.uuid template_uuid,
+        service_offering.id service_offering_id,
+        disk_offering.uuid service_offering_uuid,
+        disk_offering.name service_offering_name,
+        nics.id nic_id,
+        nics.uuid nic_uuid,
+        nics.network_id network_id,
+        nics.ip4_address ip_address,
+        nics.ip6_address ip6_address,
+        nics.ip6_gateway ip6_gateway,
+        nics.ip6_cidr ip6_cidr,
+        nics.default_nic is_default_nic,
+        nics.gateway gateway,
+        nics.netmask netmask,
+        nics.mac_address mac_address,
+        nics.broadcast_uri broadcast_uri,
+        nics.isolation_uri isolation_uri,
+        vpc.id vpc_id,
+        vpc.uuid vpc_uuid,
+        networks.uuid network_uuid,
+        networks.name network_name,
+        networks.network_domain network_domain,
+        networks.traffic_type traffic_type,
+        networks.guest_type guest_type,
+        async_job.id job_id,
+        async_job.uuid job_uuid,
+        async_job.job_status job_status,
+        async_job.account_id job_account_id,
+        domain_router.template_version template_version,
+        domain_router.scripts_version scripts_version,
+        domain_router.is_redundant_router is_redundant_router,
+        domain_router.redundant_state redundant_state,
+        domain_router.stop_pending stop_pending
+    from
+        `cloud`.`domain_router`
+            inner join
+        `cloud`.`vm_instance` ON vm_instance.id = domain_router.id
+            inner join
+        `cloud`.`account` ON vm_instance.account_id = account.id
+            inner join
+        `cloud`.`domain` ON vm_instance.domain_id = domain.id
+            left join
+        `cloud`.`host_pod_ref` ON vm_instance.pod_id = host_pod_ref.id
+            left join
+        `cloud`.`projects` ON projects.project_account_id = account.id
+            left join
+        `cloud`.`data_center` ON vm_instance.data_center_id = data_center.id
+            left join
+        `cloud`.`host` ON vm_instance.host_id = host.id
+            left join
+        `cloud`.`vm_template` ON vm_instance.vm_template_id = vm_template.id
+            left join
+        `cloud`.`service_offering` ON vm_instance.service_offering_id = service_offering.id
+            left join
+        `cloud`.`disk_offering` ON vm_instance.service_offering_id = disk_offering.id
+            left join
+        `cloud`.`volumes` ON vm_instance.id = volumes.instance_id
+            left join
+        `cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
+            left join
+        `cloud`.`nics` ON vm_instance.id = nics.instance_id
+            left join
+        `cloud`.`networks` ON nics.network_id = networks.id
+            left join
+        `cloud`.`vpc` ON domain_router.vpc_id = vpc.id
+            left join
+        `cloud`.`async_job` ON async_job.instance_id = vm_instance.id
+            and async_job.instance_type = 'DomainRouter'
+            and async_job.job_status = 0;
+            
 CREATE TABLE `cloud`.`external_cisco_vnmc_devices` (
   `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
   `uuid` varchar(255) UNIQUE,


[27/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cloudstack


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

Branch: refs/heads/internallb
Commit: 060be0876feddd951eac895d808f0814f9aa684a
Parents: 2a769cf c064afe
Author: Milamber <mi...@apache.org>
Authored: Mon Apr 22 16:55:03 2013 +0000
Committer: Milamber <mi...@apache.org>
Committed: Mon Apr 22 16:55:03 2013 +0000

----------------------------------------------------------------------
 tools/build/build_asf.sh      |   79 ++++++++++++++++++++++++++++++------
 tools/build/setnextversion.sh |   75 ++++++++++++++++++++++++++++++++++
 2 files changed, 141 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[31/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1392: add create template from snapshot and volume


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

Branch: refs/heads/internallb
Commit: b30e39b0e30f61bc7c485fa537649bd32d418795
Parents: 0978df9
Author: Edison Su <su...@gmail.com>
Authored: Fri Apr 19 18:36:44 2013 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Mon Apr 22 13:24:10 2013 -0700

----------------------------------------------------------------------
 .../cloudstack/storage/image/ImageServiceImpl.java |   85 ++++++++++++++-
 .../storage/motion/AncientDataMotionStrategy.java  |    5 +-
 .../com/cloud/template/TemplateManagerImpl.java    |   17 +++-
 3 files changed, 97 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b30e39b0/engine/storage/image/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
index 5898b1b..99b1013 100644
--- a/engine/storage/image/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
+++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/ImageServiceImpl.java
@@ -21,11 +21,13 @@ package org.apache.cloudstack.storage.image;
 import javax.inject.Inject;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.CommandResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
 import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.ImageService;
 import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
 import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateEvent;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
@@ -37,6 +39,7 @@ import org.apache.cloudstack.framework.async.AsyncRpcConext;
 import org.apache.cloudstack.storage.datastore.DataObjectManager;
 import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
 import org.apache.cloudstack.storage.image.store.TemplateObject;
+import org.apache.cloudstack.storage.motion.DataMotionService;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -49,6 +52,8 @@ public class ImageServiceImpl implements ImageService {
     ObjectInDataStoreManager objectInDataStoreMgr;
     @Inject
     DataObjectManager dataObjectMgr;
+    @Inject
+    DataMotionService motionSrv;
     
     class CreateTemplateContext<T> extends AsyncRpcConext<T> {
         final TemplateInfo srcTemplate;
@@ -140,17 +145,91 @@ public class ImageServiceImpl implements ImageService {
         return null;
     }
 
+    private class CopyTemplateContext<T> extends AsyncRpcConext<T> {
+        final AsyncCallFuture<CommandResult> future;
+        final DataObject object;
+        /**
+         * @param callback
+         */
+        public CopyTemplateContext(AsyncCompletionCallback<T> callback, AsyncCallFuture<CommandResult> future, DataObject object) {
+            super(callback);
+            this.future = future;
+            this.object = object;
+        }
+        
+    }
     @Override
     public AsyncCallFuture<CommandResult> createTemplateFromSnapshotAsync(
             SnapshotInfo snapshot, TemplateInfo template, DataStore store) {
-        // TODO Auto-generated method stub
+        AsyncCallFuture<CommandResult> future = new AsyncCallFuture<CommandResult>();
+        DataObject templateOnStore = null;
+        try {
+            templateOnStore = store.create(template);
+            templateOnStore.processEvent(Event.CreateOnlyRequested);
+
+            CopyTemplateContext<CommandResult> context = new CopyTemplateContext<CommandResult>(null, future, templateOnStore);
+            AsyncCallbackDispatcher<ImageServiceImpl, CopyCommandResult> caller =  AsyncCallbackDispatcher.create(this);
+            caller.setCallback(caller.getTarget().copyTemplateAsyncCallback(null, null))
+            .setContext(context);
+            this.motionSrv.copyAsync(snapshot, templateOnStore, caller);
+        } catch (Exception e) {
+            s_logger.debug("Failed to create template: " + template.getId() + "from snapshot: " + snapshot.getId() + ", due to " + e.toString());
+            if (templateOnStore != null) {
+                try {
+                templateOnStore.processEvent(Event.OperationFailed);
+                } catch (Exception e1) {
+                    
+                }
+            }
+            CommandResult result = new CommandResult();
+            result.setResult(e.toString());
+            future.complete(result);
+        }
+        return future;
+    }
+    
+    protected Void copyTemplateAsyncCallback(AsyncCallbackDispatcher<ImageServiceImpl, CopyCommandResult> callback, CopyTemplateContext<CommandResult> context) {
+        CopyCommandResult result = callback.getResult();
+        AsyncCallFuture<CommandResult> future = context.future;
+        DataObject object = context.object;
+        CommandResult res = new CommandResult();
+        if (result.isFailed()) {
+            res.setResult(result.getResult());
+            object.processEvent(Event.OperationFailed);
+        } else {
+            object.processEvent(Event.OperationSuccessed);
+        }
+        future.complete(res);
         return null;
     }
 
     @Override
     public AsyncCallFuture<CommandResult> createTemplateFromVolumeAsync(
             VolumeInfo volume, TemplateInfo template, DataStore store) {
-        // TODO Auto-generated method stub
-        return null;
+        AsyncCallFuture<CommandResult> future = new AsyncCallFuture<CommandResult>();
+        DataObject templateOnStore = null;
+        try {
+            templateOnStore = store.create(template);
+            templateOnStore.processEvent(Event.CreateOnlyRequested);
+
+            CopyTemplateContext<CommandResult> context = new CopyTemplateContext<CommandResult>(null, future, templateOnStore);
+            AsyncCallbackDispatcher<ImageServiceImpl, CopyCommandResult> caller =  AsyncCallbackDispatcher.create(this);
+            caller.setCallback(caller.getTarget().copyTemplateAsyncCallback(null, null))
+            .setContext(context);
+            this.motionSrv.copyAsync(volume, templateOnStore, caller);
+        } catch (Exception e) {
+            s_logger.debug("Failed to create template: " + template.getId() + "from volume: " + volume.getId() + ", due to " + e.toString());
+            if (templateOnStore != null) {
+                try {
+                templateOnStore.processEvent(Event.OperationFailed);
+                } catch (Exception e1) {
+                    
+                }
+            }
+            CommandResult result = new CommandResult();
+            result.setResult(e.toString());
+            future.complete(result);
+        }
+        return future;
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b30e39b0/engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java b/engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
index ad9238a..a6880c3 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
@@ -668,9 +668,7 @@ public class AncientDataMotionStrategy implements DataMotionStrategy {
         String checkSum = this.templateMgr
                 .getChecksum(hostId, answer.getPath());
 
-        Transaction txn = Transaction.currentTxn();
 
-        txn.start();
 
         privateTemplate.setChecksum(checkSum);
         templateDao.update(privateTemplate.getId(), privateTemplate);
@@ -685,8 +683,9 @@ public class AncientDataMotionStrategy implements DataMotionStrategy {
         templateHostVO.setLastUpdated(new Date());
         templateHostVO.setSize(answer.getVirtualSize());
         templateHostVO.setPhysicalSize(answer.getphysicalSize());
+       
         templateHostDao.persist(templateHostVO);
-        txn.close();
+  
         return answer;
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b30e39b0/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java
index 576440a..c7eaa64 100755
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -1716,8 +1716,17 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
 
         try {
             TemplateInfo tmplInfo = this.tmplFactory.getTemplate(templateId);
-            snapshot = _snapshotDao.findById(snapshotId);
-            ZoneScope scope = new ZoneScope(snapshot.getDataCenterId());
+            ZoneScope scope = null;
+            Long zoneId = null;
+            if (snapshotId != null) {
+                snapshot = _snapshotDao.findById(snapshotId);
+                zoneId = snapshot.getDataCenterId();
+                
+            } else if (volumeId != null) {
+                volume = _volumeDao.findById(volumeId);
+                zoneId = volume.getDataCenterId();
+            }
+            scope = new ZoneScope(zoneId);
             List<DataStore> store = this.dataStoreMgr.getImageStores(scope);
             if (store.size() > 1) {
                 throw new CloudRuntimeException("muliple image data store, don't know which one to use");
@@ -1727,7 +1736,6 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
                 SnapshotInfo snapInfo = this.snapshotFactory.getSnapshot(snapshotId);
                 future = this.imageSvr.createTemplateFromSnapshotAsync(snapInfo, tmplInfo, store.get(0));
             } else if (volumeId != null) {
-               volume = _volumeDao.findById(volumeId);
                VolumeInfo volInfo = this.volFactory.getVolume(volumeId);
                future = this.imageSvr.createTemplateFromVolumeAsync(volInfo, tmplInfo, store.get(0));
             } else {
@@ -1748,7 +1756,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
                 UsageEventVO usageEvent = new UsageEventVO(
                         EventTypes.EVENT_TEMPLATE_CREATE,
                         privateTemplate.getAccountId(),
-                        snapshot.getDataCenterId(),
+                        zoneId,
                         privateTemplate.getId(), privateTemplate.getName(),
                         null, privateTemplate.getSourceTemplateId(),
                         privateTemplate.getSize());
@@ -1971,6 +1979,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
             }
         }
         privateTemplate.setSourceTemplateId(sourceTemplateId);
+        privateTemplate.setImageDataStoreId(1);
 
         VMTemplateVO template = this._tmpltDao.persist(privateTemplate);
         // Increment the number of templates


[36/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2010: cloudstack UI - IPv6 - Infrastructure menu - zone detail - add IPv6 DNS1, IPv6 DNS 2 field.


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

Branch: refs/heads/internallb
Commit: b2b8f0e9f48e529d936f9cd976d0fd5389f340f5
Parents: b9d8955
Author: Jessica Wang <je...@apache.org>
Authored: Mon Apr 22 15:07:31 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 15:07:31 2013 -0700

----------------------------------------------------------------------
 ui/scripts/system.js |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2b8f0e9/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index a92506b..2058065 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -4893,14 +4893,16 @@
                       var array1 = [];
                       array1.push("&name="  +todb(args.data.name));
                       array1.push("&dns1=" + todb(args.data.dns1));
-                      array1.push("&dns2=" + todb(args.data.dns2));  //dns2 can be empty ("") when passed to API
+                      array1.push("&dns2=" + todb(args.data.dns2));  //dns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
+                      array1.push("&ip6dns1=" + todb(args.data.ip6dns1));  //p6dns1 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.                      
+                      array1.push("&ip6dns2=" + todb(args.data.ip6dns2));  //ip6dns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
                       
                       if (selectedZoneObj.networktype == "Advanced" && args.data.guestcidraddress) {
                         array1.push("&guestcidraddress=" + todb(args.data.guestcidraddress));
                       }
                       
                       array1.push("&internaldns1=" + todb(args.data.internaldns1));
-                      array1.push("&internaldns2=" + todb(args.data.internaldns2));  //internaldns2 can be empty ("") when passed to API
+                      array1.push("&internaldns2=" + todb(args.data.internaldns2));  //internaldns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
                       array1.push("&domain=" + todb(args.data.domain));
                       array1.push("&localstorageenabled=" + (args.data.localstorageenabled == 'on'));
                       $.ajax({
@@ -4938,6 +4940,8 @@
                         allocationstate: { label: 'label.allocation.state' },
                         dns1: { label: 'label.dns.1', isEditable: true, validation: { required: true } },
                         dns2: { label: 'label.dns.2', isEditable: true },
+                        ip6dns1: { label: 'IPv6 DNS1', isEditable: true },
+                        ip6dns2: { label: 'IPv6 DNS2', isEditable: true },
                         internaldns1: { label: 'label.internal.dns.1', isEditable: true, validation: { required: true } },
                         internaldns2: { label: 'label.internal.dns.2', isEditable: true },
                         domainname: { label: 'label.domain' },
@@ -4950,8 +4954,8 @@
                         localstorageenabled: {
                           label: 'label.local.storage.enabled',
                           isBoolean: true,
-													isEditable: true,
-													converter:cloudStack.converters.toBooleanText
+			  isEditable: true,
+			  converter:cloudStack.converters.toBooleanText
                         }
                       }
                     ],


[32/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-1730: cloudstack UI - IPv6 - network menu - guest network detailView - add IPv6 Gateway, IPv6 CIDR.


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

Branch: refs/heads/internallb
Commit: df039aab7f36d221bd9bf1800166fbcbe461c46d
Parents: b30e39b
Author: Jessica Wang <je...@apache.org>
Authored: Mon Apr 22 13:30:12 2013 -0700
Committer: Jessica Wang <je...@apache.org>
Committed: Mon Apr 22 13:32:38 2013 -0700

----------------------------------------------------------------------
 ui/scripts/network.js |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/df039aab/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index f9a8778..9ba725a 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -1031,6 +1031,11 @@
 
                     networkcidr:{label:'Network CIDR'},
 
+                    ip6gateway: { label: 'IPv6 Gateway' }, 
+
+                    ip6cidr: { label: 'IPv6 CIDR' }, 
+
+
                     reservediprange:{label:'Reserved IP Range'},
 
 


[22/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
Refactoring vlan and globalsetting tests

Refactoring the vlan and global_setting tests to use the marvin
libraries instead of command classes.

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


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

Branch: refs/heads/internallb
Commit: a1912d9ce21c0798c04d3e38142ff5a89b576328
Parents: 9572f57
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Mon Apr 22 19:34:35 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Mon Apr 22 19:35:22 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_global_settings.py    |   33 +---
 test/integration/smoke/test_non_contigiousvlan.py |  139 ++++++----------
 tools/marvin/marvin/integration/lib/base.py       |    2 +-
 3 files changed, 61 insertions(+), 113 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1912d9c/test/integration/smoke/test_global_settings.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_global_settings.py b/test/integration/smoke/test_global_settings.py
index be501b9..12b35d7 100644
--- a/test/integration/smoke/test_global_settings.py
+++ b/test/integration/smoke/test_global_settings.py
@@ -17,40 +17,25 @@
 """ P1 tests for updating the granular Configuration parameter with scope and resource id provided.
 """
 #Import Local Modules
-import marvin
 from marvin.cloudstackTestCase import *
 from marvin.cloudstackAPI import *
-from marvin.remoteSSHClient import remoteSSHClient
 from marvin.integration.lib.utils import *
 from marvin.integration.lib.base import *
 from marvin.integration.lib.common import *
-from nose.plugins.attrib import attr
 #Import System modules
-import unittest
-import hashlib
-import random
 
 class TestUpdateConfigWithScope(cloudstackTestCase):
     """
-    This test updates the value of a configuration parameter
-    which is at zone level(scope)
+    Test to update a configuration (global setting) at various scopes
     """
     def setUp(self):
-        """
-        CloudStack internally saves its passwords in md5 form and that is how we
-        specify it in the API. Python's hashlib library helps us to quickly hash
-        strings as follows
-        """
-        mdf = hashlib.md5()
-        mdf.update('password')
-        mdf_pass = mdf.hexdigest()
-
-        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
-
-
+        self.apiClient = self.testClient.getApiClient()
 
     def test_UpdateConfigParamWithScope(self):
-
+        """
+        test update configuration setting at zone level scope
+        @return:
+        """
         updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
         updateConfigurationCmd.name = "use.external.dns"
         updateConfigurationCmd.value = "true"
@@ -70,13 +55,15 @@ class TestUpdateConfigWithScope(cloudstackTestCase):
                             returns a non-empty response")
 
         configParam = listConfigurationsResponse[0]
-
         self.assertEqual(configParam.value, updateConfigurationResponse.value, "Check if the update API returned \
                          is the same as the one we got in the list API")
 
 
     def tearDown(self):
-
+        """
+        Reset the configuration back to false
+        @return:
+        """
         updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
         updateConfigurationCmd.name = "use.external.dns"
         updateConfigurationCmd.value = "false"

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1912d9c/test/integration/smoke/test_non_contigiousvlan.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_non_contigiousvlan.py b/test/integration/smoke/test_non_contigiousvlan.py
index fe70f87..91b6325 100644
--- a/test/integration/smoke/test_non_contigiousvlan.py
+++ b/test/integration/smoke/test_non_contigiousvlan.py
@@ -14,112 +14,73 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-""" BVT tests for Primary Storage
-"""
-import marvin
+
 from marvin import cloudstackTestCase
-from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.integration.lib.base import Account
+from marvin.integration.lib.base import PhysicalNetwork
+from nose.plugins.attrib import attr
 
-import unittest
-import hashlib
-import random
+class Services():
+    def __init__(self):
+        self.services = {
+            "vlan": {
+                "part": ["4090-4091", "4092-4096"],
+                "full": "4090-4096",
+            }
+        }
 
 
+@attr(tags = ["simulator", "advanced"])
 class TestUpdatePhysicalNetwork(cloudstackTestCase):
     """
-    This test updates the existing physicalnetwork with a new vlan range.
+    Test to extend physical network vlan range
     """
     def setUp(self):
-        """
-        CloudStack internally saves its passwords in md5 form and that is how we
-        specify it in the API. Python's hashlib library helps us to quickly hash
-        strings as follows
-        """
-        mdf = hashlib.md5()
-        mdf.update('password')
-        mdf_pass = mdf.hexdigest()
+        self.vlan = Services().services["vlan"]
+        self.apiClient = self.testClient.getApiClient()
 
-        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
 
-        self.acct = createAccount.createAccountCmd() #The createAccount command
-        self.acct.accounttype = 0                    #We need a regular user. admins have accounttype=1
-        self.acct.firstname = 'bharat'
-        self.acct.lastname = 'kumar'                 #What's up doc?
-        self.acct.password = mdf_pass                #The md5 hashed password string
-        self.acct.username = 'bharat'
-        self.acct.email = 'bharat@kumar.com'
-        self.acct.account = 'bharat'
-        self.acct.domainid = 1                       #The default ROOT domain
-        self.acctResponse = self.apiClient.createAccount(self.acct)
-        # using the default debug logger of the test framework
-        self.debug("successfully created account: %s, user: %s, id: \
-                   %s"%(self.acctResponse.account.account, \
-                        self.acctResponse.account.username, \
-                        self.acctResponse.account.id))
-
-    def test_UpdatePhysicalNetwork(self):
+    def test_extendPhysicalNetworkVlan(self):
         """
-        Let's start by defining the attributes of our VM that we will be
-        deploying on CloudStack. We will be assuming a single zone is available
-        and is configured and all templates are Ready
-
-        The hardcoded values are used only for brevity.
+        Test to update a physical network and extend its vlan
         """
-        listPhysicalNetworksCmd = listPhysicalNetworks.listPhysicalNetworksCmd()
-        listPhysicalNetworksResponse = self.apiClient.listPhysicalNetworks(listPhysicalNetworksCmd)
-        
-        self.assertNotEqual(len(listPhysicalNetworksResponse), 0, "Check if the list API \
-                           returns a non-empty response")
-        
-        networkid = listPhysicalNetworksResponse[0].id
-        updatePhysicalNetworkCmd = updatePhysicalNetwork.updatePhysicalNetworkCmd()
-        updatePhysicalNetworkCmd.id = networkid
-        updatePhysicalNetworkCmd.vlan = "4090-4091"
-        updatePhysicalNetworkResponse = self.apiClient.updatePhysicalNetwork(updatePhysicalNetworkCmd)
-        self.assertNotEqual((updatePhysicalNetworkResponse.len), 0, "Check if the list API \
-                           returns a non-empty response")
-        
-        updatePhysicalNetworkCmd = updatePhysicalNetwork.updatePhysicalNetworkCmd()
-        updatePhysicalNetworkCmd.id = networkid
-        updatePhysicalNetworkCmd.vlan = "4092-4096"
-        updatePhysicalNetworkResponse = self.apiClient.updatePhysicalNetwork(updatePhysicalNetworkCmd)
-        self.assertNotEqual((updatePhysicalNetworkResponse.len), 0, "Check if the list API \
-                                returns a non-empty response")
+        phy_networks = PhysicalNetwork.list(self.apiClient)
+        self.assertNotEqual(len(phy_networks), 0,
+            msg="There are no physical networks in the zone")
 
-        vlanranges= updatePhysicalNetworkResponse.vlan
-        range = ""
-        vlanranges = vlanranges.split(";")
-        for vlan in vlanranges:
-            if (vlan == "4090-4096"):
-               range = vlan
-    
-        self.assertEqual(range, "4090-4096", "check if adding the range is successful")
+        self.network = phy_networks[0]
+        self.networkid = phy_networks[0].id
+        vlan1 = self.vlan["part"][0]
+        updatePhysicalNetworkResponse = self.network.update(self.apiClient, id = self.networkid, vlan = vlan1)
+        self.assert_(updatePhysicalNetworkResponse is not None,
+            msg="couldn't extend the physical network with vlan %s"%vlan1)
+        self.assert_(isinstance(self.network, PhysicalNetwork))
 
-        updatePhysicalNetworkCmd = updatePhysicalNetwork.updatePhysicalNetworkCmd()
-        updatePhysicalNetworkCmd.id = networkid
-        updatePhysicalNetworkCmd.removevlan = "4090-4096"
-        updatePhysicalNetworkResponse = self.apiClient.updatePhysicalNetwork(updatePhysicalNetworkCmd)
-        self.assertNotEqual((updatePhysicalNetworkResponse.len), 0, "Check if the list API \
-                    returns a non-empty response")
+        vlan2 = self.vlan["part"][1]
+        updatePhysicalNetworkResponse2 = self.network.update(self.apiClient, id = self.networkid, vlan = vlan2)
+        self.assert_(updatePhysicalNetworkResponse2 is not None,
+            msg="couldn't extend the physical network with vlan %s"%vlan2)
+        self.assert_(isinstance(self.network, PhysicalNetwork))
 
-        vlanranges= updatePhysicalNetworkResponse.vlan
-        range = ""
-        vlanranges = vlanranges.split(";")
+        vlanranges= updatePhysicalNetworkResponse2.vlan
+        self.assert_(vlanranges is not None,
+            "No VLAN ranges found on the deployment")
+        self.assert_(vlanranges.find(self.vlan["full"]) > 0, "vlan ranges are not extended")
 
-        for vlan in vlanranges:
-            if (vlan == "4090-4096"):
-               range = vlan
-    
-    
-        self.assertEqual(range, "", "check if removing the range is successful")
 
-    
-    def tearDown(self):                               # Teardown will delete the Account as well as the VM once the VM reaches "Running" state
+    def tearDown(self):
         """
-        And finally let us cleanup the resources we created by deleting the
-        account. All good unittests are atomic and rerunnable this way
+        Teardown to update a physical network and shrink its vlan
+        @return:
         """
-        deleteAcct = deleteAccount.deleteAccountCmd()
-        deleteAcct.id = self.acctResponse.account.id
-        self.apiClient.deleteAccount(deleteAcct)
+        phy_networks = PhysicalNetwork.list(self.apiClient)
+        self.assertNotEqual(len(phy_networks), 0,
+            msg="There are no physical networks in the zone")
+        self.network = phy_networks[0]
+        self.networkid = phy_networks[0].id
+        updateResponse = self.network.update(self.apiClient, id = self.networkid, removevlan = self.vlan["full"])
+        self.assert_(updateResponse.vlan.find(self.vlan["full"]) > 0,
+            "VLAN was not removed successfully")
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1912d9c/tools/marvin/marvin/integration/lib/base.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base.py b/tools/marvin/marvin/integration/lib/base.py
index 915d478..92cdf81 100755
--- a/tools/marvin/marvin/integration/lib/base.py
+++ b/tools/marvin/marvin/integration/lib/base.py
@@ -1994,7 +1994,7 @@ class PhysicalNetwork:
 
         cmd = listPhysicalNetworks.listPhysicalNetworksCmd()
         [setattr(cmd, k, v) for k, v in kwargs.items()]
-        return(apiclient.listPhysicalNetworks(cmd))
+        return map(lambda pn : PhysicalNetwork(pn.__dict__), apiclient.listPhysicalNetworks(cmd))
 
 class SecurityGroup:
     """Manage Security Groups"""


[42/50] [abbrv] git commit: updated refs/heads/internallb to ca2fc30

Posted by al...@apache.org.
CLOUDSTACK-2154: create account command returns user response

Fix the annotation so cloudmonkey, marvin and apidocs can process the
response of createAccount as AccountResponse and not UserResponse as was
previously mapped.

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


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

Branch: refs/heads/internallb
Commit: 2712ddda26551117fea0149a7a5f7aceeedac3b1
Parents: 9abc21c
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Tue Apr 23 20:38:14 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Tue Apr 23 22:21:42 2013 +0530

----------------------------------------------------------------------
 .../command/admin/account/CreateAccountCmd.java    |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2712ddda/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
index 95d0d07..cc74eb2 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
@@ -16,9 +16,9 @@
 // under the License.
 package org.apache.cloudstack.api.command.admin.account;
 
-import java.util.Collection;
-import java.util.Map;
-
+import com.cloud.user.Account;
+import com.cloud.user.UserAccount;
+import com.cloud.user.UserContext;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.ApiErrorCode;
@@ -27,14 +27,12 @@ import org.apache.cloudstack.api.Parameter;
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.DomainResponse;
-import org.apache.cloudstack.api.response.UserResponse;
 import org.apache.log4j.Logger;
 
-import com.cloud.user.Account;
-import com.cloud.user.UserAccount;
-import com.cloud.user.UserContext;
+import java.util.Collection;
+import java.util.Map;
 
-@APICommand(name = "createAccount", description="Creates an account", responseObject=UserResponse.class)
+@APICommand(name = "createAccount", description="Creates an account", responseObject=AccountResponse.class)
 public class CreateAccountCmd extends BaseCmd {
     public static final Logger s_logger = Logger.getLogger(CreateAccountCmd.class.getName());