You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2016/08/18 10:01:45 UTC

[01/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127 [Forced Update!]

Repository: cloudstack
Updated Branches:
  refs/heads/4.9-bountycastle-daan 722156da1 -> 8a031271c (forced update)


CLOUDSTACK-9348: Reduce Nio selector wait time

This reduced the Nio loop selector wait time, this way the selector will
check frequently (as much as 100ms per iteration) and handle any pending
connection/tasks. This would make reconnections very quick at the expense of
some CPU usage.

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 0381b7ea185ef753873594216a67b8d376e3d658
Parents: e4ba640
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Fri Jul 1 14:32:58 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Fri Jul 1 14:34:48 2016 +0530

----------------------------------------------------------------------
 utils/src/main/java/com/cloud/utils/nio/NioConnection.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0381b7ea/utils/src/main/java/com/cloud/utils/nio/NioConnection.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/com/cloud/utils/nio/NioConnection.java b/utils/src/main/java/com/cloud/utils/nio/NioConnection.java
index 9d755d6..630b2dd 100644
--- a/utils/src/main/java/com/cloud/utils/nio/NioConnection.java
+++ b/utils/src/main/java/com/cloud/utils/nio/NioConnection.java
@@ -125,7 +125,7 @@ public abstract class NioConnection implements Callable<Boolean> {
     public Boolean call() throws NioConnectionException {
         while (_isRunning) {
             try {
-                _selector.select(1000);
+                _selector.select(100);
 
                 // Someone is ready for I/O, get the ready keys
                 final Set<SelectionKey> readyKeys = _selector.selectedKeys();


[24/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1616 from pdube/4.9-vr-iptables-fixes

Added missing rules on router config, fixed ordering of multiple rules, removed duplicate rules, added fix for network stats, added a check for b64 decoding (to pad incorrect b64). Also added a catch exception to be logged on the configure main.

https://issues.apache.org/jira/browse/CLOUDSTACK-9430
https://issues.apache.org/jira/browse/CLOUDSTACK-9431
https://issues.apache.org/jira/browse/CLOUDSTACK-9435
https://issues.apache.org/jira/browse/CLOUDSTACK-9440

* pr/1616:
  Added missing rules on router config, fixed ordering of multiple rules, removed duplicate rules, added fix for network stats, added a check for b64 decoding (to pad incorrect b64). Also added a catch exception to be logged on the configure main.

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 818063c8eefc66e60070089c29001a8b9caedabf
Parents: 0a0839e 9ab6762
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 25 16:37:37 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 25 16:37:38 2016 -0400

----------------------------------------------------------------------
 .../debian/config/opt/cloud/bin/configure.py    | 201 ++++++++++---------
 .../debian/config/opt/cloud/bin/cs/CsAddress.py |  17 +-
 .../config/opt/cloud/bin/cs/CsNetfilter.py      |  14 +-
 3 files changed, 126 insertions(+), 106 deletions(-)
----------------------------------------------------------------------



[41/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Fix debian build error due to commit 3315eb5420e1b2cedf906aeb709740efc2f08cfd


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: d87828af2449907192dfd69a22fdb9cd5780d329
Parents: 2875af7
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Mon Aug 8 15:02:03 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Mon Aug 8 15:02:03 2016 +0530

----------------------------------------------------------------------
 debian/changelog | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d87828af/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index c85c4a5..b647b3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
 cloudstack (4.10.0-SNAPSHOT) unstable; urgency=low
-cloudstack (4.9.0) unstable; urgency=low
 
-  * Update the version to 4.9.0
+  * Update the version to 4.10.0.snapshot
 
- -- the Apache CloudStack project <de...@cloudstack.apache.org>  Mon, 25 Jul 2016 16:56:03 -0400
+ -- the Apache CloudStack project <de...@cloudstack.apache.org>  Mon, 08 Aug 2016 11:22:34 +0530
 
+cloudstack (4.9.0) unstable; urgency=low
 
   [ Remi Bergsma ]
   * Update the version to 4.9.0.snapshot


[03/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Cleanup rbd contexts and improve exception logging

We noticed that when an exception occurs within the cleanup loop inside
the deletePhysicalDisk routine that the previously allocated contexts
are not cleaned up.  This seemed to cause an eventual crash of the host
agent after multiple exceptions within the loop.

In addition to ensuring the contexts are always freed we also improved
the logging when exceptions do occur to include the actual return code
from the underlying library in deletePhysicalDisk and deleteSnapshot.


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 44491448e3811cfcebe5c3aeee72ba7a01948cda
Parents: 1f9bf93
Author: Aaron Hurt <ah...@anbcs.com>
Authored: Fri Jul 8 22:57:06 2016 -0500
Committer: Aaron Hurt <ah...@anbcs.com>
Committed: Fri Jul 8 23:13:33 2016 -0500

----------------------------------------------------------------------
 .../kvm/storage/KVMStorageProcessor.java        | 13 ++++++-
 .../kvm/storage/LibvirtStorageAdaptor.java      | 37 +++++++++++---------
 2 files changed, 33 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/44491448/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
index ed2fa49..77cbdd3 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
@@ -69,7 +69,10 @@ import org.libvirt.LibvirtException;
 
 import com.ceph.rados.IoCTX;
 import com.ceph.rados.Rados;
+import com.ceph.rados.exceptions.ErrorCode;
+import com.ceph.rados.exceptions.RadosException;
 import com.ceph.rbd.Rbd;
+import com.ceph.rbd.RbdException;
 import com.ceph.rbd.RbdImage;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer;
@@ -1325,6 +1328,8 @@ public class KVMStorageProcessor implements StorageProcessor {
                     image.snapRemove(snapshotName);
                     s_logger.info("Snapshot " + snap_full_name + " successfully removed from " +
                             primaryPool.getType().toString() + "  pool.");
+                } catch (RbdException e) {
+                    s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
                 } finally {
                     rbd.close(image);
                     r.ioCtxDestroy(io);
@@ -1334,8 +1339,14 @@ public class KVMStorageProcessor implements StorageProcessor {
                 throw new InternalErrorException("Operation not implemented for storage pool type of " + primaryPool.getType().toString());
             }
             return new Answer(cmd, true, "Snapshot " + snap_full_name + " removed successfully.");
+        } catch (RadosException e) {
+            s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+            return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
+        } catch (RbdException e) {
+            s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+            return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
         } catch (Exception e) {
-            s_logger.error(e.getMessage());
+            s_logger.error(e.toString());
             return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
         }
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/44491448/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
index d7bdab2..5a35973 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
@@ -35,6 +35,7 @@ import org.libvirt.StorageVol;
 
 import com.ceph.rados.IoCTX;
 import com.ceph.rados.Rados;
+import com.ceph.rados.exceptions.ErrorCode;
 import com.ceph.rados.exceptions.RadosException;
 import com.ceph.rbd.Rbd;
 import com.ceph.rbd.RbdException;
@@ -863,26 +864,30 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
                 RbdImage image = rbd.open(uuid);
                 s_logger.debug("Fetching list of snapshots of RBD image " + pool.getSourceDir() + "/" + uuid);
                 List<RbdSnapInfo> snaps = image.snapList();
-                for (RbdSnapInfo snap : snaps) {
-                    if (image.snapIsProtected(snap.name)) {
-                        s_logger.debug("Unprotecting snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name);
-                        image.snapUnprotect(snap.name);
-                    } else {
-                        s_logger.debug("Snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name + " is not protected.");
+                try {
+                    for (RbdSnapInfo snap : snaps) {
+                        if (image.snapIsProtected(snap.name)) {
+                            s_logger.debug("Unprotecting snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name);
+                            image.snapUnprotect(snap.name);
+                        } else {
+                            s_logger.debug("Snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name + " is not protected.");
+                        }
+                        s_logger.debug("Removing snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name);
+                        image.snapRemove(snap.name);
                     }
-                    s_logger.debug("Removing snapshot " + pool.getSourceDir() + "/" + uuid + "@" + snap.name);
-                    image.snapRemove(snap.name);
+                    s_logger.info("Succesfully unprotected and removed any remaining snapshots (" + snaps.size() + ") of "
+                        + pool.getSourceDir() + "/" + uuid + " Continuing to remove the RBD image");
+                } catch (RbdException e) {
+                    throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+                } finally {
+                    s_logger.debug("Closing image and destroying context");
+                    rbd.close(image);
+                    r.ioCtxDestroy(io);
                 }
-
-                rbd.close(image);
-                r.ioCtxDestroy(io);
-
-                s_logger.info("Succesfully unprotected and removed any remaining snapshots (" + snaps.size() + ") of "
-                              + pool.getSourceDir() + "/" + uuid + " Continuing to remove the RBD image");
             } catch (RadosException e) {
-                throw new CloudRuntimeException(e.toString());
+                throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
             } catch (RbdException e) {
-                throw new CloudRuntimeException(e.toString());
+                throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
             }
         }
 


[49/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
pedantic formatting


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 4dbcf3aa466c80205d76d446d2cd352ffbe08ac9
Parents: 04bd246
Author: Daan Hoogland <da...@onecht.net>
Authored: Wed May 18 13:45:41 2016 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 18 15:30:38 2016 +0530

----------------------------------------------------------------------
 .../network/resource/NetscalerResource.java     | 1342 +++++++++---------
 .../cloudstack/network/lb/CertServiceImpl.java  |  183 +--
 .../cloudstack/network/lb/CertServiceTest.java  |  338 ++---
 .../cloud/utils/security/CertificateHelper.java |   66 +-
 4 files changed, 983 insertions(+), 946 deletions(-)
----------------------------------------------------------------------



[27/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Updating pom.xml version numbers for release 4.9.0

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 227ff3884dd0b9c2804f20a2cc53964b01256ad9
Parents: d302269
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 25 16:56:04 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 25 16:56:04 2016 -0400

----------------------------------------------------------------------
 agent/pom.xml                                                 | 2 +-
 api/pom.xml                                                   | 2 +-
 client/pom.xml                                                | 2 +-
 core/pom.xml                                                  | 2 +-
 debian/changelog                                              | 6 ++++++
 developer/pom.xml                                             | 2 +-
 engine/api/pom.xml                                            | 2 +-
 engine/components-api/pom.xml                                 | 2 +-
 engine/network/pom.xml                                        | 2 +-
 engine/orchestration/pom.xml                                  | 2 +-
 engine/pom.xml                                                | 2 +-
 engine/schema/pom.xml                                         | 2 +-
 engine/service/pom.xml                                        | 2 +-
 engine/storage/cache/pom.xml                                  | 2 +-
 engine/storage/datamotion/pom.xml                             | 2 +-
 engine/storage/image/pom.xml                                  | 2 +-
 engine/storage/integration-test/pom.xml                       | 2 +-
 engine/storage/pom.xml                                        | 2 +-
 engine/storage/snapshot/pom.xml                               | 2 +-
 engine/storage/volume/pom.xml                                 | 2 +-
 framework/cluster/pom.xml                                     | 2 +-
 framework/config/pom.xml                                      | 2 +-
 framework/db/pom.xml                                          | 2 +-
 framework/events/pom.xml                                      | 2 +-
 framework/ipc/pom.xml                                         | 2 +-
 framework/jobs/pom.xml                                        | 2 +-
 framework/managed-context/pom.xml                             | 2 +-
 framework/pom.xml                                             | 2 +-
 framework/quota/pom.xml                                       | 2 +-
 framework/rest/pom.xml                                        | 2 +-
 framework/security/pom.xml                                    | 2 +-
 framework/spring/lifecycle/pom.xml                            | 2 +-
 framework/spring/module/pom.xml                               | 2 +-
 maven-standard/pom.xml                                        | 2 +-
 plugins/acl/dynamic-role-based/pom.xml                        | 2 +-
 plugins/acl/static-role-based/pom.xml                         | 2 +-
 plugins/affinity-group-processors/explicit-dedication/pom.xml | 2 +-
 plugins/affinity-group-processors/host-anti-affinity/pom.xml  | 2 +-
 plugins/alert-handlers/snmp-alerts/pom.xml                    | 2 +-
 plugins/alert-handlers/syslog-alerts/pom.xml                  | 2 +-
 plugins/api/discovery/pom.xml                                 | 2 +-
 plugins/api/rate-limit/pom.xml                                | 2 +-
 plugins/api/solidfire-intg-test/pom.xml                       | 2 +-
 plugins/database/mysql-ha/pom.xml                             | 2 +-
 plugins/database/quota/pom.xml                                | 2 +-
 plugins/dedicated-resources/pom.xml                           | 2 +-
 plugins/deployment-planners/implicit-dedication/pom.xml       | 2 +-
 plugins/deployment-planners/user-concentrated-pod/pom.xml     | 2 +-
 plugins/deployment-planners/user-dispersing/pom.xml           | 2 +-
 plugins/event-bus/inmemory/pom.xml                            | 2 +-
 plugins/event-bus/kafka/pom.xml                               | 2 +-
 plugins/event-bus/rabbitmq/pom.xml                            | 2 +-
 plugins/file-systems/netapp/pom.xml                           | 2 +-
 plugins/ha-planners/skip-heurestics/pom.xml                   | 2 +-
 plugins/host-allocators/random/pom.xml                        | 2 +-
 plugins/hypervisors/baremetal/pom.xml                         | 2 +-
 plugins/hypervisors/hyperv/pom.xml                            | 2 +-
 plugins/hypervisors/kvm/pom.xml                               | 2 +-
 plugins/hypervisors/ovm/pom.xml                               | 2 +-
 plugins/hypervisors/ovm3/pom.xml                              | 2 +-
 plugins/hypervisors/simulator/pom.xml                         | 2 +-
 plugins/hypervisors/ucs/pom.xml                               | 2 +-
 plugins/hypervisors/vmware/pom.xml                            | 2 +-
 plugins/hypervisors/xenserver/pom.xml                         | 2 +-
 plugins/network-elements/bigswitch/pom.xml                    | 2 +-
 plugins/network-elements/brocade-vcs/pom.xml                  | 2 +-
 plugins/network-elements/cisco-vnmc/pom.xml                   | 2 +-
 plugins/network-elements/dns-notifier/pom.xml                 | 2 +-
 plugins/network-elements/elastic-loadbalancer/pom.xml         | 2 +-
 plugins/network-elements/f5/pom.xml                           | 2 +-
 plugins/network-elements/globodns/pom.xml                     | 2 +-
 plugins/network-elements/internal-loadbalancer/pom.xml        | 2 +-
 plugins/network-elements/juniper-contrail/pom.xml             | 2 +-
 plugins/network-elements/juniper-srx/pom.xml                  | 2 +-
 plugins/network-elements/midonet/pom.xml                      | 2 +-
 plugins/network-elements/netscaler/pom.xml                    | 2 +-
 plugins/network-elements/nicira-nvp/pom.xml                   | 4 ++--
 plugins/network-elements/nuage-vsp/pom.xml                    | 2 +-
 plugins/network-elements/opendaylight/pom.xml                 | 2 +-
 plugins/network-elements/ovs/pom.xml                          | 2 +-
 plugins/network-elements/palo-alto/pom.xml                    | 2 +-
 plugins/network-elements/stratosphere-ssp/pom.xml             | 2 +-
 plugins/network-elements/vxlan/pom.xml                        | 2 +-
 plugins/outofbandmanagement-drivers/ipmitool/pom.xml          | 2 +-
 plugins/pom.xml                                               | 2 +-
 plugins/storage-allocators/random/pom.xml                     | 2 +-
 plugins/storage/image/default/pom.xml                         | 2 +-
 plugins/storage/image/s3/pom.xml                              | 2 +-
 plugins/storage/image/sample/pom.xml                          | 2 +-
 plugins/storage/image/swift/pom.xml                           | 2 +-
 plugins/storage/volume/cloudbyte/pom.xml                      | 2 +-
 plugins/storage/volume/default/pom.xml                        | 2 +-
 plugins/storage/volume/nexenta/pom.xml                        | 2 +-
 plugins/storage/volume/sample/pom.xml                         | 2 +-
 plugins/storage/volume/solidfire/pom.xml                      | 2 +-
 plugins/user-authenticators/ldap/pom.xml                      | 2 +-
 plugins/user-authenticators/md5/pom.xml                       | 2 +-
 plugins/user-authenticators/pbkdf2/pom.xml                    | 2 +-
 plugins/user-authenticators/plain-text/pom.xml                | 2 +-
 plugins/user-authenticators/saml2/pom.xml                     | 2 +-
 plugins/user-authenticators/sha256salted/pom.xml              | 2 +-
 pom.xml                                                       | 2 +-
 quickcloud/pom.xml                                            | 2 +-
 server/pom.xml                                                | 2 +-
 services/console-proxy-rdp/rdpconsole/pom.xml                 | 2 +-
 services/console-proxy/plugin/pom.xml                         | 2 +-
 services/console-proxy/pom.xml                                | 2 +-
 services/console-proxy/server/pom.xml                         | 2 +-
 services/iam/plugin/pom.xml                                   | 2 +-
 services/iam/server/pom.xml                                   | 2 +-
 services/pom.xml                                              | 2 +-
 services/secondary-storage/controller/pom.xml                 | 2 +-
 services/secondary-storage/pom.xml                            | 2 +-
 services/secondary-storage/server/pom.xml                     | 2 +-
 systemvm/pom.xml                                              | 2 +-
 test/pom.xml                                                  | 2 +-
 tools/apidoc/pom.xml                                          | 2 +-
 tools/checkstyle/pom.xml                                      | 2 +-
 tools/devcloud-kvm/pom.xml                                    | 2 +-
 tools/devcloud/pom.xml                                        | 2 +-
 tools/devcloud4/pom.xml                                       | 2 +-
 tools/marvin/pom.xml                                          | 2 +-
 tools/marvin/setup.py                                         | 2 +-
 tools/pom.xml                                                 | 2 +-
 tools/wix-cloudstack-maven-plugin/pom.xml                     | 2 +-
 usage/pom.xml                                                 | 2 +-
 utils/pom.xml                                                 | 2 +-
 vmware-base/pom.xml                                           | 2 +-
 128 files changed, 134 insertions(+), 128 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/agent/pom.xml
----------------------------------------------------------------------
diff --git a/agent/pom.xml b/agent/pom.xml
index 9ff0c5e..58177f5 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/api/pom.xml
----------------------------------------------------------------------
diff --git a/api/pom.xml b/api/pom.xml
index 6b9c98f..66499b4 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index 7310cef..58ade0c 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index f50f8af..a5aafb6 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 04ae4f7..2240e5a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cloudstack (4.9.0) unstable; urgency=low
+
+  * Update the version to 4.9.0
+
+ -- the Apache CloudStack project <de...@cloudstack.apache.org>  Mon, 25 Jul 2016 16:56:03 -0400
+
 cloudstack (4.9.0-SNAPSHOT) unstable; urgency=low
 
   [ Remi Bergsma ]

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/developer/pom.xml
----------------------------------------------------------------------
diff --git a/developer/pom.xml b/developer/pom.xml
index b7d7000..41d383a 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/api/pom.xml
----------------------------------------------------------------------
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 1f539fb..8b2ab56 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/components-api/pom.xml
----------------------------------------------------------------------
diff --git a/engine/components-api/pom.xml b/engine/components-api/pom.xml
index 7ea56d6..0ec890a 100644
--- a/engine/components-api/pom.xml
+++ b/engine/components-api/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/network/pom.xml
----------------------------------------------------------------------
diff --git a/engine/network/pom.xml b/engine/network/pom.xml
index a41ed26..c16a235 100644
--- a/engine/network/pom.xml
+++ b/engine/network/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/orchestration/pom.xml
----------------------------------------------------------------------
diff --git a/engine/orchestration/pom.xml b/engine/orchestration/pom.xml
index ee3bb34..9137416 100755
--- a/engine/orchestration/pom.xml
+++ b/engine/orchestration/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/pom.xml
----------------------------------------------------------------------
diff --git a/engine/pom.xml b/engine/pom.xml
index c3c0b28..c11b867 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/schema/pom.xml
----------------------------------------------------------------------
diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml
index 4d0b90d..2964988 100644
--- a/engine/schema/pom.xml
+++ b/engine/schema/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/service/pom.xml
----------------------------------------------------------------------
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index 7f07323..22da490 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <artifactId>cloud-engine-service</artifactId>
   <packaging>war</packaging>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/cache/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/cache/pom.xml b/engine/storage/cache/pom.xml
index 976a2e7..7a6f7c3 100644
--- a/engine/storage/cache/pom.xml
+++ b/engine/storage/cache/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/datamotion/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/datamotion/pom.xml b/engine/storage/datamotion/pom.xml
index 3324270..2e5e83e 100644
--- a/engine/storage/datamotion/pom.xml
+++ b/engine/storage/datamotion/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/image/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/image/pom.xml b/engine/storage/image/pom.xml
index 779f139..b6dfe5f 100644
--- a/engine/storage/image/pom.xml
+++ b/engine/storage/image/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/integration-test/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/integration-test/pom.xml b/engine/storage/integration-test/pom.xml
index d648129..d73e865 100644
--- a/engine/storage/integration-test/pom.xml
+++ b/engine/storage/integration-test/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/pom.xml b/engine/storage/pom.xml
index cf9a8ea..6ae359d 100644
--- a/engine/storage/pom.xml
+++ b/engine/storage/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/snapshot/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/snapshot/pom.xml b/engine/storage/snapshot/pom.xml
index eda47be..a1bdf4b 100644
--- a/engine/storage/snapshot/pom.xml
+++ b/engine/storage/snapshot/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/engine/storage/volume/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/volume/pom.xml b/engine/storage/volume/pom.xml
index 340010b..8b573f8 100644
--- a/engine/storage/volume/pom.xml
+++ b/engine/storage/volume/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/cluster/pom.xml
----------------------------------------------------------------------
diff --git a/framework/cluster/pom.xml b/framework/cluster/pom.xml
index d14e5c4..f922c06 100644
--- a/framework/cluster/pom.xml
+++ b/framework/cluster/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/config/pom.xml
----------------------------------------------------------------------
diff --git a/framework/config/pom.xml b/framework/config/pom.xml
index 349e9f2..f958816 100644
--- a/framework/config/pom.xml
+++ b/framework/config/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/db/pom.xml
----------------------------------------------------------------------
diff --git a/framework/db/pom.xml b/framework/db/pom.xml
index 71b9af3..71839e1 100644
--- a/framework/db/pom.xml
+++ b/framework/db/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/events/pom.xml
----------------------------------------------------------------------
diff --git a/framework/events/pom.xml b/framework/events/pom.xml
index a633a77..fca0df2 100644
--- a/framework/events/pom.xml
+++ b/framework/events/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/ipc/pom.xml
----------------------------------------------------------------------
diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml
index 0341ff7..e7af6b8 100644
--- a/framework/ipc/pom.xml
+++ b/framework/ipc/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/jobs/pom.xml
----------------------------------------------------------------------
diff --git a/framework/jobs/pom.xml b/framework/jobs/pom.xml
index ff17f48..d01b3f0 100644
--- a/framework/jobs/pom.xml
+++ b/framework/jobs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>  
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/managed-context/pom.xml
----------------------------------------------------------------------
diff --git a/framework/managed-context/pom.xml b/framework/managed-context/pom.xml
index e2058fe..dc7268f 100644
--- a/framework/managed-context/pom.xml
+++ b/framework/managed-context/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../maven-standard/pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/pom.xml
----------------------------------------------------------------------
diff --git a/framework/pom.xml b/framework/pom.xml
index a60841c..05e7a95 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <build>
     <defaultGoal>install</defaultGoal>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/quota/pom.xml
----------------------------------------------------------------------
diff --git a/framework/quota/pom.xml b/framework/quota/pom.xml
index 82d43cd..1e5d353 100644
--- a/framework/quota/pom.xml
+++ b/framework/quota/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/rest/pom.xml
----------------------------------------------------------------------
diff --git a/framework/rest/pom.xml b/framework/rest/pom.xml
index 03aad76..6bff883 100644
--- a/framework/rest/pom.xml
+++ b/framework/rest/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-framework-rest</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/security/pom.xml
----------------------------------------------------------------------
diff --git a/framework/security/pom.xml b/framework/security/pom.xml
index cfe04de..f8f3bbf 100644
--- a/framework/security/pom.xml
+++ b/framework/security/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/spring/lifecycle/pom.xml
----------------------------------------------------------------------
diff --git a/framework/spring/lifecycle/pom.xml b/framework/spring/lifecycle/pom.xml
index 93160c4..bbbea4a 100644
--- a/framework/spring/lifecycle/pom.xml
+++ b/framework/spring/lifecycle/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/framework/spring/module/pom.xml
----------------------------------------------------------------------
diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml
index 6f89f53..2825b43 100644
--- a/framework/spring/module/pom.xml
+++ b/framework/spring/module/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/maven-standard/pom.xml
----------------------------------------------------------------------
diff --git a/maven-standard/pom.xml b/maven-standard/pom.xml
index 6f8530a..4bd3f91 100644
--- a/maven-standard/pom.xml
+++ b/maven-standard/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/acl/dynamic-role-based/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/acl/dynamic-role-based/pom.xml b/plugins/acl/dynamic-role-based/pom.xml
index 96d7e53..135cbd1 100644
--- a/plugins/acl/dynamic-role-based/pom.xml
+++ b/plugins/acl/dynamic-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/acl/static-role-based/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/acl/static-role-based/pom.xml b/plugins/acl/static-role-based/pom.xml
index 62ba166..2afcd92 100644
--- a/plugins/acl/static-role-based/pom.xml
+++ b/plugins/acl/static-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/affinity-group-processors/explicit-dedication/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/affinity-group-processors/explicit-dedication/pom.xml b/plugins/affinity-group-processors/explicit-dedication/pom.xml
index d4fc0f1..8bd7285 100644
--- a/plugins/affinity-group-processors/explicit-dedication/pom.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/affinity-group-processors/host-anti-affinity/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/affinity-group-processors/host-anti-affinity/pom.xml b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
index 58e205d..9c7b67f 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/alert-handlers/snmp-alerts/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/alert-handlers/snmp-alerts/pom.xml b/plugins/alert-handlers/snmp-alerts/pom.xml
index 7cbca89..b7192ba 100644
--- a/plugins/alert-handlers/snmp-alerts/pom.xml
+++ b/plugins/alert-handlers/snmp-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/alert-handlers/syslog-alerts/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/alert-handlers/syslog-alerts/pom.xml b/plugins/alert-handlers/syslog-alerts/pom.xml
index e4616ac..9cf3f40 100644
--- a/plugins/alert-handlers/syslog-alerts/pom.xml
+++ b/plugins/alert-handlers/syslog-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/api/discovery/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/discovery/pom.xml b/plugins/api/discovery/pom.xml
index 049061a..65fc362 100644
--- a/plugins/api/discovery/pom.xml
+++ b/plugins/api/discovery/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/api/rate-limit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/rate-limit/pom.xml b/plugins/api/rate-limit/pom.xml
index 3e826c2..e8de9a7 100644
--- a/plugins/api/rate-limit/pom.xml
+++ b/plugins/api/rate-limit/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/api/solidfire-intg-test/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/solidfire-intg-test/pom.xml b/plugins/api/solidfire-intg-test/pom.xml
index fa5302b..6ba95af 100644
--- a/plugins/api/solidfire-intg-test/pom.xml
+++ b/plugins/api/solidfire-intg-test/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/database/mysql-ha/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml
index c275743..5e4ca95 100644
--- a/plugins/database/mysql-ha/pom.xml
+++ b/plugins/database/mysql-ha/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/database/quota/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml
index b429c0d..1bc83a7 100644
--- a/plugins/database/quota/pom.xml
+++ b/plugins/database/quota/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/dedicated-resources/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dedicated-resources/pom.xml b/plugins/dedicated-resources/pom.xml
index 040e936..79af321 100644
--- a/plugins/dedicated-resources/pom.xml
+++ b/plugins/dedicated-resources/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/deployment-planners/implicit-dedication/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/implicit-dedication/pom.xml b/plugins/deployment-planners/implicit-dedication/pom.xml
index f0f817c..069f38c 100644
--- a/plugins/deployment-planners/implicit-dedication/pom.xml
+++ b/plugins/deployment-planners/implicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/deployment-planners/user-concentrated-pod/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/user-concentrated-pod/pom.xml b/plugins/deployment-planners/user-concentrated-pod/pom.xml
index d27188d..6c2055f 100644
--- a/plugins/deployment-planners/user-concentrated-pod/pom.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/deployment-planners/user-dispersing/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/user-dispersing/pom.xml b/plugins/deployment-planners/user-dispersing/pom.xml
index 413993f..698c3a2 100644
--- a/plugins/deployment-planners/user-dispersing/pom.xml
+++ b/plugins/deployment-planners/user-dispersing/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/event-bus/inmemory/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/inmemory/pom.xml b/plugins/event-bus/inmemory/pom.xml
index efbf290..3a1b571 100644
--- a/plugins/event-bus/inmemory/pom.xml
+++ b/plugins/event-bus/inmemory/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/event-bus/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index 2bae703..8fbf2b5 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/event-bus/rabbitmq/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index 7e79709..7acc4e8 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/file-systems/netapp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/file-systems/netapp/pom.xml b/plugins/file-systems/netapp/pom.xml
index 2b2c7bd..0616502 100644
--- a/plugins/file-systems/netapp/pom.xml
+++ b/plugins/file-systems/netapp/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/ha-planners/skip-heurestics/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/ha-planners/skip-heurestics/pom.xml b/plugins/ha-planners/skip-heurestics/pom.xml
index 1511f8d..8c284dd 100644
--- a/plugins/ha-planners/skip-heurestics/pom.xml
+++ b/plugins/ha-planners/skip-heurestics/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/host-allocators/random/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/host-allocators/random/pom.xml b/plugins/host-allocators/random/pom.xml
index 62284c2..fd7a47c 100644
--- a/plugins/host-allocators/random/pom.xml
+++ b/plugins/host-allocators/random/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/baremetal/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/pom.xml b/plugins/hypervisors/baremetal/pom.xml
index 6e569cf..c701969 100755
--- a/plugins/hypervisors/baremetal/pom.xml
+++ b/plugins/hypervisors/baremetal/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-hypervisor-baremetal</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/hyperv/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/hyperv/pom.xml b/plugins/hypervisors/hyperv/pom.xml
index 165eaf6..20c2eb6 100644
--- a/plugins/hypervisors/hyperv/pom.xml
+++ b/plugins/hypervisors/hyperv/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/kvm/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/pom.xml b/plugins/hypervisors/kvm/pom.xml
index f8100a5..85c06c3 100644
--- a/plugins/hypervisors/kvm/pom.xml
+++ b/plugins/hypervisors/kvm/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/ovm/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm/pom.xml b/plugins/hypervisors/ovm/pom.xml
index e754e63..1f4398b 100644
--- a/plugins/hypervisors/ovm/pom.xml
+++ b/plugins/hypervisors/ovm/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 8da1430..e4ab118 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/simulator/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml
index dbebba0..d7ab3bb 100644
--- a/plugins/hypervisors/simulator/pom.xml
+++ b/plugins/hypervisors/simulator/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack-plugins</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>cloud-plugin-hypervisor-simulator</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/ucs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/pom.xml b/plugins/hypervisors/ucs/pom.xml
index c8a14d1..73831d1 100755
--- a/plugins/hypervisors/ucs/pom.xml
+++ b/plugins/hypervisors/ucs/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-hypervisor-ucs</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/vmware/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/pom.xml b/plugins/hypervisors/vmware/pom.xml
index 455fb58..c8c1de2 100644
--- a/plugins/hypervisors/vmware/pom.xml
+++ b/plugins/hypervisors/vmware/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/hypervisors/xenserver/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/pom.xml b/plugins/hypervisors/xenserver/pom.xml
index d03ae54..f5b6d03 100644
--- a/plugins/hypervisors/xenserver/pom.xml
+++ b/plugins/hypervisors/xenserver/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/bigswitch/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch/pom.xml b/plugins/network-elements/bigswitch/pom.xml
index 05603a6..2abe84f 100644
--- a/plugins/network-elements/bigswitch/pom.xml
+++ b/plugins/network-elements/bigswitch/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/brocade-vcs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/brocade-vcs/pom.xml b/plugins/network-elements/brocade-vcs/pom.xml
index c0ed17c..552a144 100644
--- a/plugins/network-elements/brocade-vcs/pom.xml
+++ b/plugins/network-elements/brocade-vcs/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.cloudstack</groupId>
 		<artifactId>cloudstack-plugins</artifactId>
-		<version>4.9.0-SNAPSHOT</version>
+		<version>4.9.0</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/cisco-vnmc/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/pom.xml b/plugins/network-elements/cisco-vnmc/pom.xml
index 2c8bb7f..0250296 100644
--- a/plugins/network-elements/cisco-vnmc/pom.xml
+++ b/plugins/network-elements/cisco-vnmc/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/dns-notifier/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/dns-notifier/pom.xml b/plugins/network-elements/dns-notifier/pom.xml
index 7db075f..0501bdd 100644
--- a/plugins/network-elements/dns-notifier/pom.xml
+++ b/plugins/network-elements/dns-notifier/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-example-dns-notifier</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/elastic-loadbalancer/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/elastic-loadbalancer/pom.xml b/plugins/network-elements/elastic-loadbalancer/pom.xml
index c52cc04..c500df7 100644
--- a/plugins/network-elements/elastic-loadbalancer/pom.xml
+++ b/plugins/network-elements/elastic-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/f5/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/f5/pom.xml b/plugins/network-elements/f5/pom.xml
index 54533e7..f8b0c5b 100644
--- a/plugins/network-elements/f5/pom.xml
+++ b/plugins/network-elements/f5/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/globodns/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index 9d2c354..6905432 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/internal-loadbalancer/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/internal-loadbalancer/pom.xml b/plugins/network-elements/internal-loadbalancer/pom.xml
index 0eb1523..063103a 100644
--- a/plugins/network-elements/internal-loadbalancer/pom.xml
+++ b/plugins/network-elements/internal-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/juniper-contrail/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index 13a3c5b..b8eb919 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/juniper-srx/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-srx/pom.xml b/plugins/network-elements/juniper-srx/pom.xml
index ba3ecd7..ef7e9c8 100644
--- a/plugins/network-elements/juniper-srx/pom.xml
+++ b/plugins/network-elements/juniper-srx/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/midonet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/midonet/pom.xml b/plugins/network-elements/midonet/pom.xml
index 00ca4ae..53e982d 100644
--- a/plugins/network-elements/midonet/pom.xml
+++ b/plugins/network-elements/midonet/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/netscaler/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/pom.xml b/plugins/network-elements/netscaler/pom.xml
index d7b54e9..5ec8e14 100644
--- a/plugins/network-elements/netscaler/pom.xml
+++ b/plugins/network-elements/netscaler/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/nicira-nvp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index 7ed0f23..f6e2fef 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -34,7 +34,7 @@
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-utils</artifactId>
-      <version>4.9.0-SNAPSHOT</version>
+      <version>4.9.0</version>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/nuage-vsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nuage-vsp/pom.xml b/plugins/network-elements/nuage-vsp/pom.xml
index 7369ba5..2894047 100644
--- a/plugins/network-elements/nuage-vsp/pom.xml
+++ b/plugins/network-elements/nuage-vsp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/opendaylight/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/opendaylight/pom.xml b/plugins/network-elements/opendaylight/pom.xml
index a5f2a26..71ec555 100644
--- a/plugins/network-elements/opendaylight/pom.xml
+++ b/plugins/network-elements/opendaylight/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/ovs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/ovs/pom.xml b/plugins/network-elements/ovs/pom.xml
index 4f5adf9..78d36a8 100644
--- a/plugins/network-elements/ovs/pom.xml
+++ b/plugins/network-elements/ovs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/palo-alto/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/palo-alto/pom.xml b/plugins/network-elements/palo-alto/pom.xml
index 555ef7a..d9741d8 100644
--- a/plugins/network-elements/palo-alto/pom.xml
+++ b/plugins/network-elements/palo-alto/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/stratosphere-ssp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/stratosphere-ssp/pom.xml b/plugins/network-elements/stratosphere-ssp/pom.xml
index 89e84db..523b300 100644
--- a/plugins/network-elements/stratosphere-ssp/pom.xml
+++ b/plugins/network-elements/stratosphere-ssp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/network-elements/vxlan/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/vxlan/pom.xml b/plugins/network-elements/vxlan/pom.xml
index 46e5af0..ecb1e52 100644
--- a/plugins/network-elements/vxlan/pom.xml
+++ b/plugins/network-elements/vxlan/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
index be4cd86..d45a4ef 100644
--- a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
+++ b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index d05e630..3e22090 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
 
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage-allocators/random/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 87cd5b5..1831216 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/image/default/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml
index b9c641c..f882759 100644
--- a/plugins/storage/image/default/pom.xml
+++ b/plugins/storage/image/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/image/s3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/s3/pom.xml b/plugins/storage/image/s3/pom.xml
index d7ee437..e9cb342 100644
--- a/plugins/storage/image/s3/pom.xml
+++ b/plugins/storage/image/s3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/image/sample/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml
index c63929e..c4b159c 100644
--- a/plugins/storage/image/sample/pom.xml
+++ b/plugins/storage/image/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/image/swift/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/swift/pom.xml b/plugins/storage/image/swift/pom.xml
index a6c7dd1..a045480 100644
--- a/plugins/storage/image/swift/pom.xml
+++ b/plugins/storage/image/swift/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/volume/cloudbyte/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml
index 5372ab8..cff852b 100755
--- a/plugins/storage/volume/cloudbyte/pom.xml
+++ b/plugins/storage/volume/cloudbyte/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/volume/default/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/default/pom.xml b/plugins/storage/volume/default/pom.xml
index 1cba838..93483c9 100644
--- a/plugins/storage/volume/default/pom.xml
+++ b/plugins/storage/volume/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/volume/nexenta/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/nexenta/pom.xml b/plugins/storage/volume/nexenta/pom.xml
index e4d8ebe..3973c4a 100644
--- a/plugins/storage/volume/nexenta/pom.xml
+++ b/plugins/storage/volume/nexenta/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/volume/sample/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml
index d649df2..1e96944 100644
--- a/plugins/storage/volume/sample/pom.xml
+++ b/plugins/storage/volume/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/storage/volume/solidfire/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/solidfire/pom.xml b/plugins/storage/volume/solidfire/pom.xml
index 21b3636..694b418 100644
--- a/plugins/storage/volume/solidfire/pom.xml
+++ b/plugins/storage/volume/solidfire/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/ldap/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/pom.xml b/plugins/user-authenticators/ldap/pom.xml
index 7b3b8f7..c0cb33e 100644
--- a/plugins/user-authenticators/ldap/pom.xml
+++ b/plugins/user-authenticators/ldap/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/md5/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/md5/pom.xml b/plugins/user-authenticators/md5/pom.xml
index f436f90..41c6b4c 100644
--- a/plugins/user-authenticators/md5/pom.xml
+++ b/plugins/user-authenticators/md5/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/pbkdf2/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/pbkdf2/pom.xml b/plugins/user-authenticators/pbkdf2/pom.xml
index b26636b..5401ce5 100644
--- a/plugins/user-authenticators/pbkdf2/pom.xml
+++ b/plugins/user-authenticators/pbkdf2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/plain-text/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/plain-text/pom.xml b/plugins/user-authenticators/plain-text/pom.xml
index 3598cc1..c38143b 100644
--- a/plugins/user-authenticators/plain-text/pom.xml
+++ b/plugins/user-authenticators/plain-text/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/saml2/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/saml2/pom.xml b/plugins/user-authenticators/saml2/pom.xml
index 5e24df3..a92af02 100644
--- a/plugins/user-authenticators/saml2/pom.xml
+++ b/plugins/user-authenticators/saml2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/plugins/user-authenticators/sha256salted/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/sha256salted/pom.xml b/plugins/user-authenticators/sha256salted/pom.xml
index fe5fa6f..a15bdfe 100644
--- a/plugins/user-authenticators/sha256salted/pom.xml
+++ b/plugins/user-authenticators/sha256salted/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ecce49b..6cec46d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
 
   <groupId>org.apache.cloudstack</groupId>
   <artifactId>cloudstack</artifactId>
-  <version>4.9.0-SNAPSHOT</version>
+  <version>4.9.0</version>
   <packaging>pom</packaging>
   <name>Apache CloudStack</name>
   <description>Apache CloudStack is an IaaS (\u201cInfrastructure as a Service\u201d) cloud orchestration platform.</description>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/quickcloud/pom.xml
----------------------------------------------------------------------
diff --git a/quickcloud/pom.xml b/quickcloud/pom.xml
index 841a9c5..047a515 100644
--- a/quickcloud/pom.xml
+++ b/quickcloud/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../maven-standard/pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 3269509..472b623 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/console-proxy-rdp/rdpconsole/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy-rdp/rdpconsole/pom.xml b/services/console-proxy-rdp/rdpconsole/pom.xml
index 628d039..dfca404 100755
--- a/services/console-proxy-rdp/rdpconsole/pom.xml
+++ b/services/console-proxy-rdp/rdpconsole/pom.xml
@@ -27,7 +27,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/console-proxy/plugin/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/plugin/pom.xml b/services/console-proxy/plugin/pom.xml
index dbaf857..3eb6240 100644
--- a/services/console-proxy/plugin/pom.xml
+++ b/services/console-proxy/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/console-proxy/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/pom.xml b/services/console-proxy/pom.xml
index 9d5feec..f5e69e7 100644
--- a/services/console-proxy/pom.xml
+++ b/services/console-proxy/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/console-proxy/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/server/pom.xml b/services/console-proxy/server/pom.xml
index 541d242..d320800 100644
--- a/services/console-proxy/server/pom.xml
+++ b/services/console-proxy/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/iam/plugin/pom.xml
----------------------------------------------------------------------
diff --git a/services/iam/plugin/pom.xml b/services/iam/plugin/pom.xml
index 974d216..1d8647d 100644
--- a/services/iam/plugin/pom.xml
+++ b/services/iam/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/iam/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/iam/server/pom.xml b/services/iam/server/pom.xml
index b2ad0a4..cc9037c 100644
--- a/services/iam/server/pom.xml
+++ b/services/iam/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/pom.xml
----------------------------------------------------------------------
diff --git a/services/pom.xml b/services/pom.xml
index f315b5e..4bc9695 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/secondary-storage/controller/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/controller/pom.xml b/services/secondary-storage/controller/pom.xml
index bb88780..42c82d3 100644
--- a/services/secondary-storage/controller/pom.xml
+++ b/services/secondary-storage/controller/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/secondary-storage/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index bce61d6..3f9fa21 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modules>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/services/secondary-storage/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/server/pom.xml b/services/secondary-storage/server/pom.xml
index 50155cf..0a07123 100644
--- a/services/secondary-storage/server/pom.xml
+++ b/services/secondary-storage/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/systemvm/pom.xml
----------------------------------------------------------------------
diff --git a/systemvm/pom.xml b/systemvm/pom.xml
index c72b56d..bf5048e 100644
--- a/systemvm/pom.xml
+++ b/systemvm/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/test/pom.xml
----------------------------------------------------------------------
diff --git a/test/pom.xml b/test/pom.xml
index 3f1119f..0d2e1d8 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
     </parent>
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/apidoc/pom.xml
----------------------------------------------------------------------
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index 63af063..26fd80b 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-tools</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/checkstyle/pom.xml
----------------------------------------------------------------------
diff --git a/tools/checkstyle/pom.xml b/tools/checkstyle/pom.xml
index c0c39c9..4b42d0c 100644
--- a/tools/checkstyle/pom.xml
+++ b/tools/checkstyle/pom.xml
@@ -24,7 +24,7 @@
     <name>Apache CloudStack Developer Tools - Checkstyle Configuration</name>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>checkstyle</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
 
     <build>
       <plugins>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/devcloud-kvm/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml
index b0e1234..ace9a12 100644
--- a/tools/devcloud-kvm/pom.xml
+++ b/tools/devcloud-kvm/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/devcloud/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud/pom.xml b/tools/devcloud/pom.xml
index 8644ff4..97d4ecc 100644
--- a/tools/devcloud/pom.xml
+++ b/tools/devcloud/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/devcloud4/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
index e3cee0c..d43b72a 100644
--- a/tools/devcloud4/pom.xml
+++ b/tools/devcloud4/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/marvin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 391987b..de71228 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/marvin/setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index 7f3d9c8..4b811df 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,7 +27,7 @@ except ImportError:
         raise RuntimeError("python setuptools is required to build Marvin")
 
 
-VERSION = "4.9.0-SNAPSHOT"
+VERSION = "4.9.0"
 
 setup(name="Marvin",
       version=VERSION,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/pom.xml
----------------------------------------------------------------------
diff --git a/tools/pom.xml b/tools/pom.xml
index 02ad318..2dd9cb3 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,7 +27,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.9.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/tools/wix-cloudstack-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/wix-cloudstack-maven-plugin/pom.xml b/tools/wix-cloudstack-maven-plugin/pom.xml
index deb4284..9d35189 100644
--- a/tools/wix-cloudstack-maven-plugin/pom.xml
+++ b/tools/wix-cloudstack-maven-plugin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/usage/pom.xml
----------------------------------------------------------------------
diff --git a/usage/pom.xml b/usage/pom.xml
index dd80e82..0b92eb8 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>


[40/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
updated contributin.md 

As this is the doc that is showed while creating a pull request, updated it with information from release principles wiki.

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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 4c387feebbffdb6724fffa28f67c65fdb82bcdc2
Parents: 2875af7
Author: Rajani Karuturi <ka...@users.noreply.github.com>
Authored: Fri Aug 5 15:06:52 2016 +0530
Committer: GitHub <no...@github.com>
Committed: Fri Aug 5 15:06:52 2016 +0530

----------------------------------------------------------------------
 CONTRIBUTING.md | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4c387fee/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c4ad197..6ac3ad5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,10 +3,26 @@ Contributing to Apache CloudStack (ACS)
 
 Summary
 -------
-This document covers how to contribute to the ACS project. These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one. Your proposed code changes will be published to your own fork of the ACS project and you will submit a Pull Request for your changes to be added.
+This document covers how to contribute to the ACS project. ACS uses github PRs to manage code contributions. 
+These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one. Your proposed code changes will be published to your own fork of the ACS project and you will submit a Pull Request for your changes to be added.
 
 _Lets get started!!!_
 
+Bug fixes
+---------
+
+It's very important that we can easily track bug fix commits, so their hashes should remain the same in all branches. 
+Therefore, a pull request (PR) that fixes a bug, should be sent against a release branch. 
+This can be either the "current release" or the "previous release", depending on which ones are maintained. 
+Since the goal is a stable master, bug fixes should be "merged forward" to the next branch in order: "previous release" -> "current release" -> master (in other words: old to new)
+
+Developing new features
+-----------------------
+
+Development should be done in a feature branch, branched off of master. 
+Send a PR(steps below) to get it into master (2x LGTM applies). 
+PR will only be merged when master is open, will be held otherwise until master is open again. 
+No back porting / cherry-picking features to existing branches!
 
 Fork the code 
 -------------
@@ -30,6 +46,7 @@ $ git rebase upstream/master
 Making changes
 --------------
 
+
 It is important that you create a new branch to make changes on and that you do not change the `master` branch (other than to rebase in changes from `upstream/master`).  In this example I will assume you will be making your changes to a branch called `feature_x`.  This `feature_x` branch will be created on your local repository and will be pushed to your forked repository on GitHub.  Once this branch is on your fork you will create a Pull Request for the changes to be added to the ACS project.
 
 It is best practice to create a new branch each time you want to contribute to the project and only track the changes for that pull request in this branch.
@@ -72,6 +89,8 @@ Make a GitHub Pull Request to contribute your changes
 
 When you are happy with your changes and you are ready to contribute them, you will create a Pull Request on GitHub to do so.  This is done by pushing your local changes to your forked repository (default remote name is `origin`) and then initiating a pull request on GitHub.
 
+Please include JIRA id, detailed information about the bug/feature, what all tests are executed, how the reviewer can test this feature etc. Incase of UI PRs, a screenshot is preferred.
+
 > **IMPORTANT:** Make sure you have rebased your `feature_x` branch to include the latest code from `upstream/master` _before_ you do this.
 
 ``` bash
@@ -105,3 +124,7 @@ $ git checkout master
 $ git branch -D feature_x
 $ git push origin :feature_x
 ```
+
+Release Principles
+------------------
+Detailed information about ACS release principles is available at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+principles+for+Apache+CloudStack+4.6+and+up 


[31/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
server: give more memory to tests

Increases allowed max and permgen memory flags to maven-surefire plugins.
This fixes unit test failures in cloud-server.

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: fd7273b446738c0ebfae84189502dbdcd18bfd42
Parents: 546a3f8
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Thu Aug 4 15:31:51 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 4 15:31:51 2016 +0530

----------------------------------------------------------------------
 server/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fd7273b4/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 3edfedd..988a96f 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -180,7 +180,7 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <argLine>-Xmx1024m -Djava.security.egd=file:/dev/./urandom</argLine>
+          <argLine>-Xmx2048m -XX:MaxPermSize=512m -Djava.security.egd=file:/dev/./urandom</argLine>
           <excludes>
             <exclude>%regex[.*[0-9]*To[0-9]*.*Test.*]</exclude>
             <exclude>com/cloud/upgrade/AdvanceZone223To224UpgradeTest</exclude>


[42/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1631 from karuturi/merge-49-to-master-deb-build

Fix debian build error due to commit 3315eb5debian build is broken due to the changelog changes in commit 3315eb5. Fixed the same.
To test, do a debian following the instructions at http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.8/building_from_source.html#building-deb-packages

cc: @pdion891 @rhtyd Please review.

* pr/1631:
  Fix debian build error due to commit 3315eb5420e1b2cedf906aeb709740efc2f08cfd

Signed-off-by: Rajani Karuturi <ra...@accelerite.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 3afedbb24fb1d327ce28256ba37c03b4a9f3400d
Parents: 2875af7 d87828a
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Mon Aug 8 16:47:09 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Mon Aug 8 16:47:09 2016 +0530

----------------------------------------------------------------------
 debian/changelog | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[17/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1583 from milamberspace/L10N-update-Master-20160607

Update L10N resource files with 4.9 strings from Transifex (20160607)cc @swill before the 4.9 release. Just only the latest FR translation.

* pr/1583:
  Update L10N resource files with 4.9 strings from Transifex (20160709)

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 8d45d711bff631efb45954631c123dcb2beffb3c
Parents: 54039f9 fed26bd
Author: Will Stevens <wi...@gmail.com>
Authored: Tue Jul 19 08:17:39 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Tue Jul 19 08:17:40 2016 -0400

----------------------------------------------------------------------
 .../classes/resources/messages_de_DE.properties |  4 ++++
 .../classes/resources/messages_es.properties    |  8 ++++++--
 .../classes/resources/messages_fr_FR.properties | 20 ++++++++++++++++++++
 .../classes/resources/messages_hu.properties    |  4 ++++
 .../classes/resources/messages_it_IT.properties |  1 +
 .../classes/resources/messages_ja_JP.properties |  4 ++++
 .../classes/resources/messages_ko_KR.properties |  2 ++
 .../classes/resources/messages_nb_NO.properties |  4 ++++
 .../classes/resources/messages_nl_NL.properties |  4 ++++
 .../classes/resources/messages_pl.properties    |  2 ++
 .../classes/resources/messages_pt_BR.properties |  4 ++++
 .../classes/resources/messages_ru_RU.properties |  3 +++
 .../classes/resources/messages_zh_CN.properties |  4 ++++
 13 files changed, 62 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[25/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
CLOUDSTACK-9437: Create egress chain on upgrade and cleanup for allow all traffic

- Ensure that FW_EGRESS_RULE chain exists after upgrading the router
- Flush allow all egress rule on 0.0.0.0/0, if such a rule exists in the config
  it will be added later (CLOUDSTACK-9437)


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: d302269fe53ca0d3ef4c7d4c51b28ce94d8a4847
Parents: 818063c
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 25 16:44:38 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 25 16:44:38 2016 -0400

----------------------------------------------------------------------
 systemvm/patches/debian/config/opt/cloud/bin/configure.py | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d302269f/systemvm/patches/debian/config/opt/cloud/bin/configure.py
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/configure.py b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
index 35ac3f2..dd164a2 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
@@ -263,6 +263,12 @@ class CsAcl(CsDataBag):
                 rstr = rstr.replace("  ", " ").lstrip()
                 self.fw.append([self.table, self.count, rstr])
 
+    def flushAllowAllEgressRules(self):
+        logging.debug("Flush allow 'all' egress firewall rule")
+        # Ensure that FW_EGRESS_RULES chain exists
+        CsHelper.execute("iptables-save | grep '^:FW_EGRESS_RULES' || iptables -t filter -N FW_EGRESS_RULES")
+        CsHelper.execute("iptables-save | grep '^-A FW_EGRESS_RULES -j ACCEPT$' | sed 's/^-A/iptables -t filter -D/g' | bash")
+
     def process(self):
         for item in self.dbag:
             if item == "id":
@@ -978,6 +984,7 @@ def main(argv):
             acls.process()
 
             acls = CsAcl('firewallrules', config)
+            acls.flushAllowAllEgressRules()
             acls.process()
 
             fwd = CsForwardingRules("forwardingrules", config)


[02/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1598 from syed/vhd-compressed-size

[CLOUDSTACK-9423] Add ability to get virtual size of compressed VHDsWith object store like Swift as secondary storage, if a compressed VHD is uploaded as a template, the `VHDProcessor` incorrectly calculates the virutal size leading to the template being useless. This fix tries to guess the virtual size by partially decompressing it and falls back to a sensible default which is the size of the file.

Before the fix: template.properties on Swift
```
uniquename=routing-1
filename=routing-1.vhd
size=263417314
virtualsize=2894447637315205059
```
After the fix

```
uniquename=routing-1
filename=routing-1.vhd
size=263417314
virtualsize=3145728000
```

Look at the `virutalsize` in both cases

* pr/1598:
  [CLOUDSTACK-9423] Add ability to get virtual size of compressed VHDs

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 1f9bf93948b37f3132f55ea6ce7041cae57696da
Parents: e4ba640 b0247b5
Author: Will Stevens <wi...@gmail.com>
Authored: Sun Jul 3 23:34:55 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Sun Jul 3 23:34:56 2016 -0400

----------------------------------------------------------------------
 core/pom.xml                                    |   5 ++
 .../cloud/storage/template/VhdProcessor.java    |  85 ++++++++++++++++---
 .../storage/template/VhdProcessorTest.java      |  36 +++++++-
 core/test/resources/vhds/test.vhd               | Bin 0 -> 3584 bytes
 core/test/resources/vhds/test.vhd.bz2           | Bin 0 -> 212 bytes
 core/test/resources/vhds/test.vhd.gz            | Bin 0 -> 163 bytes
 core/test/resources/vhds/test.vhd.zip           | Bin 0 -> 341 bytes
 7 files changed, 113 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[32/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
server: give more memory to tests

Increases allowed max and permgen memory flags to maven-surefire plugins.
This fixes unit test failures in cloud-server.

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: e5750b3331d2d970aad569b8cbcbcaee3e9951ea
Parents: de041df
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Thu Aug 4 15:31:51 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 4 15:52:29 2016 +0530

----------------------------------------------------------------------
 server/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e5750b33/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index d8833f2..dbd3e62 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -174,7 +174,7 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <argLine>-Xmx1024m -Djava.security.egd=file:/dev/./urandom</argLine>
+          <argLine>-Xmx2048m -XX:MaxPermSize=512m -Djava.security.egd=file:/dev/./urandom</argLine>
           <excludes>
             <exclude>%regex[.*[0-9]*To[0-9]*.*Test.*]</exclude>
             <exclude>com/cloud/upgrade/AdvanceZone223To224UpgradeTest</exclude>


[08/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1480 from Slair1/S2S-VPN-PFS-Setting

CLOUDSTACK-9342: Site to Site VPN PFS not being set correctlyBug in code set PFS to the same value (yes/no) as DPD.

file.addeq(" pfs=%s" % CsHelper.bool_to_yn(obj['dpd']))

* pr/1480:
  CLOUDSTACK-9342: Site to Site VPN PFS not being set correctly

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: adaf410109a67c861bb32753c9b13ddd09403672
Parents: 8eedead 7b9b328
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:05:17 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:05:18 2016 -0400

----------------------------------------------------------------------
 systemvm/patches/debian/config/opt/cloud/bin/configure.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/adaf4101/systemvm/patches/debian/config/opt/cloud/bin/configure.py
----------------------------------------------------------------------
diff --cc systemvm/patches/debian/config/opt/cloud/bin/configure.py
index b5f65e7,e2b635c..40242ee
--- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
@@@ -508,11 -528,12 +508,14 @@@ class CsSite2SiteVpn(CsDataBag)
          file.addeq(" ikelifetime=%s" % self.convert_sec_to_h(obj['ike_lifetime']))
          file.addeq(" esp=%s" % obj['esp_policy'])
          file.addeq(" salifetime=%s" % self.convert_sec_to_h(obj['esp_lifetime']))
-         file.addeq(" pfs=%s" % CsHelper.bool_to_yn(obj['dpd']))
+         if "modp" in obj['esp_policy']:
+             file.addeq(" pfs=yes")
+         else:
+             file.addeq(" pfs=no")
          file.addeq(" keyingtries=2")
          file.addeq(" auto=start")
 +        if 'encap' not in obj:
 +            obj['encap']=False
          file.addeq(" forceencaps=%s" % CsHelper.bool_to_yn(obj['encap']))
          if obj['dpd']:
              file.addeq("  dpddelay=30")


[36/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.7 to 4.8

* 4.7:
  server: give more memory to tests
  packaging: Marvin and integration-tests packages


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: a54a3b5cd5fece41ffaad720ed54317c41a0dec5
Parents: 01758ee 9127af6
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Fri Aug 5 14:29:16 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Fri Aug 5 14:29:16 2016 +0530

----------------------------------------------------------------------
 client/pom.xml                              |  1 +
 debian/cloudstack-integration-tests.install | 18 ++++++++
 debian/cloudstack-marvin.install            | 18 ++++++++
 debian/cloudstack-marvin.postinst           | 23 +++++++++++
 debian/control                              | 10 +++++
 debian/rules                                | 10 ++++-
 packaging/centos63/cloud.spec               | 52 ++++++++++++++++++++++--
 packaging/centos7/cloud.spec                | 46 ++++++++++++++++++++-
 pom.xml                                     |  7 ++++
 server/pom.xml                              |  2 +-
 tools/marvin/pom.xml                        |  4 +-
 11 files changed, 182 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a54a3b5c/client/pom.xml
----------------------------------------------------------------------
diff --cc client/pom.xml
index d329c7f,6d8b6ff..eea635b
--- a/client/pom.xml
+++ b/client/pom.xml
@@@ -17,8 -17,9 +17,9 @@@
    <parent>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloudstack</artifactId>
 -    <version>4.7.2-SNAPSHOT</version>
 +    <version>4.8.1-SNAPSHOT</version>
    </parent>
+ 
    <dependencies>
      <dependency>
        <groupId>org.apache.cloudstack</groupId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a54a3b5c/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a54a3b5c/server/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a54a3b5c/tools/marvin/pom.xml
----------------------------------------------------------------------


[39/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.9 to master

* 4.9:
  server: give more memory to tests
  packaging: Marvin and integration-tests packages


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 2875af71126cbfb6ebd0d47c2d593ff6d9c61c20
Parents: 3315eb5 c03d035
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Fri Aug 5 14:41:31 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Fri Aug 5 14:41:31 2016 +0530

----------------------------------------------------------------------
 client/pom.xml                              |  1 +
 debian/cloudstack-integration-tests.install | 18 ++++++++
 debian/cloudstack-marvin.install            | 18 ++++++++
 debian/cloudstack-marvin.postinst           | 23 +++++++++++
 debian/control                              | 10 +++++
 debian/rules                                | 10 ++++-
 packaging/centos63/cloud.spec               | 52 ++++++++++++++++++++++--
 packaging/centos7/cloud.spec                | 46 ++++++++++++++++++++-
 pom.xml                                     |  7 ++++
 tools/marvin/pom.xml                        |  4 +-
 10 files changed, 181 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2875af71/client/pom.xml
----------------------------------------------------------------------
diff --cc client/pom.xml
index d686892,43bfd50..621c81b
--- a/client/pom.xml
+++ b/client/pom.xml
@@@ -17,8 -17,9 +17,9 @@@
    <parent>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloudstack</artifactId>
 -    <version>4.9.0</version>
 +    <version>4.10.0-SNAPSHOT</version>
    </parent>
+ 
    <dependencies>
      <dependency>
        <groupId>org.apache.cloudstack</groupId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2875af71/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2875af71/tools/marvin/pom.xml
----------------------------------------------------------------------


[43/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1626 from shapeblue/systemvmtemplate-4dot9

[blocker] Fix systemvm template buildPrevious PR: https://github.com/apache/cloudstack/pull/1531

Fixes failing systemvmtemplate build.

* pr/1626:
  CLOUDSTACK-9447: fix build and upgrade to debian 7.11 iso

Signed-off-by: Rajani Karuturi <ra...@accelerite.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: bdc409c7a2cc0e8119fd37261458c62ba3fe4539
Parents: c03d035 2cddaf3
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Tue Aug 9 15:49:04 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Tue Aug 9 15:49:04 2016 +0530

----------------------------------------------------------------------
 tools/appliance/.ruby-version                   |  2 +-
 tools/appliance/.rvmrc                          |  2 +-
 tools/appliance/Gemfile                         |  4 ++-
 tools/appliance/README.md                       | 27 +++++++++-----------
 tools/appliance/build.sh                        |  9 ++++---
 .../configure_systemvm_services.sh              |  1 -
 .../definitions/systemvmtemplate/definition.rb  | 12 ++++-----
 .../install_systemvm_packages.sh                |  2 +-
 8 files changed, 30 insertions(+), 29 deletions(-)
----------------------------------------------------------------------



[21/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
CLOUDSTACK-9436: Release network resources on expunge command


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 148e9744828cd7dd3efe9487fc5be303b21b58d3
Parents: 46a6530
Author: nvazquez <ni...@gmail.com>
Authored: Mon Jun 6 11:47:45 2016 -0300
Committer: nvazquez <ni...@gmail.com>
Committed: Thu Jul 21 12:25:22 2016 -0300

----------------------------------------------------------------------
 server/src/com/cloud/vm/UserVmManagerImpl.java | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/148e9744/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 9eddf6d..dd7e817 100644
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -2046,6 +2046,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
             return false;
         }
         try {
+
+            releaseNetworkResourcesOnExpunge(vm.getId());
+
             List<VolumeVO> rootVol = _volsDao.findByInstanceAndType(vm.getId(), Volume.Type.ROOT);
             // expunge the vm
             _itMgr.advanceExpunge(vm.getUuid());
@@ -2086,6 +2089,23 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
         }
     }
 
+    /**
+     * Release network resources, it was done on vm stop previously.
+     * @param id vm id
+     * @throws ConcurrentOperationException
+     * @throws ResourceUnavailableException
+     */
+    private void releaseNetworkResourcesOnExpunge(long id) throws ConcurrentOperationException, ResourceUnavailableException {
+        final VMInstanceVO vmInstance = _vmDao.findById(id);
+        if (vmInstance != null){
+            final VirtualMachineProfile profile = new VirtualMachineProfileImpl(vmInstance);
+            _networkMgr.release(profile, false);
+        }
+        else {
+            s_logger.error("Couldn't find vm with id = " + id + ", unable to release network resources");
+        }
+    }
+
     private boolean cleanupVmResources(long vmId) {
         boolean success = true;
         // Remove vm from security groups


[04/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Update L10N resource files with 4.9 strings from Transifex (20160709)


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: fed26bd5c03d2be9927043068a4b8b4ae2a7a008
Parents: 1f9bf93
Author: Milamber <mi...@apache.org>
Authored: Tue Jun 7 22:54:54 2016 +0000
Committer: Milamber <mi...@apache.org>
Committed: Sat Jul 9 10:46:42 2016 +0000

----------------------------------------------------------------------
 .../classes/resources/messages_de_DE.properties |  4 ++++
 .../classes/resources/messages_es.properties    |  8 ++++++--
 .../classes/resources/messages_fr_FR.properties | 20 ++++++++++++++++++++
 .../classes/resources/messages_hu.properties    |  4 ++++
 .../classes/resources/messages_it_IT.properties |  1 +
 .../classes/resources/messages_ja_JP.properties |  4 ++++
 .../classes/resources/messages_ko_KR.properties |  2 ++
 .../classes/resources/messages_nb_NO.properties |  4 ++++
 .../classes/resources/messages_nl_NL.properties |  4 ++++
 .../classes/resources/messages_pl.properties    |  2 ++
 .../classes/resources/messages_pt_BR.properties |  4 ++++
 .../classes/resources/messages_ru_RU.properties |  3 +++
 .../classes/resources/messages_zh_CN.properties |  4 ++++
 13 files changed, 62 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_de_DE.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_de_DE.properties b/client/WEB-INF/classes/resources/messages_de_DE.properties
index 3fb4126..30d1811 100644
--- a/client/WEB-INF/classes/resources/messages_de_DE.properties
+++ b/client/WEB-INF/classes/resources/messages_de_DE.properties
@@ -1160,6 +1160,10 @@ label.order=Reihenfolge
 label.os.preference=OS Pr\u00e4ferenz
 label.os.type=OS Typ
 label.other=Andere
+label.outofbandmanagement.action=Aktion
+label.outofbandmanagement.password=Passwort
+label.outofbandmanagement.port=Port
+label.outofbandmanagement.username=Benutzername
 label.override.guest.traffic=Gast-Datenverkehr \u00fcberschreiben
 label.override.public.traffic=\u00d6ffentlichen Datenverkehr \u00fcberschreiben
 label.ovm3.cluster=Natives Clustering

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_es.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_es.properties b/client/WEB-INF/classes/resources/messages_es.properties
index 4c76d2a..8150845 100644
--- a/client/WEB-INF/classes/resources/messages_es.properties
+++ b/client/WEB-INF/classes/resources/messages_es.properties
@@ -1141,7 +1141,7 @@ label.number.of.clusters=N\u00famero de Clusters
 label.number.of.cpu.sockets=Cantidad de Sockets de CPU
 label.number.of.hosts=N\u00famero de Hosts
 label.number.of.pods=N\u00famero de Pods
-label.number.of.system.vms=N\u00famero de VM\\\\'s del Systema
+label.number.of.system.vms=N\u00famero de VM\\'s del Systema
 label.number.of.virtual.routers=N\u00famero de Routers Virtuales
 label.number.of.zones=N\u00famero de Zonas
 label.num.cpu.cores=n\u00famero de n\u00facleos de CPU
@@ -1160,6 +1160,10 @@ label.order=Ordenar
 label.os.preference=OS Preferencia
 label.os.type=tipo de Sistema Operativo
 label.other=Otro
+label.outofbandmanagement.action=Acci\u00f3n
+label.outofbandmanagement.password=Contrase\u00f1a
+label.outofbandmanagement.port=Puerto
+label.outofbandmanagement.username=Nombre de usuario
 label.override.guest.traffic=Sobreescribir Tr\u00e1fico Guest
 label.override.public.traffic=Sobreescribir Tr\u00e1fico Public
 label.ovm3.cluster=Cluster Nativo
@@ -1695,7 +1699,7 @@ label.vmsnapshot.memory=Instant\u00e1nea de la memoria
 label.vmsnapshot.parentname=Padre
 label.vmsnapshot.type=Tipo
 label.vm.start=Inicio
-label.vm.state=Estado de VM\\\\'s
+label.vm.state=Estado de VM\\'s
 label.vm.stop=Detener
 label.vms=VM
 label.vmware.datacenter.id=VMware datacenter ID

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/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 64c65fd..4dc9082 100644
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ b/client/WEB-INF/classes/resources/messages_fr_FR.properties
@@ -1042,6 +1042,7 @@ label.metrics.network.read=Lecture
 label.metrics.network.usage=Util. R\u00e9seau
 label.metrics.network.write=\u00c9criture
 label.metrics.num.cpu.cores=Cores
+label.metrics.outofbandmanagementpowerstate=Status Alimentation
 label.metrics.property=Propri\u00e9t\u00e9
 label.metrics.scope=Port\u00e9e
 label.metrics.state=\u00c9tat
@@ -1163,6 +1164,18 @@ label.order=Ordre
 label.os.preference=Pr\u00e9f\u00e9rence OS
 label.os.type=Type du OS
 label.other=Autre
+label.outofbandmanagement.action=Action
+label.outofbandmanagement.action.issue=Probl\u00e8me dans l\\'allumage via la gestion du flux administration 
+label.outofbandmanagement.address=Adresse
+label.outofbandmanagement.changepassword=Modifier le mot de passe du flux d\\'administration
+label.outofbandmanagement.configure=Configurer la gestion du flux d\\'administration
+label.outofbandmanagement.disable=D\u00e9sactiver la gestion du flux d\\'administration
+label.outofbandmanagement.driver=Pilote
+label.outofbandmanagement.enable=Activer la gestion du flux d\\'administration
+label.outofbandmanagement=Gestion flux administration
+label.outofbandmanagement.password=Mot de passe
+label.outofbandmanagement.port=Port
+label.outofbandmanagement.username=Identifiant
 label.override.guest.traffic=Remplacer Trafic-invit\u00e9
 label.override.public.traffic=Remplacer Trafic-public
 label.ovm3.cluster=Cluster natif
@@ -1215,6 +1228,7 @@ label.port.forwarding.policies=R\u00e8gles de transfert de port
 label.port.forwarding=Redirection de port
 label.port=Port
 label.port.range=Plage de ports
+label.powerstate=Status Alimentation
 label.PreSetup=PreSetup
 label.previous=Retour
 label.prev=Pr\u00e9c\u00e9dent
@@ -2113,6 +2127,12 @@ message.number.hosts=<h2><span> \# d\\' </span> H\u00f4tes</h2>
 message.number.pods=<h2><span> \# de </span> Pods</h2>
 message.number.storage=<h2><span> \# de </span> Volumes de Stockage Primaire</h2>
 message.number.zones=<h2><span> \# de </span> Zones</h2>
+message.outofbandmanagement.action.maintenance=L\\'h\u00f4te en avertissement est en mode maintenance
+message.outofbandmanagement.changepassword=Modifier le mot de passe du flux d\\'administration
+message.outofbandmanagement.configure=Configurer la gestion du flux d\\'administration
+message.outofbandmanagement.disable=D\u00e9sactiver la gestion du flux d\\'administration
+message.outofbandmanagement.enable=Activer la gestion du flux d\\'administration
+message.outofbandmanagement.issue=Probl\u00e8me dans l\\'allumage via la gestion du flux administration.
 message.password.has.been.reset.to=Le mot de passe a \u00e9t\u00e9 r\u00e9-initialiser en
 message.password.of.the.vm.has.been.reset.to=Le mot de passe de la VM a \u00e9t\u00e9 r\u00e9-initialis\u00e9 en
 message.pending.projects.1=Vous avez des invitations projet en attente \:

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_hu.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_hu.properties b/client/WEB-INF/classes/resources/messages_hu.properties
index 6dd3675..3386f03 100644
--- a/client/WEB-INF/classes/resources/messages_hu.properties
+++ b/client/WEB-INF/classes/resources/messages_hu.properties
@@ -1144,6 +1144,10 @@ label.order=Sorrend
 label.os.preference=OS preferencia
 label.os.type=OS t\u00edpus
 label.other=M\u00e1s
+label.outofbandmanagement.action=M\u0171velet
+label.outofbandmanagement.password=Jelsz\u00f3
+label.outofbandmanagement.port=Port
+label.outofbandmanagement.username=Felhaszn\u00e1l\u00f3n\u00e9v
 label.override.guest.traffic=Vend\u00e9g forgalom fel\u00fclb\u00edr\u00e1l\u00e1sa
 label.override.public.traffic=Publikus forgalom fel\u00fclb\u00edr\u00e1l\u00e1sa
 label.ovm3.cluster=Nat\u00edv f\u00fcrt\u00f6z\u00e9s

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_it_IT.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_it_IT.properties b/client/WEB-INF/classes/resources/messages_it_IT.properties
index 9eddbc1..6fd390f 100644
--- a/client/WEB-INF/classes/resources/messages_it_IT.properties
+++ b/client/WEB-INF/classes/resources/messages_it_IT.properties
@@ -643,6 +643,7 @@ label.number.of.virtual.routers=Numero dei Router Virtuali
 label.number.of.zones=Numero di Zone
 label.ok=OK
 label.order=Ordine
+label.outofbandmanagement.port=Porta
 label.perfect.forward.secrecy=Segretezza di Forward perfetta
 label.physical.network.ID=ID della rete fisica
 label.please.specify.netscaler.info=Si prega di specificare le informazioni per Netscaler

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_ja_JP.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ja_JP.properties b/client/WEB-INF/classes/resources/messages_ja_JP.properties
index 83adc2c..2ed3ce6 100644
--- a/client/WEB-INF/classes/resources/messages_ja_JP.properties
+++ b/client/WEB-INF/classes/resources/messages_ja_JP.properties
@@ -1138,6 +1138,10 @@ label.order=\u9806\u5e8f
 label.os.preference=OS \u57fa\u672c\u8a2d\u5b9a
 label.os.type=OS \u306e\u7a2e\u985e
 label.other=\u305d\u306e\u307b\u304b
+label.outofbandmanagement.action=\u64cd\u4f5c
+label.outofbandmanagement.password=\u30d1\u30b9\u30ef\u30fc\u30c9
+label.outofbandmanagement.port=\u30dd\u30fc\u30c8
+label.outofbandmanagement.username=\u30e6\u30fc\u30b6\u30fc\u540d
 label.override.guest.traffic=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b
 label.override.public.traffic=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b
 label.ovm3.cluster=\u30cd\u30a4\u30c6\u30a3\u30d6\u30af\u30e9\u30b9\u30bf\u30fc

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_ko_KR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ko_KR.properties b/client/WEB-INF/classes/resources/messages_ko_KR.properties
index 106cf36..f7bebd6 100644
--- a/client/WEB-INF/classes/resources/messages_ko_KR.properties
+++ b/client/WEB-INF/classes/resources/messages_ko_KR.properties
@@ -803,6 +803,8 @@ label.optional=\uc635\uc158
 label.order=\uc21c\uc11c
 label.os.preference=OS \uae30\ubcf8 \uc124\uc815
 label.os.type=OS \uc885\ub958
+label.outofbandmanagement.password=\uc554\ud638
+label.outofbandmanagement.username=\uc0ac\uc6a9\uc790\uba85
 label.owned.public.ips=\uc18c\uc720 \uacf5\uac1c IP \uc8fc\uc18c
 label.owner.account=\uc18c\uc720\uc790 \uacc4\uc815 \uc815\ubcf4
 label.owner.domain=\uc18c\uc720\uc790 \ub3c4\uba54\uc778

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_nb_NO.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_nb_NO.properties b/client/WEB-INF/classes/resources/messages_nb_NO.properties
index 98283ab..d3117c0 100644
--- a/client/WEB-INF/classes/resources/messages_nb_NO.properties
+++ b/client/WEB-INF/classes/resources/messages_nb_NO.properties
@@ -1160,6 +1160,10 @@ label.order=Rekkef\u00f8lge
 label.os.preference=OS-preferanse
 label.os.type=OS-type
 label.other=Andre
+label.outofbandmanagement.action=Handling
+label.outofbandmanagement.password=Passord
+label.outofbandmanagement.port=Port
+label.outofbandmanagement.username=Brukernavn
 label.override.guest.traffic=Overstyr Gjeste Trafikk
 label.override.public.traffic=Overstyr Offentlig Trafikk
 label.ovm3.cluster=Innebygd Klynge Funksjon

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_nl_NL.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_nl_NL.properties b/client/WEB-INF/classes/resources/messages_nl_NL.properties
index c4dc841..a1e1347 100644
--- a/client/WEB-INF/classes/resources/messages_nl_NL.properties
+++ b/client/WEB-INF/classes/resources/messages_nl_NL.properties
@@ -1160,6 +1160,10 @@ label.order=Volgorde
 label.os.preference=OS Voorkeur
 label.os.type=OS Type
 label.other=anders
+label.outofbandmanagement.action=Actie
+label.outofbandmanagement.password=Wachtwoord
+label.outofbandmanagement.port=Poort
+label.outofbandmanagement.username=Gebruikersnaam
 label.override.guest.traffic=Overschrijf Gast Verkeer
 label.override.public.traffic=Overschrijf Publiek Verkeer
 label.ovm3.cluster=inheems clustering

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_pl.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pl.properties b/client/WEB-INF/classes/resources/messages_pl.properties
index 687de4f..be5ca74 100644
--- a/client/WEB-INF/classes/resources/messages_pl.properties
+++ b/client/WEB-INF/classes/resources/messages_pl.properties
@@ -348,6 +348,8 @@ label.notifications=Przypomnienia
 label.number.of.hosts=Liczba host\u00f3w
 label.ok=OK
 label.order=Zadanie
+label.outofbandmanagement.password=Has\u0142o
+label.outofbandmanagement.username=Nazwa u\u017cytkownika
 label.password=Has\u0142o
 label.path=\u015acie\u017cka
 label.please.wait=Prosz\u0119 czeka\u0107

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pt_BR.properties b/client/WEB-INF/classes/resources/messages_pt_BR.properties
index 8b99b35..2ad2760 100644
--- a/client/WEB-INF/classes/resources/messages_pt_BR.properties
+++ b/client/WEB-INF/classes/resources/messages_pt_BR.properties
@@ -1160,6 +1160,10 @@ label.order=Ordenar
 label.os.preference=Prefer\u00eancia de SO
 label.os.type=Tipo de SO
 label.other=Outro
+label.outofbandmanagement.action=A\u00e7\u00e3o
+label.outofbandmanagement.password=Senha
+label.outofbandmanagement.port=Porta
+label.outofbandmanagement.username=Nome de usu\u00e1rio
 label.override.guest.traffic=Anula Tr\u00e1fego Convidado
 label.override.public.traffic=Sobrep\u00f5e Tr\u00e1fego P\u00fablico
 label.ovm3.cluster=Native Clustering

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_ru_RU.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ru_RU.properties b/client/WEB-INF/classes/resources/messages_ru_RU.properties
index 9e123c6..2225fad 100644
--- a/client/WEB-INF/classes/resources/messages_ru_RU.properties
+++ b/client/WEB-INF/classes/resources/messages_ru_RU.properties
@@ -898,6 +898,9 @@ label.optional=\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044
 label.order=\u041e\u0447\u0435\u0440\u0435\u0434\u044c
 label.os.preference=\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u041e\u0421
 label.os.type=\u0422\u0438\u043f \u041e\u0421
+label.outofbandmanagement.action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
+label.outofbandmanagement.password=\u041f\u0430\u0440\u043e\u043b\u044c
+label.outofbandmanagement.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
 label.owned.public.ips=\u041f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0435 IP \u0430\u0434\u0440\u0435\u0441\u0430
 label.owner.account=\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430
 label.owner.domain=\u0414\u043e\u043c\u0435\u043d \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed26bd5/client/WEB-INF/classes/resources/messages_zh_CN.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties
index 001ccf0..11530f9 100644
--- a/client/WEB-INF/classes/resources/messages_zh_CN.properties
+++ b/client/WEB-INF/classes/resources/messages_zh_CN.properties
@@ -1136,6 +1136,10 @@ label.order=\u6392\u5e8f
 label.os.preference=\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879
 label.os.type=\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b
 label.other=\u5176\u4ed6
+label.outofbandmanagement.action=\u64cd\u4f5c
+label.outofbandmanagement.password=\u5bc6\u7801
+label.outofbandmanagement.port=\u7aef\u53e3
+label.outofbandmanagement.username=\u7528\u6237\u540d
 label.override.guest.traffic=\u66ff\u4ee3\u6765\u5bbe\u6d41\u91cf
 label.override.public.traffic=\u66ff\u4ee3\u516c\u5171\u6d41\u91cf
 label.ovm3.cluster=\u672c\u5730\u96c6\u7fa4


[50/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
add prolonged jetty annotation scanning


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 8a031271c943ad9408bfb5c2afd9399a6a6b7c67
Parents: 4dbcf3a
Author: Daan Hoogland <da...@onecht.net>
Authored: Tue May 24 14:33:29 2016 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 18 15:30:38 2016 +0530

----------------------------------------------------------------------
 tools/travis/before_script.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a031271/tools/travis/before_script.sh
----------------------------------------------------------------------
diff --git a/tools/travis/before_script.sh b/tools/travis/before_script.sh
index beb8acc..a9c9678 100755
--- a/tools/travis/before_script.sh
+++ b/tools/travis/before_script.sh
@@ -37,7 +37,7 @@ fi
 
 export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=500m -Djava.security.egd=file:/dev/./urandom"
 echo -e "\nStarting simulator"
-mvn -Dsimulator -pl :cloud-client-ui jetty:run 2>&1 > /tmp/jetty-log &
+mvn -Dsimulator i-Dorg.eclipse.jetty.annotations.maxWait=120 -pl :cloud-client-ui jetty:run 2>&1 > /tmp/jetty-log &
 
 while ! nc -vzw 5 localhost 8096 2>&1 > /dev/null; do grep Exception /tmp/jetty-log; sleep 10; done
 echo -e "\nStarting DataCenter deployment"


[47/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4dbcf3aa/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
index 8e35441..23857de 100644
--- a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
+++ b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
@@ -116,37 +116,37 @@ public class CertServiceImpl implements CertService {
     @DB
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_LB_CERT_UPLOAD, eventDescription = "Uploading a certificate to cloudstack", async = false)
-    public SslCertResponse uploadSslCert(UploadSslCertCmd certCmd) {
+    public SslCertResponse uploadSslCert(final UploadSslCertCmd certCmd) {
         try {
-            String cert = certCmd.getCert();
-            String key = certCmd.getKey();
-            String password = certCmd.getPassword();
-            String chain = certCmd.getChain();
+            final String cert = certCmd.getCert();
+            final String key = certCmd.getKey();
+            final String password = certCmd.getPassword();
+            final String chain = certCmd.getChain();
 
             validate(cert, key, password, chain);
             s_logger.debug("Certificate Validation succeeded");
 
-            String fingerPrint = generateFingerPrint(parseCertificate(cert));
+            final String fingerPrint = generateFingerPrint(parseCertificate(cert));
 
-            CallContext ctx = CallContext.current();
-            Account caller = ctx.getCallingAccount();
+            final CallContext ctx = CallContext.current();
+            final Account caller = ctx.getCallingAccount();
 
             Account owner = null;
-            if ((certCmd.getAccountName() != null && certCmd.getDomainId() != null) || certCmd.getProjectId() != null) {
+            if (certCmd.getAccountName() != null && certCmd.getDomainId() != null || certCmd.getProjectId() != null) {
                 owner = _accountMgr.finalizeOwner(caller, certCmd.getAccountName(), certCmd.getDomainId(), certCmd.getProjectId());
             } else {
                 owner = caller;
             }
 
-            Long accountId = owner.getId();
-            Long domainId = owner.getDomainId();
+            final Long accountId = owner.getId();
+            final Long domainId = owner.getDomainId();
 
-            SslCertVO certVO = new SslCertVO(cert, key, password, chain, accountId, domainId, fingerPrint);
+            final SslCertVO certVO = new SslCertVO(cert, key, password, chain, accountId, domainId, fingerPrint);
             _sslCertDao.persist(certVO);
 
             return createCertResponse(certVO, null);
 
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new CloudRuntimeException("Error parsing certificate data " + e.getMessage());
         }
 
@@ -155,26 +155,26 @@ public class CertServiceImpl implements CertService {
     @DB
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_LB_CERT_DELETE, eventDescription = "Deleting a certificate to cloudstack", async = false)
-    public void deleteSslCert(DeleteSslCertCmd deleteSslCertCmd) {
+    public void deleteSslCert(final DeleteSslCertCmd deleteSslCertCmd) {
 
-        CallContext ctx = CallContext.current();
-        Account caller = ctx.getCallingAccount();
+        final CallContext ctx = CallContext.current();
+        final Account caller = ctx.getCallingAccount();
 
-        Long certId = deleteSslCertCmd.getId();
-        SslCertVO certVO = _sslCertDao.findById(certId);
+        final Long certId = deleteSslCertCmd.getId();
+        final SslCertVO certVO = _sslCertDao.findById(certId);
 
         if (certVO == null) {
             throw new InvalidParameterValueException("Invalid certificate id: " + certId);
         }
         _accountMgr.checkAccess(caller, SecurityChecker.AccessType.OperateEntry, true, certVO);
 
-        List<LoadBalancerCertMapVO> lbCertRule = _lbCertDao.listByCertId(certId);
+        final List<LoadBalancerCertMapVO> lbCertRule = _lbCertDao.listByCertId(certId);
 
-        if ((lbCertRule != null) && (!lbCertRule.isEmpty())) {
+        if (lbCertRule != null && !lbCertRule.isEmpty()) {
             String lbUuids = "";
 
-            for (LoadBalancerCertMapVO rule : lbCertRule) {
-                LoadBalancerVO lb = _entityMgr.findById(LoadBalancerVO.class, rule.getLbId());
+            for (final LoadBalancerCertMapVO rule : lbCertRule) {
+                final LoadBalancerVO lb = _entityMgr.findById(LoadBalancerVO.class, rule.getLbId());
                 lbUuids += " " + lb.getUuid();
             }
 
@@ -185,16 +185,16 @@ public class CertServiceImpl implements CertService {
     }
 
     @Override
-    public List<SslCertResponse> listSslCerts(ListSslCertsCmd listSslCertCmd) {
-        CallContext ctx = CallContext.current();
-        Account caller = ctx.getCallingAccount();
+    public List<SslCertResponse> listSslCerts(final ListSslCertsCmd listSslCertCmd) {
+        final CallContext ctx = CallContext.current();
+        final Account caller = ctx.getCallingAccount();
 
-        Long certId = listSslCertCmd.getCertId();
-        Long accountId = listSslCertCmd.getAccountId();
-        Long lbRuleId = listSslCertCmd.getLbId();
-        Long projectId = listSslCertCmd.getProjectId();
+        final Long certId = listSslCertCmd.getCertId();
+        final Long accountId = listSslCertCmd.getAccountId();
+        final Long lbRuleId = listSslCertCmd.getLbId();
+        final Long projectId = listSslCertCmd.getProjectId();
 
-        List<SslCertResponse> certResponseList = new ArrayList<SslCertResponse>();
+        final List<SslCertResponse> certResponseList = new ArrayList<SslCertResponse>();
 
         if (certId == null && accountId == null && lbRuleId == null && projectId == null) {
             throw new InvalidParameterValueException("Invalid parameters either certificate ID or Account ID or Loadbalancer ID or Project ID required");
@@ -219,7 +219,7 @@ public class CertServiceImpl implements CertService {
         }
 
         if (lbRuleId != null) {
-            LoadBalancer lb = _entityMgr.findById(LoadBalancerVO.class, lbRuleId);
+            final LoadBalancer lb = _entityMgr.findById(LoadBalancerVO.class, lbRuleId);
 
             if (lb == null) {
                 throw new InvalidParameterValueException("Found no loadbalancer with id: " + lbRuleId);
@@ -245,18 +245,19 @@ public class CertServiceImpl implements CertService {
         }
 
         if (projectId != null) {
-            Project project = _projectMgr.getProject(projectId);
+            final Project project = _projectMgr.getProject(projectId);
 
             if (project == null) {
                 throw new InvalidParameterValueException("Found no project with id: " + projectId);
             }
 
-            List<SslCertVO> projectCertVOList = _sslCertDao.listByAccountId(project.getProjectAccountId());
-            if (projectCertVOList == null || projectCertVOList.isEmpty())
+            final List<SslCertVO> projectCertVOList = _sslCertDao.listByAccountId(project.getProjectAccountId());
+            if (projectCertVOList == null || projectCertVOList.isEmpty()) {
                 return certResponseList;
+            }
             _accountMgr.checkAccess(caller, SecurityChecker.AccessType.UseEntry, true, projectCertVOList.get(0));
 
-            for (SslCertVO cert : projectCertVOList) {
+            for (final SslCertVO cert : projectCertVOList) {
                 certLbMap = _lbCertDao.listByCertId(cert.getId());
                 certResponseList.add(createCertResponse(cert, certLbMap));
             }
@@ -264,19 +265,20 @@ public class CertServiceImpl implements CertService {
         }
 
         //reached here look by accountId
-        List<SslCertVO> certVOList = _sslCertDao.listByAccountId(accountId);
-        if (certVOList == null || certVOList.isEmpty())
+        final List<SslCertVO> certVOList = _sslCertDao.listByAccountId(accountId);
+        if (certVOList == null || certVOList.isEmpty()) {
             return certResponseList;
+        }
         _accountMgr.checkAccess(caller, SecurityChecker.AccessType.UseEntry, true, certVOList.get(0));
 
-        for (SslCertVO cert : certVOList) {
+        for (final SslCertVO cert : certVOList) {
             certLbMap = _lbCertDao.listByCertId(cert.getId());
             certResponseList.add(createCertResponse(cert, certLbMap));
         }
         return certResponseList;
     }
 
-    private void validate(String certInput, String keyInput, String password, String chainInput) {
+    private void validate(final String certInput, final String keyInput, final String password, final String chainInput) {
         Certificate cert;
         PrivateKey key;
         List<Certificate> chain = null;
@@ -296,17 +298,18 @@ public class CertServiceImpl implements CertService {
         validateCert(cert, chainInput != null ? true : false);
         validateKeys(cert.getPublicKey(), key);
 
-        if (chainInput != null)
+        if (chainInput != null) {
             validateChain(chain, cert);
+        }
     }
 
-    public SslCertResponse createCertResponse(SslCertVO cert, List<LoadBalancerCertMapVO> lbCertMap) {
-        SslCertResponse response = new SslCertResponse();
+    public SslCertResponse createCertResponse(final SslCertVO cert, final List<LoadBalancerCertMapVO> lbCertMap) {
+        final SslCertResponse response = new SslCertResponse();
 
-        Account account = _accountDao.findByIdIncludingRemoved(cert.getAccountId());
+        final Account account = _accountDao.findByIdIncludingRemoved(cert.getAccountId());
         if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
             // find the project
-            Project project = _projectMgr.findByProjectAccountIdIncludingRemoved(account.getId());
+            final Project project = _projectMgr.findByProjectAccountIdIncludingRemoved(account.getId());
             if (project != null)
             {
                 response.setProjectId(project.getUuid());
@@ -318,7 +321,7 @@ public class CertServiceImpl implements CertService {
             response.setAccountName(account.getAccountName());
         }
 
-        DomainVO domain = _domainDao.findByIdIncludingRemoved(cert.getDomainId());
+        final DomainVO domain = _domainDao.findByIdIncludingRemoved(cert.getDomainId());
         response.setDomainId(domain.getUuid());
         response.setDomainName(domain.getName());
 
@@ -327,13 +330,14 @@ public class CertServiceImpl implements CertService {
         response.setCertificate(cert.getCertificate());
         response.setFingerprint(cert.getFingerPrint());
 
-        if (cert.getChain() != null)
+        if (cert.getChain() != null) {
             response.setCertchain(cert.getChain());
+        }
 
         if (lbCertMap != null && !lbCertMap.isEmpty()) {
-            List<String> lbIds = new ArrayList<String>();
-            for (LoadBalancerCertMapVO mapVO : lbCertMap) {
-                LoadBalancer lb = _entityMgr.findById(LoadBalancerVO.class, mapVO.getLbId());
+            final List<String> lbIds = new ArrayList<String>();
+            for (final LoadBalancerCertMapVO mapVO : lbCertMap) {
+                final LoadBalancer lb = _entityMgr.findById(LoadBalancerVO.class, mapVO.getLbId());
                 if (lb != null) {
                     lbIds.add(lb.getUuid());
                 }
@@ -344,74 +348,79 @@ public class CertServiceImpl implements CertService {
         return response;
     }
 
-    private void validateCert(Certificate cert, boolean chainPresent) {
+    private void validateCert(final Certificate cert, final boolean chainPresent) {
 
-        if (!(cert instanceof X509Certificate))
+        if (!(cert instanceof X509Certificate)) {
             throw new IllegalArgumentException("Invalid certificate format. Expected X509 certificate");
+        }
 
         try {
             ((X509Certificate)cert).checkValidity();
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new IllegalArgumentException("Certificate expired or not valid", e);
         }
     }
 
-    private void validateKeys(PublicKey pubKey, PrivateKey privKey) {
+    private void validateKeys(final PublicKey pubKey, final PrivateKey privKey) {
 
-        if (pubKey.getAlgorithm() != privKey.getAlgorithm())
+        if (pubKey.getAlgorithm() != privKey.getAlgorithm()) {
             throw new IllegalArgumentException("Public and private key have different algorithms");
+        }
 
         // No encryption for DSA
-        if (pubKey.getAlgorithm() != "RSA")
+        if (pubKey.getAlgorithm() != "RSA") {
             return;
+        }
 
         try {
 
-            String data = "ENCRYPT_DATA";
-            SecureRandom random = new SecureRandom();
-            Cipher cipher = Cipher.getInstance(pubKey.getAlgorithm());
+            final String data = "ENCRYPT_DATA";
+            final SecureRandom random = new SecureRandom();
+            final Cipher cipher = Cipher.getInstance(pubKey.getAlgorithm());
             cipher.init(Cipher.ENCRYPT_MODE, privKey, random);
-            byte[] encryptedData = cipher.doFinal(data.getBytes());
+            final byte[] encryptedData = cipher.doFinal(data.getBytes());
 
             cipher.init(Cipher.DECRYPT_MODE, pubKey, random);
-            String decreptedData = new String(cipher.doFinal(encryptedData));
-            if (!decreptedData.equals(data))
+            final String decreptedData = new String(cipher.doFinal(encryptedData));
+            if (!decreptedData.equals(data)) {
                 throw new IllegalArgumentException("Bad public-private key");
+            }
 
-        } catch (BadPaddingException e) {
+        } catch (final BadPaddingException e) {
             throw new IllegalArgumentException("Bad public-private key", e);
-        } catch (IllegalBlockSizeException e) {
+        } catch (final IllegalBlockSizeException e) {
             throw new IllegalArgumentException("Bad public-private key", e);
-        } catch (NoSuchPaddingException e) {
+        } catch (final NoSuchPaddingException e) {
             throw new IllegalArgumentException("Bad public-private key", e);
-        } catch (InvalidKeyException e) {
+        } catch (final InvalidKeyException e) {
             throw new IllegalArgumentException("Invalid public-private key", e);
-        } catch (NoSuchAlgorithmException e) {
+        } catch (final NoSuchAlgorithmException e) {
             throw new IllegalArgumentException("Invalid algorithm for public-private key", e);
         }
     }
 
-    private void validateChain(List<Certificate> chain, Certificate cert) {
+    private void validateChain(final List<Certificate> chain, final Certificate cert) {
 
-        List<Certificate> certs = new ArrayList<Certificate>();
-        Set<TrustAnchor> anchors = new HashSet<TrustAnchor>();
+        final List<Certificate> certs = new ArrayList<Certificate>();
+        final Set<TrustAnchor> anchors = new HashSet<TrustAnchor>();
 
         certs.add(cert); // adding for self signed certs
         certs.addAll(chain);
 
-        for (Certificate c : certs) {
-            if (!(c instanceof X509Certificate))
+        for (final Certificate c : certs) {
+            if (!(c instanceof X509Certificate)) {
                 throw new IllegalArgumentException("Invalid chain format. Expected X509 certificate");
+            }
 
-            X509Certificate xCert = (X509Certificate)c;
+            final X509Certificate xCert = (X509Certificate)c;
 
             xCert.getSubjectDN();
             xCert.getIssuerDN();
 
-           anchors.add(new TrustAnchor(xCert, null));
+            anchors.add(new TrustAnchor(xCert, null));
         }
 
-        X509CertSelector target = new X509CertSelector();
+        final X509CertSelector target = new X509CertSelector();
         target.setCertificate((X509Certificate)cert);
 
         PKIXBuilderParameters params = null;
@@ -419,16 +428,16 @@ public class CertServiceImpl implements CertService {
             params = new PKIXBuilderParameters(anchors, target);
             params.setRevocationEnabled(false);
             params.addCertStore(CertStore.getInstance("Collection", new CollectionCertStoreParameters(certs)));
-            CertPathBuilder builder = CertPathBuilder.getInstance("PKIX", "BC");
+            final CertPathBuilder builder = CertPathBuilder.getInstance("PKIX", "BC");
             builder.build(params);
 
-        } catch (InvalidAlgorithmParameterException e) {
+        } catch (final InvalidAlgorithmParameterException e) {
             throw new IllegalArgumentException("Invalid certificate chain", e);
-        } catch (CertPathBuilderException e) {
+        } catch (final CertPathBuilderException e) {
             throw new IllegalArgumentException("Invalid certificate chain", e);
-        } catch (NoSuchAlgorithmException e) {
+        } catch (final NoSuchAlgorithmException e) {
             throw new IllegalArgumentException("Invalid certificate chain", e);
-        } catch (NoSuchProviderException e) {
+        } catch (final NoSuchProviderException e) {
             throw new CloudRuntimeException("No provider for certificate validation", e);
         }
 
@@ -448,7 +457,7 @@ public class CertServiceImpl implements CertService {
         }
     }
 
-    public Certificate parseCertificate(String cert) {
+    public Certificate parseCertificate(final String cert) {
         final PemReader certPem = new PemReader(new StringReader(cert));
         try {
             return readCertificateFromPemObject(certPem.readPemObject());
@@ -459,7 +468,7 @@ public class CertServiceImpl implements CertService {
         }
     }
 
-    private Certificate readCertificateFromPemObject(PemObject pemObject) throws CertificateException {
+    private Certificate readCertificateFromPemObject(final PemObject pemObject) throws CertificateException {
         final ByteArrayInputStream bais = new ByteArrayInputStream(pemObject.getContent());
         final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
 
@@ -467,20 +476,20 @@ public class CertServiceImpl implements CertService {
     }
 
 
-    public List<Certificate> parseChain(String chain) throws IOException, CertificateException {
+    public List<Certificate> parseChain(final String chain) throws IOException, CertificateException {
 
         return CertificateHelper.parseChain(chain);
     }
 
-    String generateFingerPrint(Certificate cert) {
+    String generateFingerPrint(final Certificate cert) {
 
         final char[] HEX = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
 
-        StringBuilder buffer = new StringBuilder(60);
+        final StringBuilder buffer = new StringBuilder(60);
         try {
 
-            MessageDigest md = MessageDigest.getInstance("SHA-1");
-            byte[] data = md.digest(cert.getEncoded());
+            final MessageDigest md = MessageDigest.getInstance("SHA-1");
+            final byte[] data = md.digest(cert.getEncoded());
 
             for (final byte element : data) {
                 if (buffer.length() > 0) {
@@ -511,7 +520,7 @@ public class CertServiceImpl implements CertService {
         boolean passwordRequested = false;
         char[] password;
 
-        KeyPassword(char[] word) {
+        KeyPassword(final char[] word) {
             password = word;
         }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4dbcf3aa/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
index f4ad334..f252c69 100644
--- a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
+++ b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
@@ -62,8 +62,8 @@ public class CertServiceTest {
 
     @Before
     public void setUp() {
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN);
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN);
         CallContext.register(user, account);
     }
 
@@ -99,23 +99,23 @@ public class CertServiceTest {
 
         TransactionLegacy.open("runUploadSslCertWithCAChain");
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
-        String chainFile = URLDecoder.decode(getClass().getResource("/certs/root_chain.crt").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
+        final String chainFile = URLDecoder.decode(getClass().getResource("/certs/root_chain.crt").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
-        String chain = readFileToString(new File(chainFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
+        final String chain = readFileToString(new File(chainFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -125,25 +125,25 @@ public class CertServiceTest {
         when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field chainField = _class.getDeclaredField("chain");
+        final Field chainField = klazz.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
 
         certService.uploadSslCert(uploadCmd);
     }
 
-//    @Test
+    //    @Test
     /**
      * Given a Self-signed Certificate with encrypted key, upload should succeed
      */
@@ -151,22 +151,22 @@ public class CertServiceTest {
 
         TransactionLegacy.open("runUploadSslCertSelfSignedWithPassword");
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.key").getFile(),Charset.defaultCharset().name());
-        String password = "test";
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.key").getFile(),Charset.defaultCharset().name());
+        final String password = "test";
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -176,18 +176,18 @@ public class CertServiceTest {
         when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field passField = _class.getDeclaredField("password");
+        final Field passField = klazz.getDeclaredField("password");
         passField.setAccessible(true);
         passField.set(uploadCmd, password);
 
@@ -202,21 +202,21 @@ public class CertServiceTest {
 
         TransactionLegacy.open("runUploadSslCertSelfSignedNoPassword");
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -226,14 +226,14 @@ public class CertServiceTest {
         when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
@@ -245,48 +245,48 @@ public class CertServiceTest {
     public void runUploadSslCertBadChain() throws IOException, IllegalAccessException, NoSuchFieldException {
         Assume.assumeTrue(isOpenJdk() || isJCEInstalled());
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
-        String chainFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
+        final String chainFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
-        String chain = readFileToString(new File(chainFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
+        final String chain = readFileToString(new File(chainFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field chainField = _class.getDeclaredField("chain");
+        final Field chainField = klazz.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
 
         try {
             certService.uploadSslCert(uploadCmd);
             fail("The chain given is not the correct chain for the certificate");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
     }
@@ -297,48 +297,48 @@ public class CertServiceTest {
 
         Assume.assumeTrue(isOpenJdk() || isJCEInstalled());
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
-        String chainFile = URLDecoder.decode(getClass().getResource("/certs/non_root.crt").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
+        final String chainFile = URLDecoder.decode(getClass().getResource("/certs/non_root.crt").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
-        String chain = readFileToString(new File(chainFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
+        final String chain = readFileToString(new File(chainFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field chainField = _class.getDeclaredField("chain");
+        final Field chainField = klazz.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
 
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Chain is given but does not link to the certificate");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
 
@@ -348,40 +348,40 @@ public class CertServiceTest {
     @Test
     public void runUploadSslCertBadPassword() throws IOException, IllegalAccessException, NoSuchFieldException {
 
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.key").getFile(),Charset.defaultCharset().name());
-        String password = "bad_password";
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.key").getFile(),Charset.defaultCharset().name());
+        final String password = "bad_password";
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field passField = _class.getDeclaredField("password");
+        final Field passField = klazz.getDeclaredField("password");
         passField.setAccessible(true);
         passField.set(uploadCmd, password);
 
@@ -398,41 +398,41 @@ public class CertServiceTest {
     @Test
     public void runUploadSslCertBadkeyPair() throws IOException, IllegalAccessException, NoSuchFieldException {
         // Reading appropritate files
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/non_root.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/non_root.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
         try {
             certService.uploadSslCert(uploadCmd);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Bad public-private key"));
         }
     }
@@ -441,35 +441,35 @@ public class CertServiceTest {
     public void runUploadSslCertBadkeyAlgo() throws IOException, IllegalAccessException, NoSuchFieldException {
 
         // Reading appropritate files
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/dsa_self_signed.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/dsa_self_signed.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
@@ -486,42 +486,42 @@ public class CertServiceTest {
     public void runUploadSslCertExpiredCert() throws IOException, IllegalAccessException, NoSuchFieldException {
 
         // Reading appropritate files
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/expired_cert.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/expired_cert.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Given an expired certificate, upload should fail");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Certificate expired"));
         }
     }
@@ -529,42 +529,42 @@ public class CertServiceTest {
     @Test
     public void runUploadSslCertNotX509() throws IOException, IllegalAccessException, NoSuchFieldException {
         // Reading appropritate files
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/non_x509_pem.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/non_x509_pem.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Given a Certificate which is not X509, upload should fail");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Expected X509 certificate"));
         }
     }
@@ -573,35 +573,35 @@ public class CertServiceTest {
     public void runUploadSslCertBadFormat() throws IOException, IllegalAccessException, NoSuchFieldException {
 
         // Reading appropritate files
-        String certFile = URLDecoder.decode(getClass().getResource("/certs/bad_format_cert.crt").getFile(),Charset.defaultCharset().name());
-        String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
+        final String certFile = URLDecoder.decode(getClass().getResource("/certs/bad_format_cert.crt").getFile(),Charset.defaultCharset().name());
+        final String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
 
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
+        final String cert = readFileToString(new File(certFile));
+        final String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
         when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
+        final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
+        final Class<?> klazz = uploadCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("cert");
+        final Field certField = klazz.getDeclaredField("cert");
         certField.setAccessible(true);
         certField.set(uploadCmd, cert);
 
-        Field keyField = _class.getDeclaredField("key");
+        final Field keyField = klazz.getDeclaredField("key");
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
@@ -620,18 +620,18 @@ public class CertServiceTest {
      */
     public void runDeleteSslCertValid() throws Exception {
 
-        TransactionLegacy txn = TransactionLegacy.open("runDeleteSslCertValid");
+        TransactionLegacy.open("runDeleteSslCertValid");
 
-        CertServiceImpl certService = new CertServiceImpl();
-        long certId = 1;
+        final CertServiceImpl certService = new CertServiceImpl();
+        final long certId = 1;
 
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -644,10 +644,10 @@ public class CertServiceTest {
         when(certService._lbCertDao.listByCertId(anyLong())).thenReturn(null);
 
         //creating the command
-        DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
-        Class<?> _class = deleteCmd.getClass().getSuperclass();
+        final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
+        final Class<?> klazz = deleteCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("id");
+        final Field certField = klazz.getDeclaredField("id");
         certField.setAccessible(true);
         certField.set(deleteCmd, certId);
 
@@ -657,19 +657,19 @@ public class CertServiceTest {
     @Test
     public void runDeleteSslCertBoundCert() throws NoSuchFieldException, IllegalAccessException {
 
-        TransactionLegacy txn = TransactionLegacy.open("runDeleteSslCertBoundCert");
+        TransactionLegacy.open("runDeleteSslCertBoundCert");
 
-        CertServiceImpl certService = new CertServiceImpl();
+        final CertServiceImpl certService = new CertServiceImpl();
 
         //setting mock objects
-        long certId = 1;
+        final long certId = 1;
 
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -679,7 +679,7 @@ public class CertServiceTest {
         // rule holding the cert
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
 
-        List<LoadBalancerCertMapVO> lbMapList = new ArrayList<LoadBalancerCertMapVO>();
+        final List<LoadBalancerCertMapVO> lbMapList = new ArrayList<LoadBalancerCertMapVO>();
         lbMapList.add(new LoadBalancerCertMapVO());
 
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
@@ -689,17 +689,17 @@ public class CertServiceTest {
         when(certService._entityMgr.findById(eq(LoadBalancerVO.class), anyLong())).thenReturn(new LoadBalancerVO());
 
         //creating the command
-        DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
-        Class<?> _class = deleteCmd.getClass().getSuperclass();
+        final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
+        final Class<?> klazz = deleteCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("id");
+        final Field certField = klazz.getDeclaredField("id");
         certField.setAccessible(true);
         certField.set(deleteCmd, certId);
 
         try {
             certService.deleteSslCert(deleteCmd);
             fail("Delete with a cert id bound to a lb should fail");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Certificate in use by a loadbalancer"));
         }
 
@@ -707,17 +707,17 @@ public class CertServiceTest {
 
     @Test
     public void runDeleteSslCertInvalidId() throws NoSuchFieldException, IllegalAccessException {
-        TransactionLegacy txn = TransactionLegacy.open("runDeleteSslCertInvalidId");
+        TransactionLegacy.open("runDeleteSslCertInvalidId");
 
-        long certId = 1;
-        CertServiceImpl certService = new CertServiceImpl();
+        final long certId = 1;
+        final CertServiceImpl certService = new CertServiceImpl();
 
         certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
+        final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
         when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
+        final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
         when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
@@ -729,17 +729,17 @@ public class CertServiceTest {
         when(certService._lbCertDao.listByCertId(anyLong())).thenReturn(null);
 
         //creating the command
-        DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
-        Class<?> _class = deleteCmd.getClass().getSuperclass();
+        final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
+        final Class<?> klazz = deleteCmd.getClass().getSuperclass();
 
-        Field certField = _class.getDeclaredField("id");
+        final Field certField = klazz.getDeclaredField("id");
         certField.setAccessible(true);
         certField.set(deleteCmd, certId);
 
         try {
             certService.deleteSslCert(deleteCmd);
             fail("Delete with an invalid ID should fail");
-        } catch (Exception e) {
+        } catch (final Exception e) {
             assertTrue(e.getMessage().contains("Invalid certificate id"));
         }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4dbcf3aa/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java b/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
index 2426500..ee7c438 100644
--- a/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
+++ b/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
@@ -50,30 +50,30 @@ import com.cloud.utils.Ternary;
 import com.cloud.utils.exception.CloudRuntimeException;
 
 public class CertificateHelper {
-    public static byte[] buildAndSaveKeystore(String alias, String cert, String privateKey, String storePassword) throws KeyStoreException, CertificateException,
-        NoSuchAlgorithmException, InvalidKeySpecException, IOException {
-        KeyStore ks = buildKeystore(alias, cert, privateKey, storePassword);
+    public static byte[] buildAndSaveKeystore(final String alias, final String cert, final String privateKey, final String storePassword) throws KeyStoreException, CertificateException,
+    NoSuchAlgorithmException, InvalidKeySpecException, IOException {
+        final KeyStore ks = buildKeystore(alias, cert, privateKey, storePassword);
 
-        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        final ByteArrayOutputStream os = new ByteArrayOutputStream();
         ks.store(os, storePassword != null ? storePassword.toCharArray() : null);
         os.close();
         return os.toByteArray();
     }
 
-    public static byte[] buildAndSaveKeystore(List<Ternary<String, String, String>> certs, String storePassword) throws KeyStoreException, NoSuchAlgorithmException,
-        CertificateException, IOException, InvalidKeySpecException {
-        KeyStore ks = KeyStore.getInstance("JKS");
+    public static byte[] buildAndSaveKeystore(final List<Ternary<String, String, String>> certs, final String storePassword) throws KeyStoreException, NoSuchAlgorithmException,
+    CertificateException, IOException, InvalidKeySpecException {
+        final KeyStore ks = KeyStore.getInstance("JKS");
         ks.load(null, storePassword != null ? storePassword.toCharArray() : null);
 
         //name,cert,key
-        for (Ternary<String, String, String> cert : certs) {
+        for (final Ternary<String, String, String> cert : certs) {
             if (cert.third() == null) {
-                Certificate c = buildCertificate(cert.second());
+                final Certificate c = buildCertificate(cert.second());
                 ks.setCertificateEntry(cert.first(), c);
             } else {
-                Certificate[] c = new Certificate[certs.size()];
+                final Certificate[] c = new Certificate[certs.size()];
                 int i = certs.size();
-                for (Ternary<String, String, String> ct : certs) {
+                for (final Ternary<String, String, String> ct : certs) {
                     c[i - 1] = buildCertificate(ct.second());
                     i--;
                 }
@@ -81,46 +81,46 @@ public class CertificateHelper {
             }
         }
 
-        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        final ByteArrayOutputStream os = new ByteArrayOutputStream();
         ks.store(os, storePassword != null ? storePassword.toCharArray() : null);
         os.close();
         return os.toByteArray();
     }
 
-    public static KeyStore loadKeystore(byte[] ksData, String storePassword) throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException {
-        assert (ksData != null);
-        KeyStore ks = KeyStore.getInstance("JKS");
+    public static KeyStore loadKeystore(final byte[] ksData, final String storePassword) throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException {
+        assert ksData != null;
+        final KeyStore ks = KeyStore.getInstance("JKS");
         ks.load(new ByteArrayInputStream(ksData), storePassword != null ? storePassword.toCharArray() : null);
 
         return ks;
     }
 
-    public static KeyStore buildKeystore(String alias, String cert, String privateKey, String storePassword) throws KeyStoreException, CertificateException,
-        NoSuchAlgorithmException, InvalidKeySpecException, IOException {
+    public static KeyStore buildKeystore(final String alias, final String cert, final String privateKey, final String storePassword) throws KeyStoreException, CertificateException,
+    NoSuchAlgorithmException, InvalidKeySpecException, IOException {
 
-        KeyStore ks = KeyStore.getInstance("JKS");
+        final KeyStore ks = KeyStore.getInstance("JKS");
         ks.load(null, storePassword != null ? storePassword.toCharArray() : null);
-        Certificate[] certs = new Certificate[1];
+        final Certificate[] certs = new Certificate[1];
         certs[0] = buildCertificate(cert);
         ks.setKeyEntry(alias, buildPrivateKey(privateKey), storePassword != null ? storePassword.toCharArray() : null, certs);
         return ks;
     }
 
-    public static Certificate buildCertificate(String content) throws CertificateException {
-        assert (content != null);
+    public static Certificate buildCertificate(final String content) throws CertificateException {
+        assert content != null;
 
-        BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(content.getBytes()));
-        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+        final BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(content.getBytes()));
+        final CertificateFactory cf = CertificateFactory.getInstance("X.509");
         return cf.generateCertificate(bis);
     }
 
-    public static Key buildPrivateKey(String base64EncodedKeyContent) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
-        KeyFactory kf = KeyFactory.getInstance("RSA");
-        PKCS8EncodedKeySpec keysp = new PKCS8EncodedKeySpec(Base64.decodeBase64(base64EncodedKeyContent));
+    public static Key buildPrivateKey(final String base64EncodedKeyContent) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
+        final KeyFactory kf = KeyFactory.getInstance("RSA");
+        final PKCS8EncodedKeySpec keysp = new PKCS8EncodedKeySpec(Base64.decodeBase64(base64EncodedKeyContent));
         return kf.generatePrivate(keysp);
     }
 
-    public static List<Certificate> parseChain(String chain) throws IOException, CertificateException {
+    public static List<Certificate> parseChain(final String chain) throws IOException, CertificateException {
 
         final List<Certificate> certs = new ArrayList<Certificate>();
         try(final PemReader pemReader = new PemReader(new StringReader(chain));)
@@ -130,8 +130,8 @@ public class CertificateHelper {
             final ByteArrayInputStream bais = new ByteArrayInputStream(pemObject.getContent());
             final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
 
-            Collection<? extends Certificate> c = certificateFactory.generateCertificates(bais);
-            Iterator<? extends Certificate> i = c.iterator();
+            final Collection<? extends Certificate> c = certificateFactory.generateCertificates(bais);
+            final Iterator<? extends Certificate> i = c.iterator();
             while (i.hasNext()) {
                 cert = i.next();
                 if (cert instanceof X509Certificate) {
@@ -149,15 +149,15 @@ public class CertificateHelper {
         return certs;
     }
 
-    public static String generateFingerPrint(Certificate cert) {
+    public static String generateFingerPrint(final Certificate cert) {
 
         final char[] HEX = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
 
-        StringBuilder buffer = new StringBuilder(60);
+        final StringBuilder buffer = new StringBuilder(60);
         try {
 
-            MessageDigest md = MessageDigest.getInstance("SHA-1");
-            byte[] data = md.digest(cert.getEncoded());
+            final MessageDigest md = MessageDigest.getInstance("SHA-1");
+            final byte[] data = md.digest(cert.getEncoded());
 
             for (final byte element : data) {
                 if (buffer.length() > 0) {


[06/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Added fix for adding/editing Network ACL rule ordering


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 6dd6ef0c9a30f128657de22fa8b6ea8ab5daa133
Parents: 1f9bf93
Author: Patrick Dube <pd...@cloudops.com>
Authored: Mon Jul 11 15:12:41 2016 -0400
Committer: Patrick Dube <pd...@cloudops.com>
Committed: Mon Jul 11 15:12:41 2016 -0400

----------------------------------------------------------------------
 .../debian/config/opt/cloud/bin/cs/CsNetfilter.py        | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6dd6ef0c/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
index 4b5b492..39f184b 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
@@ -151,6 +151,8 @@ class CsNetfilters(object):
             if isinstance(fw[1], int):
                 new_rule.set_count(fw[1])
 
+            rule_chain = new_rule.get_chain()
+
             logging.debug("Checking if the rule already exists: rule=%s table=%s chain=%s", new_rule.get_rule(), new_rule.get_table(), new_rule.get_chain())
             if self.has_rule(new_rule):
                 logging.debug("Exists: rule=%s table=%s", fw[2], new_rule.get_table())
@@ -162,9 +164,14 @@ class CsNetfilters(object):
                 if fw[1] == "front":
                     cpy = cpy.replace('-A', '-I')
                 if isinstance(fw[1], int):
-                    cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), fw[1]))
-
+                    # if the rule is for ACLs, we want to insert them in order, right before the DROP all
+                    if rule_chain.startswith("ACL_INBOUND") or rule_chain.startswith("ACL_OUTBOUND"):
+                        rule_count = self.chain.get_count(rule_chain)
+                        cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), rule_count))
+                    else:
+                        cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), fw[1]))
                 CsHelper.execute("iptables -t %s %s" % (new_rule.get_table(), cpy))
+                self.chain.add_rule(rule_chain)
         self.del_standard()
         self.get_unseen()
 


[35/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
CLOUDSTACK-9447: fix build and upgrade to debian 7.11 iso

- Update base debian iso to version 7.11
- Upgrade ruby version to 2.3.0 (latest/stable)
- Fix Gemfile
- Update README
- Fix openswan pkg name with the same version
- Remove cloud-cleanup it's not available

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 2cddaf3d36cf76f5db601d583ba3d06aaf2778dd
Parents: 227ff38
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed May 4 16:21:24 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Fri Aug 5 12:40:07 2016 +0530

----------------------------------------------------------------------
 tools/appliance/.ruby-version                   |  2 +-
 tools/appliance/.rvmrc                          |  2 +-
 tools/appliance/Gemfile                         |  4 ++-
 tools/appliance/README.md                       | 27 +++++++++-----------
 tools/appliance/build.sh                        |  9 ++++---
 .../configure_systemvm_services.sh              |  1 -
 .../definitions/systemvmtemplate/definition.rb  | 12 ++++-----
 .../install_systemvm_packages.sh                |  2 +-
 8 files changed, 30 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/.ruby-version
----------------------------------------------------------------------
diff --git a/tools/appliance/.ruby-version b/tools/appliance/.ruby-version
index 7a895c2..bc9bac6 100644
--- a/tools/appliance/.ruby-version
+++ b/tools/appliance/.ruby-version
@@ -1 +1 @@
-1.9.3-p484
+2.3.0p0

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/.rvmrc
----------------------------------------------------------------------
diff --git a/tools/appliance/.rvmrc b/tools/appliance/.rvmrc
index 3c8c66c..573ecb7 100644
--- a/tools/appliance/.rvmrc
+++ b/tools/appliance/.rvmrc
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-rvm use ruby-1.9.3@vagrant-release-cloudstack --create
+rvm use ruby-2.3.0@vagrant-release-cloudstack --create
 export VAGRANT_HOME=$HOME/.vagrant.d-release-cloudstack
 bundle check > /dev/null 2>&1
 RETVAL=$?

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/Gemfile
----------------------------------------------------------------------
diff --git a/tools/appliance/Gemfile b/tools/appliance/Gemfile
index 386601c..acd771b 100644
--- a/tools/appliance/Gemfile
+++ b/tools/appliance/Gemfile
@@ -16,7 +16,9 @@
 # under the License.
 
 source 'https://rubygems.org'
-# gem 'veewee', :git => 'https://github.com/jedi4ever/veewee.git'
+
 gem 'veewee', '~> 0.4.5.1'
 gem 'em-winrm'
 gem 'sys-proctable'
+gem 'net-scp'
+gem 'net-ssh'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/README.md
----------------------------------------------------------------------
diff --git a/tools/appliance/README.md b/tools/appliance/README.md
index 82b0488..403eb45 100644
--- a/tools/appliance/README.md
+++ b/tools/appliance/README.md
@@ -19,17 +19,17 @@ under the License.
 
 # Setting up Tools and Environment
 
-    - Install latest VirtualBox (at least 4.2)
-    - Install tools for exporting appliances: qemu-img, vboxmanage, vhd-util
+    - Install latest VirtualBox (5.0+)
+    - Install tools for exporting appliances: qemu-img, vboxmanage, vhd-util, ovftool
     - Install [RVM](https://rvm.io/rvm/install)
-    - Install shar
-          yum install sharutils
+    - Install dependencies (tested on Ubuntu 16.04):
+          apt-get install sharutils libxslt1-dev libxml2-dev zlib1g-dev build-essential ruby ruby-bundler ruby-dev qemu-utils blktap-utils faketime
     - Setup paths:
           export PATH=~/.rvm/bin:$PATH
-    - Install Ruby 1.9.3, if it installed some other version:
-          rvm install 1.9.3
-    - Set rvm to use that 1.9.3
-          rvm use ruby-1.9.3
+    - Install Ruby 2.3.0, if it installed some other version:
+          rvm install 2.3.0
+    - Set rvm to use that 2.3.0
+          rvm use ruby-2.3.0
     - Install bundler: (if you get any openssl issue see https://rvm.io/packages/openssl)
           gem install bundler
 
@@ -38,10 +38,6 @@ All the dependencies will be fetched automatically.
 To save some time if you've downloaded iso of your distro, put the isos in:
 tools/appliance/iso/
 
-Note, gem may require gcc-4.2, make sure link exists:
-
-    sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
-
 # Setting up jenkins (CI) builds
 
 All the tools listed above are expected to be available. If you follow
@@ -69,9 +65,10 @@ bundle_args="--path vendor/bundle"
 # How to build SystemVMs automatically
 
 Just run build.sh, it will export archived appliances for KVM, XenServer,
-VMWare and HyperV in `dist`:
+VMWare and HyperV in `dist` directory:
 
-    bash build.sh [systemvmtemplate|systemvmtemplate64]
+    bundle install
+    bash build.sh systemvm64template
 
 # Building SystemVM template appliance manually
 
@@ -103,7 +100,7 @@ the systemvmtemplate:
 
 Troubleshooting
 ===============
-If you see following line in the screen, then veewee is failing 
+If you see following line in the screen, then veewee is failing
 extracting vboxmanage version.
 
     Downloading vbox guest additions iso v  - http://download.virtualbox.org/vi

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/build.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/build.sh b/tools/appliance/build.sh
index 96fe6df..9ac4388 100755
--- a/tools/appliance/build.sh
+++ b/tools/appliance/build.sh
@@ -64,8 +64,13 @@ echo $@ | grep '\-h' >/dev/null && usage
 #    make
 #    sudo make install
 # * vhd-util
+#    Install on yum-based:
 #    sudo yum -y install python-devel dev86 iasl iasl-devel libuuid libuuid-devel \
 #        glib-devel glib2 glib2-devel yajl yajl-devel
+#    Install on apt-based:
+#    sudo apt-get install -y python python-dev bcc bin86 iasl uuid-dev \
+#        libglib2.0-dev libyajl-dev build-essential libc6-dev zlib1g-dev libncurses5-dev \
+#        patch iasl libbz2-dev e2fslibs-dev xz-utils gettext
 #    wget -q http://bits.xensource.com/oss-xen/release/4.2.0/xen-4.2.0.tar.gz
 #    tar xzvf xen-4.2.0.tar.gz
 #    cd xen-4.2.0/tools/
@@ -77,7 +82,7 @@ echo $@ | grep '\-h' >/dev/null && usage
 #    sudo ldconfig
 #    sudo cp blktap2/vhd/vhd-util /usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver
 #    faketime 2010-01-01 vhd-util convert
-
+#
 set -e
 
 ###
@@ -529,8 +534,6 @@ function vmware_export() {
     stage_vmx ${appliance_build_name}-vmware ${appliance_build_name}-vmware.vmdk
     ovftool ${appliance_build_name}-vmware.vmx ${appliance_build_name}-vmware.ova
   fi
-  bzip2 "${appliance_build_name}-vmware.vmdk"
-  mv "${appliance_build_name}-vmware.vmdk.bz2" dist/
   mv ${appliance_build_name}-vmware.ova dist/
   log INFO "${appliance} exported for VMWare: dist/${appliance_build_name}-vmware.ova"
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
index 4f65543..57fa2a7 100644
--- a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
+++ b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
@@ -37,7 +37,6 @@ function install_cloud_scripts() {
   chmod +x /opt/cloud/bin/* \
     /root/{clearUsageRules.sh,reconfigLB.sh,monitorServices.py} \
     /etc/init.d/{cloud,cloud-early-config,cloud-passwd-srvr,postinit} \
-    /etc/cron.daily/cloud-cleanup \
     /etc/profile.d/cloud.sh
 
   chkconfig --add cloud-early-config

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/definitions/systemvmtemplate/definition.rb
----------------------------------------------------------------------
diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb
index 3d9da81..db6fce8 100644
--- a/tools/appliance/definitions/systemvmtemplate/definition.rb
+++ b/tools/appliance/definitions/systemvmtemplate/definition.rb
@@ -27,15 +27,15 @@ arch = ENV['VM_ARCH'] || 'i386'
 architectures = {
     :i386 => {
         :os_type_id => 'Debian',
-        :iso_file => 'debian-7.9.0-i386-netinst.iso',
-        :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.9.0/i386/iso-cd/debian-7.9.0-i386-netinst.iso',
-        :iso_md5 => 'e101a11ddb31f85acef542df1a49bf57',
+        :iso_file => 'debian-7.11.0-i386-netinst.iso',
+        :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.11.0/i386/iso-cd/debian-7.11.0-i386-netinst.iso',
+        :iso_md5 => '75055a694508f5b891038ec12d703c9e',
     },
     :amd64 => {
         :os_type_id => 'Debian_64',
-        :iso_file => 'debian-7.9.0-amd64-netinst.iso',
-        :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.9.0/amd64/iso-cd/debian-7.9.0-amd64-netinst.iso',
-        :iso_md5 => '774d1fc8c5364e63b22242c33a89c1a3'
+        :iso_file => 'debian-7.11.0-amd64-netinst.iso',
+        :iso_src => 'http://cdimage.debian.org/cdimage/archive/7.11.0/amd64/iso-cd/debian-7.11.0-amd64-netinst.iso',
+        :iso_md5 => '096c1c18b44c269808bd815d58c53c8f'
     }
 }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2cddaf3d/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
index c8b7b91..f5f871b 100644
--- a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
+++ b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
@@ -63,7 +63,7 @@ function install_packages() {
     nfs-common \
     samba-common cifs-utils \
     xl2tpd bcrelay ppp ipsec-tools tdb-tools \
-    openswan=1:2.6.37-3 \
+    openswan=1:2.6.37-3+deb7u1 \
     xenstore-utils libxenstore3.0 \
     conntrackd ipvsadm libnetfilter-conntrack3 libnl-3-200 libnl-genl-3-200 \
     ipcalc \


[22/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Added missing rules on router config, fixed ordering of multiple rules, removed duplicate rules, added fix for network stats, added a check for b64 decoding (to pad incorrect b64). Also added a catch exception to be logged on the configure main.


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 9ab676206a5bfe94aad8d03345c8804d520b0488
Parents: 9be93c6
Author: Patrick Dube <pd...@cloudops.com>
Authored: Fri Jul 22 15:32:20 2016 -0400
Committer: Patrick Dube <pd...@cloudops.com>
Committed: Fri Jul 22 15:32:20 2016 -0400

----------------------------------------------------------------------
 .../debian/config/opt/cloud/bin/configure.py    | 201 ++++++++++---------
 .../debian/config/opt/cloud/bin/cs/CsAddress.py |  17 +-
 .../config/opt/cloud/bin/cs/CsNetfilter.py      |  14 +-
 3 files changed, 126 insertions(+), 106 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9ab67620/systemvm/patches/debian/config/opt/cloud/bin/configure.py
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/configure.py b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
index 59a8e9d..35ac3f2 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
@@ -313,6 +313,9 @@ class CsVmMetadata(CsDataBag):
         # base64 decode userdata
         if folder == "userdata" or folder == "user-data":
             if data is not None:
+                # need to pad data if it is not valid base 64
+                if len(data) % 4 != 0:
+                    data  += (4-(len(data) % 4)) * "="
                 data = base64.b64decode(data)
 
         fh = open(dest, "w")
@@ -908,104 +911,106 @@ def main(argv):
     logging.basicConfig(filename=config.get_logger(),
                         level=config.get_level(),
                         format=config.get_format())
-
-    # Load stored ip adresses from disk to CsConfig()
-    config.set_address()
-
-    logging.debug("Configuring ip addresses")
-    config.address().compare()
-    config.address().process()
-
-    if process_file in ["cmd_line.json", "guest_network.json"]:
-        logging.debug("Configuring Guest Network")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "vm_password.json"]:
-        logging.debug("Configuring vmpassword")
-        password = CsPassword("vmpassword", config)
-        password.process()
-
-    if process_file in ["cmd_line.json", "vm_metadata.json"]:
-        logging.debug("Configuring vmdata")
-        metadata = CsVmMetadata('vmdata', config)
-        metadata.process()
-
-    if process_file in ["cmd_line.json", "network_acl.json"]:
-        logging.debug("Configuring networkacl")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "firewall_rules.json"]:
-        logging.debug("Configuring firewall rules")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "forwarding_rules.json", "staticnat_rules.json"]:
-        logging.debug("Configuring PF rules")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "site_2_site_vpn.json"]:
-        logging.debug("Configuring s2s vpn")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "remote_access_vpn.json"]:
-        logging.debug("Configuring remote access vpn")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "vpn_user_list.json"]:
-        logging.debug("Configuring vpn users list")
-        vpnuser = CsVpnUser("vpnuserlist", config)
-        vpnuser.process()
-
-    if process_file in ["cmd_line.json", "vm_dhcp_entry.json", "dhcp.json"]:
-        logging.debug("Configuring dhcp entry")
-        dhcp = CsDhcp("dhcpentry", config)
-        dhcp.process()
-
-    if process_file in ["cmd_line.json", "load_balancer.json"]:
-        logging.debug("Configuring load balancer")
-        iptables_change = True
-
-    if process_file in ["cmd_line.json", "monitor_service.json"]:
-        logging.debug("Configuring monitor service")
-        mon = CsMonitor("monitorservice", config)
-        mon.process()
-
-    # If iptable rules have changed, apply them.
-    if iptables_change:
-        acls = CsAcl('networkacl', config)
-        acls.process()
-
-        acls = CsAcl('firewallrules', config)
-        acls.process()
-
-        fwd = CsForwardingRules("forwardingrules", config)
-        fwd.process()
-
-        vpns = CsSite2SiteVpn("site2sitevpn", config)
-        vpns.process()
-
-        rvpn = CsRemoteAccessVpn("remoteaccessvpn", config)
-        rvpn.process()
-
-        lb = CsLoadBalancer("loadbalancer", config)
-        lb.process()
-
-        logging.debug("Configuring iptables rules")
-        nf = CsNetfilters()
-        nf.compare(config.get_fw())
-
-        logging.debug("Configuring iptables rules done ...saving rules")
-
-        # Save iptables configuration - will be loaded on reboot by the iptables-restore that is configured on /etc/rc.local
-        CsHelper.save_iptables("iptables-save", "/etc/iptables/router_rules.v4")
-        CsHelper.save_iptables("ip6tables-save", "/etc/iptables/router_rules.v6")
-
-    red = CsRedundant(config)
-    red.set()
-
-    if process_file in ["cmd_line.json", "static_routes.json"]:
-        logging.debug("Configuring static routes")
-        static_routes = CsStaticRoutes("staticroutes", config)
-        static_routes.process()
+    try:
+        # Load stored ip adresses from disk to CsConfig()
+        config.set_address()
+
+        logging.debug("Configuring ip addresses")
+        config.address().compare()
+        config.address().process()
+
+        if process_file in ["cmd_line.json", "guest_network.json"]:
+            logging.debug("Configuring Guest Network")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "vm_password.json"]:
+            logging.debug("Configuring vmpassword")
+            password = CsPassword("vmpassword", config)
+            password.process()
+
+        if process_file in ["cmd_line.json", "vm_metadata.json"]:
+            logging.debug("Configuring vmdata")
+            metadata = CsVmMetadata('vmdata', config)
+            metadata.process()
+
+        if process_file in ["cmd_line.json", "network_acl.json"]:
+            logging.debug("Configuring networkacl")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "firewall_rules.json"]:
+            logging.debug("Configuring firewall rules")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "forwarding_rules.json", "staticnat_rules.json"]:
+            logging.debug("Configuring PF rules")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "site_2_site_vpn.json"]:
+            logging.debug("Configuring s2s vpn")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "remote_access_vpn.json"]:
+            logging.debug("Configuring remote access vpn")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "vpn_user_list.json"]:
+            logging.debug("Configuring vpn users list")
+            vpnuser = CsVpnUser("vpnuserlist", config)
+            vpnuser.process()
+
+        if process_file in ["cmd_line.json", "vm_dhcp_entry.json", "dhcp.json"]:
+            logging.debug("Configuring dhcp entry")
+            dhcp = CsDhcp("dhcpentry", config)
+            dhcp.process()
+
+        if process_file in ["cmd_line.json", "load_balancer.json"]:
+            logging.debug("Configuring load balancer")
+            iptables_change = True
+
+        if process_file in ["cmd_line.json", "monitor_service.json"]:
+            logging.debug("Configuring monitor service")
+            mon = CsMonitor("monitorservice", config)
+            mon.process()
+
+        # If iptable rules have changed, apply them.
+        if iptables_change:
+            acls = CsAcl('networkacl', config)
+            acls.process()
+
+            acls = CsAcl('firewallrules', config)
+            acls.process()
+
+            fwd = CsForwardingRules("forwardingrules", config)
+            fwd.process()
+
+            vpns = CsSite2SiteVpn("site2sitevpn", config)
+            vpns.process()
+
+            rvpn = CsRemoteAccessVpn("remoteaccessvpn", config)
+            rvpn.process()
+
+            lb = CsLoadBalancer("loadbalancer", config)
+            lb.process()
+
+            logging.debug("Configuring iptables rules")
+            nf = CsNetfilters()
+            nf.compare(config.get_fw())
+
+            logging.debug("Configuring iptables rules done ...saving rules")
+
+            # Save iptables configuration - will be loaded on reboot by the iptables-restore that is configured on /etc/rc.local
+            CsHelper.save_iptables("iptables-save", "/etc/iptables/router_rules.v4")
+            CsHelper.save_iptables("ip6tables-save", "/etc/iptables/router_rules.v6")
+
+        red = CsRedundant(config)
+        red.set()
+
+        if process_file in ["cmd_line.json", "static_routes.json"]:
+            logging.debug("Configuring static routes")
+            static_routes = CsStaticRoutes("staticroutes", config)
+            static_routes.process()
+    except Exception:
+        logging.exception("Exception while configuring router")
 
 if __name__ == "__main__":
     main(sys.argv)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9ab67620/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
index efcb94f..f78ec4c 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
@@ -432,6 +432,9 @@ class CsIP:
         self.fw.append(["mangle", "front", "-A PREROUTING " +
                         "-m state --state RELATED,ESTABLISHED " +
                         "-j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff"])
+        
+        self.fw.append(["filter", "", "-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT"])
+
         if self.get_type() in ["guest"]:
             self.fw.append(["filter", "", "-A FORWARD -d %s -o %s -j ACL_INBOUND_%s" %
                             (self.address['network'], self.dev, self.dev)])
@@ -440,6 +443,9 @@ class CsIP:
             self.fw.append(
                 ["filter", "front", "-A ACL_INBOUND_%s -d 225.0.0.50/32 -j ACCEPT" % self.dev])
             self.fw.append(
+                ["filter", "", "-A ACL_INBOUND_%s -j DROP" % self.dev])
+
+            self.fw.append(
                 ["mangle", "front", "-A ACL_OUTBOUND_%s -d 225.0.0.50/32 -j ACCEPT" % self.dev])
             self.fw.append(
                 ["mangle", "front", "-A ACL_OUTBOUND_%s -d 224.0.0.18/32 -j ACCEPT" % self.dev])
@@ -459,10 +465,12 @@ class CsIP:
                             (self.dev, self.address[
                              'network'], self.address['gateway'], self.dev)
                             ])
-            self.fw.append(["", "front", "-A NETWORK_STATS_%s -o %s -s %s" %
+
+            self.fw.append(["", "front", "-A NETWORK_STATS_%s -i %s -d %s" %
                             ("eth1", "eth1", self.address['network'])])
-            self.fw.append(["", "front", "-A NETWORK_STATS_%s -o %s -d %s" %
+            self.fw.append(["", "front", "-A NETWORK_STATS_%s -o %s -s %s" %
                             ("eth1", "eth1", self.address['network'])])
+
             self.fw.append(["nat", "front",
                             "-A POSTROUTING -s %s -o %s -j SNAT --to-source %s" %
                             (self.address['network'], self.dev,
@@ -496,7 +504,10 @@ class CsIP:
         self.fw.append(["filter", "", "-A INPUT -d 225.0.0.50/32 -j ACCEPT"])
 
         self.fw.append(["filter", "", "-A INPUT -p icmp -j ACCEPT"])
+        self.fw.append(["filter", "", "-A INPUT -i lo -j ACCEPT"])
+
         self.fw.append(["filter", "", "-A INPUT -i eth0 -p tcp -m tcp --dport 3922 -m state --state NEW,ESTABLISHED -j ACCEPT"])
+        self.fw.append(["filter", "", "-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT"])
 
         self.fw.append(["filter", "", "-P INPUT DROP"])
         self.fw.append(["filter", "", "-P FORWARD DROP"])
@@ -536,7 +547,7 @@ class CsIP:
             if self.address["source_nat"]:
                 vpccidr = cmdline.get_vpccidr()
                 self.fw.append(
-                    ["filter", "", "-A FORWARD -s %s ! -d %s -j ACCEPT" % (vpccidr, vpccidr)])
+                    ["filter", 3, "-A FORWARD -s %s ! -d %s -j ACCEPT" % (vpccidr, vpccidr)])
                 self.fw.append(
                     ["nat", "", "-A POSTROUTING -j SNAT -o %s --to-source %s" % (self.dev, self.address['public_ip'])])
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9ab67620/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
index 39f184b..3ee5174 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
@@ -133,18 +133,21 @@ class CsNetfilters(object):
 
     def compare(self, list):
         """ Compare reality with what is needed """
-        for c in self.chain.get("filter"):
-            # Ensure all inbound/outbound chains have a default drop rule
-            if c.startswith("ACL_INBOUND") or c.startswith("ACL_OUTBOUND"):
-                list.append(["filter", "", "-A %s -j DROP" % c])
         # PASS 1:  Ensure all chains are present
         for fw in list:
             new_rule = CsNetfilter()
             new_rule.parse(fw[2])
             new_rule.set_table(fw[0])
             self.add_chain(new_rule)
+
+        ruleSet = set()
         # PASS 2: Create rules
         for fw in list:
+            tupledFw = tuple(fw)
+            if tupledFw in ruleSet :
+                logging.debug("Already processed : %s", tupledFw)
+                continue
+
             new_rule = CsNetfilter()
             new_rule.parse(fw[2])
             new_rule.set_table(fw[0])
@@ -165,12 +168,13 @@ class CsNetfilters(object):
                     cpy = cpy.replace('-A', '-I')
                 if isinstance(fw[1], int):
                     # if the rule is for ACLs, we want to insert them in order, right before the DROP all
-                    if rule_chain.startswith("ACL_INBOUND") or rule_chain.startswith("ACL_OUTBOUND"):
+                    if rule_chain.startswith("ACL_INBOUND"):
                         rule_count = self.chain.get_count(rule_chain)
                         cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), rule_count))
                     else:
                         cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), fw[1]))
                 CsHelper.execute("iptables -t %s %s" % (new_rule.get_table(), cpy))
+                ruleSet.add(tupledFw)
                 self.chain.add_rule(rule_chain)
         self.del_standard()
         self.get_unseen()


[28/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/wix-cloudstack-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/wix-cloudstack-maven-plugin/pom.xml b/tools/wix-cloudstack-maven-plugin/pom.xml
index deb4284..2638fec 100644
--- a/tools/wix-cloudstack-maven-plugin/pom.xml
+++ b/tools/wix-cloudstack-maven-plugin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/usage/pom.xml
----------------------------------------------------------------------
diff --git a/usage/pom.xml b/usage/pom.xml
index dd80e82..bd1b95e 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/utils/pom.xml
----------------------------------------------------------------------
diff --git a/utils/pom.xml b/utils/pom.xml
index 206eb18..2c8252c 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/vmware-base/pom.xml
----------------------------------------------------------------------
diff --git a/vmware-base/pom.xml b/vmware-base/pom.xml
index e18dc8e..9c6a7ea 100644
--- a/vmware-base/pom.xml
+++ b/vmware-base/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>


[34/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1612 from shapeblue/package-marvin-tests

packaging: Marvin and integration-tests packagesThis introduces two new cloudstack packages: marvin and integration-tests.
The two packages will make it easier for CI systems to install Marvin for a
specific cloudstack release/build and run integration tests that are specific
for that version/build.

Since Marvin may have its own dependencies, we're bundling the Marvin source tarball and installing it with pip in the post-installation script/phase.

This also fixed a build issue with using juniper-api maven repo.

/cc @swill @PaulAngus @jburwell @wido @bvbharat

* pr/1612:
  server: give more memory to tests
  packaging: Marvin and integration-tests packages

Signed-off-by: Rajani Karuturi <ra...@accelerite.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 9127af61e4ce770c4d015bef7f20b8e50847bec7
Parents: adaf410 e5750b3
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Fri Aug 5 11:55:48 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Fri Aug 5 11:55:48 2016 +0530

----------------------------------------------------------------------
 client/pom.xml                              |  1 +
 debian/cloudstack-integration-tests.install | 18 ++++++++
 debian/cloudstack-marvin.install            | 18 ++++++++
 debian/cloudstack-marvin.postinst           | 23 +++++++++++
 debian/control                              | 10 +++++
 debian/rules                                | 10 ++++-
 packaging/centos63/cloud.spec               | 52 ++++++++++++++++++++++--
 packaging/centos7/cloud.spec                | 46 ++++++++++++++++++++-
 pom.xml                                     |  7 ++++
 server/pom.xml                              |  2 +-
 tools/marvin/pom.xml                        |  4 +-
 11 files changed, 182 insertions(+), 9 deletions(-)
----------------------------------------------------------------------



[20/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Revert "Merge pull request #1594 from nvazquez/vmnetworkmapissue"

This reverts commit 9be93c6e9022f35a2cd3dab6a099d69a77dd72ff, reversing
changes made to 8d45d711bff631efb45954631c123dcb2beffb3c.


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 46a6530e7059aded3c061c2609a15c947d9a75d3
Parents: 9be93c6
Author: Will Stevens <wi...@gmail.com>
Authored: Thu Jul 21 11:04:10 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Thu Jul 21 11:04:10 2016 -0400

----------------------------------------------------------------------
 .../com/cloud/vm/VirtualMachineManagerImpl.java | 16 +++++++---------
 server/src/com/cloud/vm/UserVmManagerImpl.java  | 20 --------------------
 2 files changed, 7 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/46a6530e/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index a1cf766..9523b92 100644
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -1428,15 +1428,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         advanceStop(vm, cleanUpEvenIfUnableToStop);
     }
 
-    /**
-     * Send StopCommand to stop vm.<br/>
-     * <strong>Not releasing network resources until expunge command is sent</strong>
-     * @param vm virtual machine
-     * @param cleanUpEvenIfUnableToStop if true -> cleanup even if vm cannot be stopped. if false -> not cleaning up if vm cannot be stopped.
-     * @throws AgentUnavailableException
-     * @throws OperationTimedoutException
-     * @throws ConcurrentOperationException
-     */
     private void advanceStop(final VMInstanceVO vm, final boolean cleanUpEvenIfUnableToStop) throws AgentUnavailableException, OperationTimedoutException,
     ConcurrentOperationException {
         final State state = vm.getState();
@@ -1586,6 +1577,13 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         }
 
         try {
+            _networkMgr.release(profile, cleanUpEvenIfUnableToStop);
+            s_logger.debug("Successfully released network resources for the vm " + vm);
+        } catch (final Exception e) {
+            s_logger.warn("Unable to release some network resources.", e);
+        }
+
+        try {
             if (vm.getHypervisorType() != HypervisorType.BareMetal) {
                 volumeMgr.release(profile);
                 s_logger.debug("Successfully released storage resources for the vm " + vm);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/46a6530e/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 dd7e817..9eddf6d 100644
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -2046,9 +2046,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
             return false;
         }
         try {
-
-            releaseNetworkResourcesOnExpunge(vm.getId());
-
             List<VolumeVO> rootVol = _volsDao.findByInstanceAndType(vm.getId(), Volume.Type.ROOT);
             // expunge the vm
             _itMgr.advanceExpunge(vm.getUuid());
@@ -2089,23 +2086,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
         }
     }
 
-    /**
-     * Release network resources, it was done on vm stop previously.
-     * @param id vm id
-     * @throws ConcurrentOperationException
-     * @throws ResourceUnavailableException
-     */
-    private void releaseNetworkResourcesOnExpunge(long id) throws ConcurrentOperationException, ResourceUnavailableException {
-        final VMInstanceVO vmInstance = _vmDao.findById(id);
-        if (vmInstance != null){
-            final VirtualMachineProfile profile = new VirtualMachineProfileImpl(vmInstance);
-            _networkMgr.release(profile, false);
-        }
-        else {
-            s_logger.error("Couldn't find vm with id = " + id + ", unable to release network resources");
-        }
-    }
-
     private boolean cleanupVmResources(long vmId) {
         boolean success = true;
         // Remove vm from security groups


[07/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
packaging: Add db.X.driver=jdbc:mysql to db.properties on upgrade

This is required afther the upgrade to 4.9.0 and for convience we
add this to the configuration so our users do not have to.


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 343ea6098e1884df410484149ed71ad8f51f4ec3
Parents: 1f9bf93
Author: Wido den Hollander <wi...@widodh.nl>
Authored: Tue Jul 12 08:46:11 2016 +0200
Committer: Wido den Hollander <wi...@widodh.nl>
Committed: Tue Jul 12 10:13:23 2016 +0200

----------------------------------------------------------------------
 debian/cloudstack-management.postinst | 5 +++++
 packaging/centos63/cloud.spec         | 4 ++++
 packaging/centos7/cloud.spec          | 4 ++++
 3 files changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/343ea609/debian/cloudstack-management.postinst
----------------------------------------------------------------------
diff --git a/debian/cloudstack-management.postinst b/debian/cloudstack-management.postinst
index 145d1ea..e37813f 100644
--- a/debian/cloudstack-management.postinst
+++ b/debian/cloudstack-management.postinst
@@ -58,6 +58,11 @@ if [ "$1" = configure ]; then
     chmod 0640 /etc/cloudstack/management/db.properties
     chgrp cloud /etc/cloudstack/management/db.properties
     invoke-rc.d tomcat6 stop || true
+
+    # Add jdbc MySQL driver settings to db.properties if not present
+    grep "db.cloud.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.cloud.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+    grep "db.usage.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.usage.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+    grep "db.simulator.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.simulator.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
 fi
 
 #DEBHELPER#

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/343ea609/packaging/centos63/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index c267e8f..2858395 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -408,6 +408,10 @@ if [ "$1" == "1" ] ; then
     /sbin/chkconfig --level 345 cloudstack-management on > /dev/null 2>&1 || true
 fi
 
+grep "db.cloud.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.cloud.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+grep "db.usage.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.usage.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+grep "db.simulator.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.simulator.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
     echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in 
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/343ea609/packaging/centos7/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec
index b99d950d8..8d2ddc4 100644
--- a/packaging/centos7/cloud.spec
+++ b/packaging/centos7/cloud.spec
@@ -363,6 +363,10 @@ if [ "$1" == "1" ] ; then
     /usr/bin/systemctl on cloudstack-management > /dev/null 2>&1 || true
 fi
 
+grep "db.cloud.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.cloud.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+grep "db.usage.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.usage.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+grep "db.simulator.driver=jdbc:mysql" /etc/cloudstack/management/db.properties > /dev/null|| echo "db.simulator.driver=jdbc:mysql" >> /etc/cloudstack/management/db.properties
+
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
     echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/


[10/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.8 to master

* 4.8:
  CLOUDSTACK-9342: Site to Site VPN PFS not being set correctly


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 49df7f283c9c64e148deeabf3bd4ba995ff30aba
Parents: 1f9bf93 01758ee
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:07:09 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:07:09 2016 -0400

----------------------------------------------------------------------
 systemvm/patches/debian/config/opt/cloud/bin/configure.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/49df7f28/systemvm/patches/debian/config/opt/cloud/bin/configure.py
----------------------------------------------------------------------


[15/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1609 from pdube/network-acl-add-order

[CLOUDSTACK-9430] Added fix for adding/editing Network ACL rule orderingBUG: https://issues.apache.org/jira/browse/CLOUDSTACK-9430

The issue occurred because all of the ACL rules get inserted before the old ones. Then, the cleanup deletes the duplicate rows, and leaves any new rule in front of the old ones.

Here is an example with a simplified iptables view for ACL
Ex: adding a rule 4
before add:
1,2,3

during add:
1',2',3',4',1,2,3

after add:
4',1,2,3

After fix:
before add:
1,2,3

during add:
1,2,3,1',2',3',4'

after add:
1',2',3',4'

* pr/1609:
  Added fix for adding/editing Network ACL rule ordering

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: a566cde145391e370632449b5ee5069664c05bcc
Parents: bb9d94b 6dd6ef0
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:11:13 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:11:13 2016 -0400

----------------------------------------------------------------------
 .../debian/config/opt/cloud/bin/cs/CsNetfilter.py        | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[26/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/utils/pom.xml
----------------------------------------------------------------------
diff --git a/utils/pom.xml b/utils/pom.xml
index 206eb18..ea122dd 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/227ff388/vmware-base/pom.xml
----------------------------------------------------------------------
diff --git a/vmware-base/pom.xml b/vmware-base/pom.xml
index e18dc8e..cb6b439 100644
--- a/vmware-base/pom.xml
+++ b/vmware-base/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.9.0</version>
   </parent>
   <dependencies>
     <dependency>


[16/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1610 from wido/db-properties-mysql-driver

packaging: Add db.X.driver=jdbc:mysql to db.properties on upgradeThis is required afther the upgrade to 4.9.0 and for convience we
add this to the configuration so our users do not have to.

* pr/1610:
  packaging: Add db.X.driver=jdbc:mysql to db.properties on upgrade

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 54039f94971de56e745518276de930d578eaba26
Parents: a566cde 343ea60
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:12:02 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:12:03 2016 -0400

----------------------------------------------------------------------
 debian/cloudstack-management.postinst | 5 +++++
 packaging/centos63/cloud.spec         | 4 ++++
 packaging/centos7/cloud.spec          | 4 ++++
 3 files changed, 13 insertions(+)
----------------------------------------------------------------------



[23/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1613 from nvazquez/vmnetworkmapissue

CLOUDSTACK-9436: vm_network_map table cleanup, release network resources on expunge commandJIRA TICKET: https://issues.apache.org/jira/browse/CLOUDSTACK-9436

This PR replaces #1594

Due to error on `test/integration/smoke/test_vpc_redundant.py` it was found out that `vm_network_map` table should be less aggresive on vm stop

* pr/1613:
  CLOUDSTACK-9436: Release network resources on expunge command

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 0a0839ea2d01c1806534a4fab2fc4c384e650633
Parents: 46a6530 148e974
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 25 16:37:18 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 25 16:37:18 2016 -0400

----------------------------------------------------------------------
 server/src/com/cloud/vm/UserVmManagerImpl.java | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------



[13/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1601 from shapeblue/nio-aggressive-selector

CLOUDSTACK-9348: Reduce Nio selector wait timeThis reduced the Nio loop selector wait time, this way the selector will
check frequently (as much as 100ms per iteration) and handle any pending
connection/tasks. This would make reconnections very quick at the expense of
some CPU usage.

/cc @swill @kiwiflyer guys can you please apply this fix in your env and test if you're still able to produce any Nio related error b/w mgmt server(s) and kvm agent(s) not being able to connect quickly. Please also watch out for any increased CPU usage (there should not be any significant change), in which case we may increase the timeout from 100ms to 200-400ms.

* pr/1601:
  CLOUDSTACK-9348: Reduce Nio selector wait time

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: ea48e95bdd1641c752eb573fe448aac6478cecd1
Parents: a38279d 0381b7e
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:10:06 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:10:06 2016 -0400

----------------------------------------------------------------------
 utils/src/main/java/com/cloud/utils/nio/NioConnection.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[14/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1608 from myENA/upstream/context-cleanup

Cleanup RBD contexts after exceptions to prevent potential agent crashWe noticed that when an exception occurs within the cleanup loop inside
the deletePhysicalDisk routine that the previously allocated contexts
are not cleaned up.  This seemed to cause an eventual crash of the host
agent after multiple exceptions within the loop.

In addition to ensuring the contexts are always freed we also improved
the logging when exceptions do occur to include the actual return code
from the underlying library in deletePhysicalDisk and deleteSnapshot.

* pr/1608:
  improve logging readability
  Cleanup rbd contexts and improve exception logging

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: bb9d94bc64336f1fc34804716aeb150cc1b04dea
Parents: ea48e95 c8fce3f
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:10:36 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:10:37 2016 -0400

----------------------------------------------------------------------
 .../kvm/storage/KVMStorageProcessor.java        | 16 +++++++-
 .../kvm/storage/LibvirtStorageAdaptor.java      | 43 ++++++++++++--------
 2 files changed, 42 insertions(+), 17 deletions(-)
----------------------------------------------------------------------



[46/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
upgrade bouncy castle to version 1.54


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 04bd24632936b769790cff9d09b0fcb1105b45fb
Parents: d3e4551
Author: Daan Hoogland <da...@onecht.net>
Authored: Wed May 18 13:25:32 2016 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 18 15:30:38 2016 +0530

----------------------------------------------------------------------
 .../network/resource/NetscalerResource.java     | 342 +++++++------------
 pom.xml                                         |   2 +-
 .../cloudstack/network/lb/CertServiceImpl.java  | 104 +++---
 .../cloudstack/network/lb/CertServiceTest.java  |  31 +-
 .../cloud/utils/security/CertificateHelper.java |  52 +--
 5 files changed, 214 insertions(+), 317 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04bd2463/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
index 137aa61..461b267 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.network.resource;
 
+import java.io.IOException;
 import java.io.StringWriter;
 import java.security.cert.Certificate;
 import java.util.ArrayList;
@@ -27,9 +28,11 @@ import java.util.Map;
 
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.api.ApiConstants;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.log4j.Logger;
-import org.bouncycastle.openssl.PEMWriter;
+import org.bouncycastle.util.io.pem.PemObject;
+import org.bouncycastle.util.io.pem.PemWriter;
 
 import com.citrix.netscaler.nitro.exception.nitro_exception;
 import com.citrix.netscaler.nitro.resource.base.base_response;
@@ -75,11 +78,6 @@ import com.citrix.netscaler.nitro.util.filtervalue;
 import com.citrix.sdx.nitro.resource.config.mps.mps;
 import com.citrix.sdx.nitro.resource.config.ns.ns;
 import com.citrix.sdx.nitro.resource.config.xen.xen_nsvpx_image;
-import com.google.common.collect.Lists;
-import com.google.gson.Gson;
-
-import org.apache.cloudstack.api.ApiConstants;
-
 import com.cloud.agent.IAgentControl;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.Command;
@@ -127,6 +125,8 @@ import com.cloud.utils.exception.ExecutionException;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.utils.security.CertificateHelper;
 import com.cloud.utils.ssh.SshHelper;
+import com.google.common.collect.Lists;
+import com.google.gson.Gson;
 
 class NitroError {
     static final int NS_RESOURCE_EXISTS = 273;
@@ -151,13 +151,11 @@ public class NetscalerResource implements ServerResource {
     private String _privateInterface;
     private Integer _numRetries;
     private String _guid;
-    private boolean _inline;
     private boolean _isSdx;
     private boolean _cloudManaged;
     private String _deviceName;
     private String _publicIP;
     private String _publicIPNetmask;
-    private String _publicIPGateway;
     private String _publicIPVlan;
 
     private static final Logger s_logger = Logger.getLogger(NetscalerResource.class);
@@ -233,8 +231,6 @@ public class NetscalerResource implements ServerResource {
 
             _isSdx = _deviceName.equalsIgnoreCase("NetscalerSDXLoadBalancer");
 
-            _inline = Boolean.parseBoolean((String)params.get("inline"));
-
             if (((String)params.get("cloudmanaged")) != null) {
                 _cloudManaged = Boolean.parseBoolean((String)params.get("cloudmanaged"));
             }
@@ -251,7 +247,6 @@ public class NetscalerResource implements ServerResource {
             //if the the device is cloud stack provisioned then make it part of the public network
             if (_cloudManaged) {
                 _publicIP = (String)params.get("publicip");
-                _publicIPGateway = (String)params.get("publicipgateway");
                 _publicIPNetmask = (String)params.get("publicipnetmask");
                 _publicIPVlan = (String)params.get("publicipvlan");
                 if ("untagged".equalsIgnoreCase(_publicIPVlan)) {
@@ -686,20 +681,26 @@ public class NetscalerResource implements ServerResource {
                                     String previousCertKeyName = null;
 
                                     if (sslCert.getChain() != null) {
-                                        List<Certificate> chainList = CertificateHelper.parseChain(sslCert.getChain());
+                                        final List<Certificate> chainList = CertificateHelper.parseChain(sslCert.getChain());
                                         // go from ROOT to intermediate CAs
-                                        for (Certificate intermediateCert : Lists.reverse(chainList)) {
+                                        for (final Certificate intermediateCert : Lists.reverse(chainList)) {
 
-                                            String fingerPrint = CertificateHelper.generateFingerPrint(intermediateCert);
-                                            String intermediateCertKeyName = generateSslCertKeyName(fingerPrint);
-                                            String intermediateCertFileName = intermediateCertKeyName + ".pem";
+                                            final String fingerPrint = CertificateHelper.generateFingerPrint(intermediateCert);
+                                            final String intermediateCertKeyName = generateSslCertKeyName(fingerPrint);
+                                            final String intermediateCertFileName = intermediateCertKeyName + ".pem";
 
                                             if (!SSL.isSslCertKeyPresent(_netscalerService, intermediateCertKeyName)) {
-                                                intermediateCert.getEncoded();
-                                                StringWriter textWriter = new StringWriter();
-                                                PEMWriter pemWriter = new PEMWriter(textWriter);
-                                                pemWriter.writeObject(intermediateCert);
-                                                pemWriter.flush();
+                                                final PemObject pemObject = new PemObject(intermediateCert.getType(), intermediateCert.getEncoded());
+                                                final StringWriter textWriter = new StringWriter();
+                                                try (final PemWriter pemWriter = new PemWriter(textWriter);) {
+                                                    pemWriter.writeObject(pemObject);
+                                                    pemWriter.flush();
+                                                } catch (IOException e) {
+                                                    if (s_logger.isDebugEnabled())
+                                                    {
+                                                        s_logger.debug("couldn't write PEM to a string", e);
+                                                    } // else just close the certDataStream
+                                                }
 
                                                 SSL.uploadCert(_ip, _username, _password, intermediateCertFileName, textWriter.toString().getBytes());
                                                 SSL.createSslCertKey(_netscalerService, intermediateCertFileName, null, intermediateCertKeyName, null);
@@ -713,18 +714,24 @@ public class NetscalerResource implements ServerResource {
                                         }
                                     }
 
-                                    String certFilename = generateSslCertName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
-                                    String keyFilename = generateSslKeyName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
-                                    String certKeyName = generateSslCertKeyName(sslCert.getFingerprint());
+                                    final String certFilename = generateSslCertName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
+                                    final String keyFilename = generateSslKeyName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
+                                    final String certKeyName = generateSslCertKeyName(sslCert.getFingerprint());
 
-                                    ByteArrayOutputStream certDataStream = new ByteArrayOutputStream();
-                                    certDataStream.write(sslCert.getCert().getBytes());
+                                    try (final ByteArrayOutputStream certDataStream = new ByteArrayOutputStream();) {
+                                        certDataStream.write(sslCert.getCert().getBytes());
 
-                                    if (!SSL.isSslCertKeyPresent(_netscalerService, certKeyName)) {
+                                        if (!SSL.isSslCertKeyPresent(_netscalerService, certKeyName)) {
 
-                                        SSL.uploadCert(_ip, _username, _password, certFilename, certDataStream.toByteArray());
-                                        SSL.uploadKey(_ip, _username, _password, keyFilename, sslCert.getKey().getBytes());
-                                        SSL.createSslCertKey(_netscalerService, certFilename, keyFilename, certKeyName, sslCert.getPassword());
+                                            SSL.uploadCert(_ip, _username, _password, certFilename, certDataStream.toByteArray());
+                                            SSL.uploadKey(_ip, _username, _password, keyFilename, sslCert.getKey().getBytes());
+                                            SSL.createSslCertKey(_netscalerService, certFilename, keyFilename, certKeyName, sslCert.getPassword());
+                                        }
+                                    } catch (IOException e) {
+                                        if (s_logger.isDebugEnabled())
+                                        {
+                                            s_logger.debug("couldn't open buffer for certificate", e);
+                                        } // else just close the certDataStream
                                     }
 
                                     if (previousCertKeyName != null && !SSL.certLinkExists(_netscalerService, certKeyName, previousCertKeyName)) {
@@ -1360,61 +1367,6 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        // enable 'gslbvserver' object representing a globally load balanced service
-        private static void enableVirtualServer(nitro_service client, String vserverName) throws ExecutionException {
-            try {
-                gslbvserver vserver = getVserverObject(client, vserverName);
-                if (vserver != null) {
-                    gslbvserver.enable(client, vserver);
-                }
-            } catch (Exception e) {
-                String errMsg = "Failed to enable GSLB virtual server: " + vserverName + " due to " + e.getMessage();
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(errMsg);
-                }
-                throw new ExecutionException(errMsg);
-            }
-        }
-
-        // disable 'gslbvserver' object representing a globally load balanced service
-        private static void disableVirtualServer(nitro_service client, String vserverName) throws ExecutionException {
-            try {
-                gslbvserver vserver = getVserverObject(client, vserverName);
-                if (vserver != null) {
-                    gslbvserver.disable(client, vserver);
-                }
-            } catch (Exception e) {
-                String errMsg = "Failed to disable GSLB virtual server: " + vserverName + " due to " + e.getMessage();
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(errMsg);
-                }
-                throw new ExecutionException(errMsg);
-            }
-        }
-
-        // update 'gslbvserver' object representing a globally load balanced service
-        private static void updateVirtualServer(nitro_service client, String vserverName, String lbMethod, String persistenceType, String serviceType)
-                throws ExecutionException {
-            try {
-                gslbvserver vServer = getVserverObject(client, vserverName);
-                if (vServer != null) {
-                    vServer.set_lbmethod(lbMethod);
-                    vServer.set_persistencetype(persistenceType);
-                    vServer.set_servicetype(serviceType);
-                    gslbvserver.update(client, vServer);
-                    if (s_logger.isDebugEnabled()) {
-                        s_logger.debug("Successfully updated GSLB virtual server: " + vserverName);
-                    }
-                }
-            } catch (Exception e) {
-                String errMsg = "Failed to update GSLB virtual server: " + vserverName + " due to " + e.getMessage();
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(errMsg);
-                }
-                throw new ExecutionException(errMsg);
-            }
-        }
-
         // create, delete, update, get the GSLB services
         private static void createService(nitro_service client, String serviceName, String serviceType, String serviceIp, String servicePort, String siteName)
                 throws ExecutionException {
@@ -1488,32 +1440,6 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void updateService(nitro_service client, String serviceName, String serviceType, String publicIp, String publicPort, String siteName)
-                throws ExecutionException {
-            try {
-                gslbservice service;
-                service = getServiceObject(client, serviceName);
-
-                if (service != null) {
-                    service.set_sitename(siteName);
-                    service.set_publicip(publicIp);
-                    service.set_publicport(Integer.getInteger(publicPort));
-                    service.set_servicename(serviceName);
-                    service.set_servicetype(serviceType);
-                    gslbservice.update(client, service);
-                    if (s_logger.isDebugEnabled()) {
-                        s_logger.debug("Successfully updated service: " + serviceName + " at site: " + siteName);
-                    }
-                }
-            } catch (Exception e) {
-                String errMsg = "Failed to update service: " + serviceName + " at site: " + siteName + "due to " + e.getMessage();
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(errMsg);
-                }
-                throw new ExecutionException(errMsg);
-            }
-        }
-
         private static void createVserverServiceBinding(nitro_service client, String serviceName, String vserverName, long weight) throws ExecutionException {
             String errMsg;
             try {
@@ -1839,25 +1765,6 @@ public class NetscalerResource implements ServerResource {
 
         }
 
-        public static void updateCertKey(nitro_service ns, String certKeyName, String cert, String key, String password) throws ExecutionException {
-            try {
-                sslcertkey certkey = sslcertkey.get(ns, certKeyName);
-                if (cert != null)
-                    certkey.set_cert(cert);
-                if (key != null)
-                    certkey.set_key(cert);
-                if (password != null)
-                    certkey.set_passplain(cert);
-
-                sslcertkey.change(ns, certkey);
-
-            } catch (nitro_exception e) {
-                throw new ExecutionException("Failed to update ssl on load balancer due to " + e.getMessage());
-            } catch (Exception e) {
-                throw new ExecutionException("Failed to update ssl on load balancer due to " + e.getMessage());
-            }
-        }
-
         private static void bindCertKeyToVserver(nitro_service ns, String certKeyName, String vserver) throws ExecutionException {
             s_logger.debug("Adding cert to netscaler");
 
@@ -1920,24 +1827,6 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        public static boolean checkSslFeature(nitro_service ns) throws ExecutionException {
-            try {
-                String[] features = ns.get_enabled_features();
-                if (features != null) {
-                    for (String feature : features) {
-                        if (feature.equalsIgnoreCase("SSL")) {
-                            return true;
-                        }
-                    }
-                }
-                return false;
-            } catch (nitro_exception e) {
-                throw new ExecutionException("Failed to check ssl feature on load balancer due to " + e.getMessage());
-            } catch (Exception e) {
-                throw new ExecutionException("Failed to check ssl feature on load balancer due to " + e.getMessage());
-            }
-        }
-
         public static boolean certLinkExists(nitro_service ns, String userCertName, String caCertName) throws ExecutionException {
             try {
                 // check if there is a link from userCertName to caCertName
@@ -2954,7 +2843,6 @@ public class NetscalerResource implements ServerResource {
         }
     }
 
-    @SuppressWarnings("static-access")
     private synchronized boolean createAutoScaleConfig(LoadBalancerTO loadBalancerTO) throws ExecutionException, Exception {
 
         String srcIp = loadBalancerTO.getSrcIp();
@@ -3010,7 +2898,6 @@ public class NetscalerResource implements ServerResource {
         return true;
     }
 
-    @SuppressWarnings("static-access")
     private synchronized boolean removeAutoScaleConfig(LoadBalancerTO loadBalancerTO) throws Exception, ExecutionException {
         String srcIp = loadBalancerTO.getSrcIp();
         int srcPort = loadBalancerTO.getSrcPort();
@@ -3052,7 +2939,6 @@ public class NetscalerResource implements ServerResource {
         return true;
     }
 
-    @SuppressWarnings("static-access")
     private synchronized boolean enableAutoScaleConfig(LoadBalancerTO loadBalancerTO, boolean isCleanUp) throws Exception {
         String vmGroupIdentifier = generateAutoScaleVmGroupIdentifier(loadBalancerTO);
         String srcIp = loadBalancerTO.getSrcIp();
@@ -3230,106 +3116,109 @@ public class NetscalerResource implements ServerResource {
                     long threshold = conditionTO.getThreshold();
 
                     StringBuilder conditionExpression = new StringBuilder();
-                    Formatter formatter = new Formatter(conditionExpression, Locale.US);
+                    try(Formatter formatter = new Formatter(conditionExpression, Locale.US);) {
 
-                    if (counterTO.getSource().equals("snmp")) {
-                        counterName = generateSnmpMetricName(counterName);
-                        if (snmpMetrics.size() == 0) {
+                        if (counterTO.getSource().equals("snmp")) {
+                            counterName = generateSnmpMetricName(counterName);
+                            if (snmpMetrics.size() == 0) {
                             // Create Metric Table
                             //add lb metricTable lb_metric_table
-                            lbmetrictable metricTable = new lbmetrictable();
-                            try {
-                                metricTable.set_metrictable(mtName);
-                                lbmetrictable.add(_netscalerService, metricTable);
-                            } catch (Exception e) {
+                                lbmetrictable metricTable = new lbmetrictable();
+                                try {
+                                    metricTable.set_metrictable(mtName);
+                                    lbmetrictable.add(_netscalerService, metricTable);
+                                } catch (Exception e) {
                                 // Ignore Exception on cleanup
-                                if (!isCleanUp)
-                                    throw e;
-                            }
+                                    if (!isCleanUp)
+                                        throw e;
+                                }
 
                             // Create Monitor
                             // add lb monitor lb_metric_table_mon LOAD -destPort 161 -snmpCommunity public -metricTable
                             // lb_metric_table -interval <policy_interval == 80% >
-                            lbmonitor monitor = new lbmonitor();
-                            try {
-                                monitor.set_monitorname(monitorName);
-                                monitor.set_type("LOAD");
-                                monitor.set_destport(snmpPort);
-                                monitor.set_snmpcommunity(snmpCommunity);
-                                monitor.set_metrictable(mtName);
-                                monitor.set_interval((int)(interval * 0.8));
-                                lbmonitor.add(_netscalerService, monitor);
-                            } catch (Exception e) {
+                                lbmonitor monitor = new lbmonitor();
+                                try {
+                                    monitor.set_monitorname(monitorName);
+                                    monitor.set_type("LOAD");
+                                    monitor.set_destport(snmpPort);
+                                    monitor.set_snmpcommunity(snmpCommunity);
+                                    monitor.set_metrictable(mtName);
+                                    monitor.set_interval((int)(interval * 0.8));
+                                    lbmonitor.add(_netscalerService, monitor);
+                                } catch (Exception e) {
                                 // Ignore Exception on cleanup
-                                if (!isCleanUp)
-                                    throw e;
-                            }
+                                    if (!isCleanUp)
+                                        throw e;
+                                }
 
                             // Bind monitor to servicegroup.
                             // bind lb monitor lb_metric_table_mon lb_autoscaleGroup -passive
-                            servicegroup_lbmonitor_binding servicegroup_monitor_binding = new servicegroup_lbmonitor_binding();
-                            try {
-                                servicegroup_monitor_binding.set_servicegroupname(serviceGroupName);
-                                servicegroup_monitor_binding.set_monitor_name(monitorName);
+                                servicegroup_lbmonitor_binding servicegroup_monitor_binding = new servicegroup_lbmonitor_binding();
+                                try {
+                                    servicegroup_monitor_binding.set_servicegroupname(serviceGroupName);
+                                    servicegroup_monitor_binding.set_monitor_name(monitorName);
 
                                 // Use the monitor for autoscaling purpose only.
                                 // Don't mark service members down when metric breaches threshold
-                                servicegroup_monitor_binding.set_passive(true);
+                                    servicegroup_monitor_binding.set_passive(true);
 
-                                servicegroup_lbmonitor_binding.add(_netscalerService, servicegroup_monitor_binding);
-                            } catch (Exception e) {
+                                    servicegroup_lbmonitor_binding.add(_netscalerService, servicegroup_monitor_binding);
+                                } catch (Exception e) {
                                 // Ignore Exception on cleanup
-                                if (!isCleanUp)
-                                    throw e;
+                                    if (!isCleanUp)
+                                        throw e;
+                                }
                             }
-                        }
 
-                        boolean newMetric = !snmpMetrics.containsKey(counterName);
-                        if (newMetric) {
-                            snmpMetrics.put(counterName, snmpCounterNumber++);
-                        }
+                            boolean newMetric = !snmpMetrics.containsKey(counterName);
+                            if (newMetric) {
+                                snmpMetrics.put(counterName, snmpCounterNumber++);
+                            }
 
-                        if (newMetric) {
+                            if (newMetric) {
                             // bind lb metricTable lb_metric_table mem 1.3.6.1.4.1.2021.11.9.0
-                            String counterOid = counterTO.getValue();
-                            lbmetrictable_metric_binding metrictable_metric_binding = new lbmetrictable_metric_binding();
-                            try {
-                                metrictable_metric_binding.set_metrictable(mtName);
-                                metrictable_metric_binding.set_metric(counterName);
-                                metrictable_metric_binding.set_Snmpoid(counterOid);
-                                lbmetrictable_metric_binding.add(_netscalerService, metrictable_metric_binding);
-                            } catch (Exception e) {
+                                String counterOid = counterTO.getValue();
+                                lbmetrictable_metric_binding metrictable_metric_binding = new lbmetrictable_metric_binding();
+                                try {
+                                    metrictable_metric_binding.set_metrictable(mtName);
+                                    metrictable_metric_binding.set_metric(counterName);
+                                    metrictable_metric_binding.set_Snmpoid(counterOid);
+                                    lbmetrictable_metric_binding.add(_netscalerService, metrictable_metric_binding);
+                                } catch (Exception e) {
                                 // Ignore Exception on cleanup
-                                if (!isCleanUp)
-                                    throw e;
-                            }
+                                    if (!isCleanUp)
+                                        throw e;
+                                }
 
-                            // bind lb monitor lb_metric_table_mon -metric cpu -metricThreshold 1
-                            lbmonitor_metric_binding monitor_metric_binding = new lbmonitor_metric_binding();
-                            ;
-                            try {
-                                monitor_metric_binding.set_monitorname(monitorName);
-                                monitor_metric_binding.set_metric(counterName);
-                                /*
-                                 * Setting it to max to make sure traffic is not affected due to 'LOAD' monitoring.
-                                 * For Ex. if CPU is tracked and CPU is greater than 80, it is still < than Integer.MAX_VALUE
-                                 * so traffic will continue to flow.
-                                 */
-                                monitor_metric_binding.set_metricthreshold(Integer.MAX_VALUE);
-                                lbmonitor_metric_binding.add(_netscalerService, monitor_metric_binding);
-                            } catch (Exception e) {
-                                // Ignore Exception on cleanup
-                                if (!isCleanUp)
-                                    throw e;
+                                // bind lb monitor lb_metric_table_mon -metric cpu -metricThreshold 1
+                                lbmonitor_metric_binding monitor_metric_binding = new lbmonitor_metric_binding();
+
+                                try {
+                                    monitor_metric_binding.set_monitorname(monitorName);
+                                    monitor_metric_binding.set_metric(counterName);
+                                    /*
+                                     * Setting it to max to make sure traffic is not affected due to 'LOAD' monitoring.
+                                     * For Ex. if CPU is tracked and CPU is greater than 80, it is still < than Integer.MAX_VALUE
+                                     * so traffic will continue to flow.
+                                     */
+                                    monitor_metric_binding.set_metricthreshold(Integer.MAX_VALUE);
+                                    lbmonitor_metric_binding.add(_netscalerService, monitor_metric_binding);
+                                } catch (Exception e) {
+                                    // Ignore Exception on cleanup
+                                    if (!isCleanUp)
+                                        throw e;
+                                }
                             }
+                            // SYS.VSERVER("abcd").SNMP_TABLE(0).AVERAGE_VALUE.GT(80)
+                            int counterIndex = snmpMetrics.get(counterName); // TODO: temporary fix. later on counter name
+                            // will be added as a param to SNMP_TABLE.
+                            formatter.format("SYS.VSERVER(\"%s\").SNMP_TABLE(%d).AVERAGE_VALUE.%s(%d)", nsVirtualServerName, counterIndex, operator, threshold);
+                        } else if (counterTO.getSource().equals("netscaler")) {
+                            //SYS.VSERVER("abcd").RESPTIME.GT(10)
+                            formatter.format("SYS.VSERVER(\"%s\").%s.%s(%d)", nsVirtualServerName, counterTO.getValue(), operator, threshold);
                         }
-                        // SYS.VSERVER("abcd").SNMP_TABLE(0).AVERAGE_VALUE.GT(80)
-                        int counterIndex = snmpMetrics.get(counterName); // TODO: temporary fix. later on counter name
-                        // will be added as a param to SNMP_TABLE.
-                        formatter.format("SYS.VSERVER(\"%s\").SNMP_TABLE(%d).AVERAGE_VALUE.%s(%d)", nsVirtualServerName, counterIndex, operator, threshold);
-                    } else if (counterTO.getSource().equals("netscaler")) {
-                        //SYS.VSERVER("abcd").RESPTIME.GT(10)
-                        formatter.format("SYS.VSERVER(\"%s\").%s.%s(%d)", nsVirtualServerName, counterTO.getValue(), operator, threshold);
+                    } finally {
+                        // closing formatter
                     }
                     if (policyExpression.length() != 0) {
                         policyExpression += " && ";
@@ -3371,7 +3260,6 @@ public class NetscalerResource implements ServerResource {
         return true;
     }
 
-    @SuppressWarnings("static-access")
     private synchronized boolean disableAutoScaleConfig(LoadBalancerTO loadBalancerTO, boolean isCleanUp) throws Exception {
 
         String vmGroupIdentifier = generateAutoScaleVmGroupIdentifier(loadBalancerTO);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04bd2463/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2c0bef4..436e87d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,7 +70,7 @@
     <!-- do not forget to also upgrade hamcrest library with junit -->
     <cs.junit.version>4.12</cs.junit.version>
     <cs.hamcrest.version>1.3</cs.hamcrest.version>
-    <cs.bcprov.version>1.46</cs.bcprov.version>
+    <cs.bcprov.version>1.54</cs.bcprov.version>
     <cs.jsch.version>0.1.53</cs.jsch.version>
     <cs.jpa.version>2.1.1</cs.jpa.version>
     <cs.jasypt.version>1.9.2</cs.jasypt.version>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04bd2463/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
index 8315bee..8e35441 100644
--- a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
+++ b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
@@ -16,15 +16,15 @@
 // under the License.
 package org.apache.cloudstack.network.lb;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.StringReader;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
-import java.security.KeyPair;
+import java.security.KeyFactory;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
-import java.security.Principal;
 import java.security.PrivateKey;
 import java.security.PublicKey;
 import java.security.SecureRandom;
@@ -34,11 +34,15 @@ import java.security.cert.CertPathBuilderException;
 import java.security.cert.CertStore;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateEncodingException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
 import java.security.cert.CollectionCertStoreParameters;
 import java.security.cert.PKIXBuilderParameters;
 import java.security.cert.TrustAnchor;
 import java.security.cert.X509CertSelector;
 import java.security.cert.X509Certificate;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.PKCS8EncodedKeySpec;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -60,11 +64,11 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.commons.io.IOUtils;
 import org.apache.log4j.Logger;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.bouncycastle.openssl.PEMReader;
-import org.bouncycastle.openssl.PasswordFinder;
+import org.bouncycastle.util.io.pem.PemObject;
+import org.bouncycastle.util.io.pem.PemReader;
 
-import com.cloud.domain.dao.DomainDao;
 import com.cloud.domain.DomainVO;
+import com.cloud.domain.dao.DomainDao;
 import com.cloud.event.ActionEvent;
 import com.cloud.event.EventTypes;
 import com.cloud.exception.InvalidParameterValueException;
@@ -83,6 +87,7 @@ import com.cloud.user.dao.AccountDao;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.EntityManager;
 import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.security.CertificateHelper;
 
 @Local(value = {CertService.class})
 public class CertServiceImpl implements CertService {
@@ -278,13 +283,13 @@ public class CertServiceImpl implements CertService {
 
         try {
             cert = parseCertificate(certInput);
-            key = parsePrivateKey(keyInput, password);
+            key = parsePrivateKey(keyInput);
 
             if (chainInput != null) {
-                chain = parseChain(chainInput);
+                chain = CertificateHelper.parseChain(chainInput);
             }
 
-        } catch (IOException e) {
+        } catch (final IOException | CertificateException e) {
             throw new IllegalArgumentException("Parsing certificate/key failed: " + e.getMessage(), e);
         }
 
@@ -400,8 +405,8 @@ public class CertServiceImpl implements CertService {
 
             X509Certificate xCert = (X509Certificate)c;
 
-            Principal subject = xCert.getSubjectDN();
-            Principal issuer = xCert.getIssuerDN();
+            xCert.getSubjectDN();
+            xCert.getIssuerDN();
 
            anchors.add(new TrustAnchor(xCert, null));
         }
@@ -429,60 +434,42 @@ public class CertServiceImpl implements CertService {
 
     }
 
-    public PrivateKey parsePrivateKey(String key, String password) throws IOException {
-
-        PasswordFinder pGet = null;
-
-        if (password != null)
-            pGet = new KeyPassword(password.toCharArray());
-
-        PEMReader privateKey = new PEMReader(new StringReader(key), pGet);
-        Object obj = null;
-        try {
-            obj = privateKey.readObject();
-        } finally {
-            IOUtils.closeQuietly(privateKey);
-        }
-
-        try {
-
-            if (obj instanceof KeyPair)
-                return ((KeyPair)obj).getPrivate();
-
-            return (PrivateKey)obj;
-
-        } catch (Exception e) {
-            throw new IOException("Invalid Key format or invalid password.", e);
+    public PrivateKey parsePrivateKey(final String key) throws IOException {
+        try (final PemReader pemReader = new PemReader(new StringReader(key));) {
+            final PemObject pemObject = pemReader.readPemObject();
+            final byte[] content = pemObject.getContent();
+            final PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(content);
+            final KeyFactory factory = KeyFactory.getInstance("RSA", "BC");
+            return factory.generatePrivate(privKeySpec);
+        } catch (NoSuchAlgorithmException | NoSuchProviderException e) {
+            throw new IOException("No encryption provider available.", e);
+        } catch (final InvalidKeySpecException e) {
+            throw new IOException("Invalid Key format.", e);
         }
     }
 
     public Certificate parseCertificate(String cert) {
-        PEMReader certPem = new PEMReader(new StringReader(cert));
+        final PemReader certPem = new PemReader(new StringReader(cert));
         try {
-            return (Certificate)certPem.readObject();
-        } catch (Exception e) {
+            return readCertificateFromPemObject(certPem.readPemObject());
+        } catch (final Exception e) {
             throw new InvalidParameterValueException("Invalid Certificate format. Expected X509 certificate. Failed due to " + e.getMessage());
         } finally {
             IOUtils.closeQuietly(certPem);
         }
     }
 
-    public List<Certificate> parseChain(String chain) throws IOException {
+    private Certificate readCertificateFromPemObject(PemObject pemObject) throws CertificateException {
+        final ByteArrayInputStream bais = new ByteArrayInputStream(pemObject.getContent());
+        final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
 
-        List<Certificate> certs = new ArrayList<Certificate>();
-        PEMReader reader = new PEMReader(new StringReader(chain));
+        return certificateFactory.generateCertificate(bais);
+    }
 
-        Certificate crt = null;
 
-        while ((crt = (Certificate)reader.readObject()) != null) {
-            if (crt instanceof X509Certificate) {
-                certs.add(crt);
-            }
-        }
-        if (certs.size() == 0)
-            throw new IllegalArgumentException("Unable to decode certificate chain");
+    public List<Certificate> parseChain(String chain) throws IOException, CertificateException {
 
-        return certs;
+        return CertificateHelper.parseChain(chain);
     }
 
     String generateFingerPrint(Certificate cert) {
@@ -495,25 +482,31 @@ public class CertServiceImpl implements CertService {
             MessageDigest md = MessageDigest.getInstance("SHA-1");
             byte[] data = md.digest(cert.getEncoded());
 
-            for (int i = 0; i < data.length; i++) {
+            for (final byte element : data) {
                 if (buffer.length() > 0) {
                     buffer.append(":");
                 }
 
-                buffer.append(HEX[(0xF0 & data[i]) >>> 4]);
-                buffer.append(HEX[0x0F & data[i]]);
+                buffer.append(HEX[(0xF0 & element) >>> 4]);
+                buffer.append(HEX[0x0F & element]);
             }
 
-        } catch (CertificateEncodingException e) {
+        } catch (final CertificateEncodingException e) {
             throw new InvalidParameterValueException("Bad certificate encoding");
-        } catch (NoSuchAlgorithmException e) {
+        } catch (final NoSuchAlgorithmException e) {
             throw new InvalidParameterValueException("Bad certificate algorithm");
         }
 
         return buffer.toString();
     }
 
-    public static class KeyPassword implements PasswordFinder {
+    /**
+     *
+     * @deprecated this is only for bcprov-jdk16
+     *
+     */
+    @Deprecated
+    public static class KeyPassword {
 
         boolean passwordRequested = false;
         char[] password;
@@ -522,7 +515,6 @@ public class CertServiceImpl implements CertService {
             password = word;
         }
 
-        @Override
         public char[] getPassword() {
             passwordRequested = true;
             return password;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04bd2463/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
index 915f77d..f4ad334 100644
--- a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
+++ b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
@@ -27,13 +27,13 @@ import static org.mockito.Mockito.when;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Field;
+import java.net.URLDecoder;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
-import java.net.URLDecoder;
 
 import org.apache.cloudstack.api.command.user.loadbalancer.DeleteSslCertCmd;
-import com.cloud.user.User;
 import org.apache.cloudstack.api.command.user.loadbalancer.UploadSslCertCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.junit.After;
@@ -42,8 +42,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-import com.cloud.domain.dao.DomainDao;
 import com.cloud.domain.DomainVO;
+import com.cloud.domain.dao.DomainDao;
 import com.cloud.network.dao.LoadBalancerCertMapDao;
 import com.cloud.network.dao.LoadBalancerCertMapVO;
 import com.cloud.network.dao.LoadBalancerVO;
@@ -52,11 +52,11 @@ import com.cloud.network.dao.SslCertVO;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
 import com.cloud.user.AccountVO;
+import com.cloud.user.User;
 import com.cloud.user.UserVO;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.utils.db.EntityManager;
 import com.cloud.utils.db.TransactionLegacy;
-import java.nio.charset.Charset;
 
 public class CertServiceTest {
 
@@ -97,7 +97,7 @@ public class CertServiceTest {
     public void runUploadSslCertWithCAChain() throws Exception {
         Assume.assumeTrue(isOpenJdk() || isJCEInstalled());
 
-        TransactionLegacy txn = TransactionLegacy.open("runUploadSslCertWithCAChain");
+        TransactionLegacy.open("runUploadSslCertWithCAChain");
 
         String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.crt").getFile(),Charset.defaultCharset().name());
         String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_ca_signed.key").getFile(),Charset.defaultCharset().name());
@@ -143,13 +143,13 @@ public class CertServiceTest {
         certService.uploadSslCert(uploadCmd);
     }
 
-    @Test
+//    @Test
     /**
      * Given a Self-signed Certificate with encrypted key, upload should succeed
      */
     public void runUploadSslCertSelfSignedWithPassword() throws Exception {
 
-        TransactionLegacy txn = TransactionLegacy.open("runUploadSslCertSelfSignedWithPassword");
+        TransactionLegacy.open("runUploadSslCertSelfSignedWithPassword");
 
         String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.crt").getFile(),Charset.defaultCharset().name());
         String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed_with_pwd.key").getFile(),Charset.defaultCharset().name());
@@ -200,7 +200,7 @@ public class CertServiceTest {
      */
     public void runUploadSslCertSelfSignedNoPassword() throws Exception {
 
-        TransactionLegacy txn = TransactionLegacy.open("runUploadSslCertSelfSignedNoPassword");
+        TransactionLegacy.open("runUploadSslCertSelfSignedNoPassword");
 
         String certFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.crt").getFile(),Charset.defaultCharset().name());
         String keyFile = URLDecoder.decode(getClass().getResource("/certs/rsa_self_signed.key").getFile(),Charset.defaultCharset().name());
@@ -388,8 +388,9 @@ public class CertServiceTest {
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Given an encrypted private key with a bad password. Upload should fail.");
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains("please check password and data"));
+        } catch (final Exception e) {
+            assertTrue("Did not expect message: " + e.getMessage(),
+                    e.getMessage().contains("Error parsing certificate data Parsing certificate/key failed: Invalid Key format."));
         }
 
     }
@@ -475,8 +476,9 @@ public class CertServiceTest {
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Given a private key which has a different algorithm than the certificate, upload should fail");
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains("Public and private key have different algorithms"));
+        } catch (final Exception e) {
+            assertTrue("Did not expect message: " + e.getMessage(),
+                    e.getMessage().contains("Error parsing certificate data Parsing certificate/key failed: Invalid Key format."));
         }
     }
 
@@ -606,8 +608,9 @@ public class CertServiceTest {
         try {
             certService.uploadSslCert(uploadCmd);
             fail("Given a Certificate in bad format (Not PEM), upload should fail");
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains("Invalid certificate format"));
+        } catch (final Exception e) {
+            assertTrue("Did not expect message: " + e.getMessage(),
+                    e.getMessage().contains("Error parsing certificate data Invalid Certificate format. Expected X509 certificate. Failed due to null"));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04bd2463/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java b/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
index d43542f..2426500 100644
--- a/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
+++ b/utils/src/main/java/com/cloud/utils/security/CertificateHelper.java
@@ -38,13 +38,16 @@ import java.security.cert.X509Certificate;
 import java.security.spec.InvalidKeySpecException;
 import java.security.spec.PKCS8EncodedKeySpec;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
-import com.cloud.utils.exception.CloudRuntimeException;
 import org.apache.commons.codec.binary.Base64;
+import org.bouncycastle.util.io.pem.PemObject;
+import org.bouncycastle.util.io.pem.PemReader;
 
 import com.cloud.utils.Ternary;
-import org.bouncycastle.openssl.PEMReader;
+import com.cloud.utils.exception.CloudRuntimeException;
 
 public class CertificateHelper {
     public static byte[] buildAndSaveKeystore(String alias, String cert, String privateKey, String storePassword) throws KeyStoreException, CertificateException,
@@ -117,20 +120,31 @@ public class CertificateHelper {
         return kf.generatePrivate(keysp);
     }
 
-    public static List<Certificate> parseChain(String chain) throws IOException {
-
-        List<Certificate> certs = new ArrayList<Certificate>();
-        PEMReader reader = new PEMReader(new StringReader(chain));
-
-        Certificate crt = null;
-
-        while ((crt = (Certificate)reader.readObject()) != null) {
-            if (crt instanceof X509Certificate) {
-                certs.add(crt);
+    public static List<Certificate> parseChain(String chain) throws IOException, CertificateException {
+
+        final List<Certificate> certs = new ArrayList<Certificate>();
+        try(final PemReader pemReader = new PemReader(new StringReader(chain));)
+        {
+            Certificate cert = null;
+            final PemObject pemObject = pemReader.readPemObject();
+            final ByteArrayInputStream bais = new ByteArrayInputStream(pemObject.getContent());
+            final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
+
+            Collection<? extends Certificate> c = certificateFactory.generateCertificates(bais);
+            Iterator<? extends Certificate> i = c.iterator();
+            while (i.hasNext()) {
+                cert = i.next();
+                if (cert instanceof X509Certificate) {
+                    certs.add(cert);
+                }
             }
+            if (certs.size() == 0) {
+                throw new IllegalArgumentException("Unable to decode certificate chain");
+            }
+        }
+        finally {
+            // just close the pemReader
         }
-        if (certs.size() == 0)
-            throw new IllegalArgumentException("Unable to decode certificate chain");
 
         return certs;
     }
@@ -145,18 +159,18 @@ public class CertificateHelper {
             MessageDigest md = MessageDigest.getInstance("SHA-1");
             byte[] data = md.digest(cert.getEncoded());
 
-            for (int i = 0; i < data.length; i++) {
+            for (final byte element : data) {
                 if (buffer.length() > 0) {
                     buffer.append(":");
                 }
 
-                buffer.append(HEX[(0xF0 & data[i]) >>> 4]);
-                buffer.append(HEX[0x0F & data[i]]);
+                buffer.append(HEX[(0xF0 & element) >>> 4]);
+                buffer.append(HEX[0x0F & element]);
             }
 
-        } catch (CertificateEncodingException e) {
+        } catch (final CertificateEncodingException e) {
             throw new CloudRuntimeException("Bad certificate encoding");
-        } catch (NoSuchAlgorithmException e) {
+        } catch (final NoSuchAlgorithmException e) {
             throw new CloudRuntimeException("Bad certificate algorithm");
         }
 


[30/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
cloudstack: fix upgrade paths to 4.10.0

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 546a3f8884398391760b76ddcf02e6bc1f30d642
Parents: 62aa3b2
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Thu Aug 4 13:03:46 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Thu Aug 4 13:03:46 2016 +0530

----------------------------------------------------------------------
 .../cloud/upgrade/DatabaseUpgradeChecker.java   | 109 ++++++++++---------
 .../com/cloud/upgrade/dao/Upgrade490to4100.java |  66 +++++++++++
 setup/db/db/schema-490to4100-cleanup.sql        |  20 ++++
 setup/db/db/schema-490to4100.sql                |  20 ++++
 4 files changed, 162 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/546a3f88/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
index fc44c4f..20ba0b3 100644
--- a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
+++ b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
@@ -64,6 +64,7 @@ import com.cloud.upgrade.dao.Upgrade470to471;
 import com.cloud.upgrade.dao.Upgrade471to480;
 import com.cloud.upgrade.dao.Upgrade480to481;
 import com.cloud.upgrade.dao.Upgrade481to490;
+import com.cloud.upgrade.dao.Upgrade490to4100;
 import com.cloud.upgrade.dao.UpgradeSnapshot217to224;
 import com.cloud.upgrade.dao.UpgradeSnapshot223to224;
 import com.cloud.upgrade.dao.VersionDao;
@@ -111,7 +112,7 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.1.8", new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(),
             new Upgrade222to224(), new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(),
@@ -119,7 +120,7 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.1.9", new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(),
             new Upgrade222to224(), new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(),
@@ -127,167 +128,169 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.1", new DbUpgrade[] {new Upgrade221to222(), new UpgradeSnapshot223to224(), new Upgrade222to224(),
             new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
             new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
-            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.2", new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(),
             new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.3", new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(),
             new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.4", new DbUpgrade[] {new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(),
             new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
             new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.5", new DbUpgrade[] {new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
             new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.6", new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.7", new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.8", new DbUpgrade[] {new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(),
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30()
             , new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.9", new DbUpgrade[] {new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
             new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.10", new DbUpgrade[] {new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
-            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.12", new DbUpgrade[] {new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.13", new DbUpgrade[] {new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.14", new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.0", new DbUpgrade[] {new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.1", new DbUpgrade[] {new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.2", new DbUpgrade[] {new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.0.0", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.0.0", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.0.1", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.0.1", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.0.2", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.0.2", new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.1.0", new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.1.0", new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.1.1", new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.1.1", new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.2.0", new DbUpgrade[] {new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.2.0", new DbUpgrade[] {new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.2.1", new DbUpgrade[] {new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.2.1", new DbUpgrade[] {new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.3.0", new DbUpgrade[] {new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.3.0", new DbUpgrade[] {new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.3.1", new DbUpgrade[] {new Upgrade431to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.3.1", new DbUpgrade[] {new Upgrade431to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.3.2", new DbUpgrade[] {new Upgrade432to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.3.2", new DbUpgrade[] {new Upgrade432to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.4.0", new DbUpgrade[] {new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.4.0", new DbUpgrade[] {new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.4.1", new DbUpgrade[] {new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490() });
+        _upgradeMap.put("4.4.1", new DbUpgrade[] {new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100() });
 
-        _upgradeMap.put("4.4.2", new DbUpgrade[] {new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.4.2", new DbUpgrade[] {new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.4.3", new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.4.3", new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.4.4", new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.4.4", new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.5.0", new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.5.0", new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.5.1", new DbUpgrade[] {new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.5.1", new DbUpgrade[] {new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.5.2", new DbUpgrade[] {new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.5.2", new DbUpgrade[] {new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.5.3", new DbUpgrade[] {new Upgrade453to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.5.3", new DbUpgrade[] {new Upgrade453to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.6.0", new DbUpgrade[] {new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.6.0", new DbUpgrade[] {new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.6.1", new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.6.1", new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.6.2", new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.6.2", new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.7.0", new DbUpgrade[] {new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.7.0", new DbUpgrade[] {new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.7.1", new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.7.1", new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.7.2", new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.7.2", new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.8.0", new DbUpgrade[] {new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("4.8.0", new DbUpgrade[] {new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("4.8.1", new DbUpgrade[] {new Upgrade481to490()});
+        _upgradeMap.put("4.8.1", new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4100()});
+
+        _upgradeMap.put("4.9.0", new DbUpgrade[] {new Upgrade490to4100()});
 
         //CP Upgrades
         _upgradeMap.put("3.0.3", new DbUpgrade[] {new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
-            new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.4", new DbUpgrade[] {new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.5", new DbUpgrade[] {new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("3.0.6", new DbUpgrade[] {new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
-        _upgradeMap.put("3.0.7", new DbUpgrade[] {new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+        _upgradeMap.put("3.0.7", new DbUpgrade[] {new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.15", new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
             new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
 
         _upgradeMap.put("2.2.16", new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
             new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4100()});
     }
 
     protected void runScript(Connection conn, File file) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/546a3f88/engine/schema/src/com/cloud/upgrade/dao/Upgrade490to4100.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade490to4100.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade490to4100.java
new file mode 100644
index 0000000..b9976d1
--- /dev/null
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade490to4100.java
@@ -0,0 +1,66 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package com.cloud.upgrade.dao;
+
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+import org.apache.log4j.Logger;
+
+import java.io.File;
+import java.sql.Connection;
+
+public class Upgrade490to4100 implements DbUpgrade {
+    final static Logger LOG = Logger.getLogger(Upgrade490to4100.class);
+
+    @Override
+    public String[] getUpgradableVersionRange() {
+        return new String[] {"4.9.0", "4.10.0"};
+    }
+
+    @Override
+    public String getUpgradedVersion() {
+        return "4.10.0";
+    }
+
+    @Override
+    public boolean supportsRollingUpgrade() {
+        return false;
+    }
+
+    @Override
+    public File[] getPrepareScripts() {
+        String script = Script.findScript("", "db/schema-490to4100.sql");
+        if (script == null) {
+            throw new CloudRuntimeException("Unable to find db/schema-490to4100.sql");
+        }
+        return new File[] {new File(script)};
+    }
+
+    @Override
+    public void performDataMigration(Connection conn) {
+    }
+
+    @Override
+    public File[] getCleanupScripts() {
+        String script = Script.findScript("", "db/schema-490to4100-cleanup.sql");
+        if (script == null) {
+            throw new CloudRuntimeException("Unable to find db/schema-490to4100-cleanup.sql");
+        }
+        return new File[] {new File(script)};
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/546a3f88/setup/db/db/schema-490to4100-cleanup.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-490to4100-cleanup.sql b/setup/db/db/schema-490to4100-cleanup.sql
new file mode 100644
index 0000000..a12f635
--- /dev/null
+++ b/setup/db/db/schema-490to4100-cleanup.sql
@@ -0,0 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--   http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied.  See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+--;
+-- Schema upgrade cleanup from 4.9.0 to 4.10.0;
+--;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/546a3f88/setup/db/db/schema-490to4100.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-490to4100.sql b/setup/db/db/schema-490to4100.sql
new file mode 100644
index 0000000..48349a7
--- /dev/null
+++ b/setup/db/db/schema-490to4100.sql
@@ -0,0 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--   http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied.  See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+--;
+-- Schema upgrade from 4.9.0 to 4.10.0;
+--;


[09/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.7 to 4.8

* 4.7:
  CLOUDSTACK-9342: Site to Site VPN PFS not being set correctly


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 01758ee867f75f2fc7487793a892e86952dc843d
Parents: 142f07d adaf410
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:06:08 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:06:08 2016 -0400

----------------------------------------------------------------------
 systemvm/patches/debian/config/opt/cloud/bin/configure.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[37/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.8 to 4.9

* 4.8:
  server: give more memory to tests
  packaging: Marvin and integration-tests packages


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: c03d035c8bd97faf9eb751590d4d67625a9f07bd
Parents: 227ff38 a54a3b5
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Fri Aug 5 14:30:45 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Fri Aug 5 14:30:45 2016 +0530

----------------------------------------------------------------------
 client/pom.xml                              |  1 +
 debian/cloudstack-integration-tests.install | 18 ++++++++
 debian/cloudstack-marvin.install            | 18 ++++++++
 debian/cloudstack-marvin.postinst           | 23 +++++++++++
 debian/control                              | 10 +++++
 debian/rules                                | 10 ++++-
 packaging/centos63/cloud.spec               | 52 ++++++++++++++++++++++--
 packaging/centos7/cloud.spec                | 46 ++++++++++++++++++++-
 pom.xml                                     |  7 ++++
 server/pom.xml                              |  2 +-
 tools/marvin/pom.xml                        |  4 +-
 11 files changed, 182 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/client/pom.xml
----------------------------------------------------------------------
diff --cc client/pom.xml
index 58ade0c,eea635b..43bfd50
--- a/client/pom.xml
+++ b/client/pom.xml
@@@ -17,8 -17,9 +17,9 @@@
    <parent>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloudstack</artifactId>
 -    <version>4.8.1-SNAPSHOT</version>
 +    <version>4.9.0</version>
    </parent>
+ 
    <dependencies>
      <dependency>
        <groupId>org.apache.cloudstack</groupId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/debian/control
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/packaging/centos63/cloud.spec
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/packaging/centos7/cloud.spec
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 6cec46d,cc4c99c..d06f2c2
--- a/pom.xml
+++ b/pom.xml
@@@ -44,6 -44,17 +44,13 @@@
      <url>https://issues.apache.org/jira/browse/CLOUDSTACK</url>
    </issueManagement>
  
+   <repositories>
+     <repository>
+       <id>juniper-contrail</id>
+       <url>http://juniper.github.io/contrail-maven/snapshots</url>
+     </repository>
+   </repositories>
+ 
 -  <prerequisites>
 -    <maven>3.0.4</maven>
 -  </prerequisites>
 -
    <properties>
      <cs.jdk.version>1.7</cs.jdk.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/server/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c03d035c/tools/marvin/pom.xml
----------------------------------------------------------------------


[18/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1594 from nvazquez/vmnetworkmapissue

CLOUDSTACK-9407: vm_network_map table doesnt get cleaned up properlyJIRA TICKET: https://issues.apache.org/jira/browse/CLOUDSTACK-9407

### Introduction
It was found out that in production environments `vm_network_map` table entries were slowly growing. It was investigated how this entries were cleaned up.

### Behaviour
On vm creation, vm mappings are inserted on `vm_network_map`.
On vm stop, mappings are deleted from `vm_network_map` for vm, as a result of the release of its nics.

### Problem
If created vm is stopped from hypervisor side (at least on vSphere in which we tested it), when CloudStack realizes vm is stopped it doesn't clean up `vm_network_table,` and, as cleanup is made during vm stop, when vm is eventually destroyed and expunged it won't clean up their entries in that table.

### Proposed solution
We propose to move `vm_network_map` table cleanup to expunge command instead of stop command.

* pr/1594:
  CLOUDSTACK-9407: Refactor
  CLOUDSTACK-9407: Release network resources on expunge command

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 9be93c6e9022f35a2cd3dab6a099d69a77dd72ff
Parents: 8d45d71 c754a0c
Author: Will Stevens <wi...@gmail.com>
Authored: Tue Jul 19 08:18:16 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Tue Jul 19 08:18:18 2016 -0400

----------------------------------------------------------------------
 .../com/cloud/vm/VirtualMachineManagerImpl.java | 16 +++++++++-------
 server/src/com/cloud/vm/UserVmManagerImpl.java  | 20 ++++++++++++++++++++
 2 files changed, 29 insertions(+), 7 deletions(-)
----------------------------------------------------------------------



[38/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.9 to master

* 4.9:
  Updating pom.xml version numbers for release 4.9.0


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 3315eb5420e1b2cedf906aeb709740efc2f08cfd
Parents: b607a39 227ff38
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Fri Aug 5 14:38:09 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Fri Aug 5 14:38:09 2016 +0530

----------------------------------------------------------------------
 debian/changelog | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3315eb54/debian/changelog
----------------------------------------------------------------------
diff --cc debian/changelog
index fd26831,2240e5a..c85c4a5
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,4 -1,10 +1,10 @@@
 +cloudstack (4.10.0-SNAPSHOT) unstable; urgency=low
+ cloudstack (4.9.0) unstable; urgency=low
+ 
+   * Update the version to 4.9.0
+ 
+  -- the Apache CloudStack project <de...@cloudstack.apache.org>  Mon, 25 Jul 2016 16:56:03 -0400
+ 
 -cloudstack (4.9.0-SNAPSHOT) unstable; urgency=low
  
    [ Remi Bergsma ]
    * Update the version to 4.9.0.snapshot


[05/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
improve logging readability


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: c8fce3ff31c1437681f1c2b32864eb2d34b66be5
Parents: 4449144
Author: Aaron Hurt <ah...@ena.com>
Authored: Mon Jul 11 10:49:43 2016 -0500
Committer: Aaron Hurt <ah...@ena.com>
Committed: Mon Jul 11 12:05:06 2016 -0500

----------------------------------------------------------------------
 .../hypervisor/kvm/storage/KVMStorageProcessor.java      | 11 +++++++----
 .../hypervisor/kvm/storage/LibvirtStorageAdaptor.java    |  6 ++++++
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c8fce3ff/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
index 77cbdd3..29655d1 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
@@ -1329,7 +1329,8 @@ public class KVMStorageProcessor implements StorageProcessor {
                     s_logger.info("Snapshot " + snap_full_name + " successfully removed from " +
                             primaryPool.getType().toString() + "  pool.");
                 } catch (RbdException e) {
-                    s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+                    s_logger.error("Failed to remove snapshot " + snap_full_name + ", with exception: " + e.toString() +
+                        ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
                 } finally {
                     rbd.close(image);
                     r.ioCtxDestroy(io);
@@ -1340,13 +1341,15 @@ public class KVMStorageProcessor implements StorageProcessor {
             }
             return new Answer(cmd, true, "Snapshot " + snap_full_name + " removed successfully.");
         } catch (RadosException e) {
-            s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+            s_logger.error("Failed to remove snapshot " + snap_full_name + ", with exception: " + e.toString() +
+                ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
             return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
         } catch (RbdException e) {
-            s_logger.error(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
+            s_logger.error("Failed to remove snapshot " + snap_full_name + ", with exception: " + e.toString() +
+                ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
             return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
         } catch (Exception e) {
-            s_logger.error(e.toString());
+            s_logger.error("Failed to remove snapshot " + snap_full_name + ", with exception: " + e.toString());
             return new Answer(cmd, false, "Failed to remove snapshot " + snap_full_name);
         }
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c8fce3ff/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
index 5a35973..6e8ba30 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
@@ -878,6 +878,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
                     s_logger.info("Succesfully unprotected and removed any remaining snapshots (" + snaps.size() + ") of "
                         + pool.getSourceDir() + "/" + uuid + " Continuing to remove the RBD image");
                 } catch (RbdException e) {
+                    s_logger.error("Failed to remove snapshot with exception: " + e.toString() +
+                        ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
                     throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
                 } finally {
                     s_logger.debug("Closing image and destroying context");
@@ -885,8 +887,12 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
                     r.ioCtxDestroy(io);
                 }
             } catch (RadosException e) {
+                s_logger.error("Failed to remove snapshot with exception: " + e.toString() +
+                    ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
                 throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
             } catch (RbdException e) {
+                s_logger.error("Failed to remove snapshot with exception: " + e.toString() +
+                    ", RBD error: " + ErrorCode.getErrorMessage(e.getReturnValue()));
                 throw new CloudRuntimeException(e.toString() + " - " + ErrorCode.getErrorMessage(e.getReturnValue()));
             }
         }


[48/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4dbcf3aa/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
index 461b267..15fbdeb 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
@@ -175,7 +175,7 @@ public class NetscalerResource implements ServerResource {
     }
 
     @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
         try {
             _name = (String)params.get("name");
             if (_name == null) {
@@ -231,7 +231,7 @@ public class NetscalerResource implements ServerResource {
 
             _isSdx = _deviceName.equalsIgnoreCase("NetscalerSDXLoadBalancer");
 
-            if (((String)params.get("cloudmanaged")) != null) {
+            if ((String)params.get("cloudmanaged") != null) {
                 _cloudManaged = Boolean.parseBoolean((String)params.get("cloudmanaged"));
             }
 
@@ -259,7 +259,7 @@ public class NetscalerResource implements ServerResource {
             }
 
             return true;
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new ConfigurationException(e.getMessage());
         }
     }
@@ -275,7 +275,7 @@ public class NetscalerResource implements ServerResource {
                     _netscalerSdxService.logout();
                 }
             }
-        } catch (Exception e) {
+        } catch (final Exception e) {
             // Ignore logout exceptions
         }
     }
@@ -297,15 +297,15 @@ public class NetscalerResource implements ServerResource {
             } else {
                 _netscalerSdxService = new com.citrix.sdx.nitro.service.nitro_service(_ip, "https");
                 _netscalerSdxService.set_credential(_username, _password);
-                com.citrix.sdx.nitro.resource.base.login login = _netscalerSdxService.login();
+                final com.citrix.sdx.nitro.resource.base.login login = _netscalerSdxService.login();
                 if (login == null) {
                     throw new ExecutionException("Failed to log in to Netscaler SDX device at " + _ip + " due to error " + apiCallResult.errorcode + " and message " +
                             apiCallResult.message);
                 }
             }
-        } catch (nitro_exception e) {
+        } catch (final nitro_exception e) {
             throw new ExecutionException("Failed to log in to Netscaler device at " + _ip + " due to " + e.getMessage());
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new ExecutionException("Failed to log in to Netscaler device at " + _ip + " due to " + e.getMessage());
         }
     }
@@ -315,9 +315,9 @@ public class NetscalerResource implements ServerResource {
             return;
         }
         try {
-            String[] features = _netscalerService.get_enabled_features();
+            final String[] features = _netscalerService.get_enabled_features();
             if (features != null) {
-                for (String feature : features) {
+                for (final String feature : features) {
                     if (feature.equalsIgnoreCase("LB")) {
                         return;
                     }
@@ -325,56 +325,56 @@ public class NetscalerResource implements ServerResource {
             }
 
             // enable load balancing on the device
-            String[] feature = new String[1];
+            final String[] feature = new String[1];
             feature[0] = "LB";
             apiCallResult = _netscalerService.enable_features(feature);
             if (apiCallResult.errorcode != 0) {
                 throw new ExecutionException("Enabling load balancing feature on the device failed.");
             }
-        } catch (nitro_exception e) {
+        } catch (final nitro_exception e) {
             throw new ExecutionException("Enabling load balancing feature on the device failed  due to " + e.getMessage());
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new ExecutionException("Enabling load balancing feature on the device failed due to " + e.getMessage());
         }
     }
 
-    private void validateInterfaces(String publicInterface, String privateInterface) throws ExecutionException {
+    private void validateInterfaces(final String publicInterface, final String privateInterface) throws ExecutionException {
         try {
             if (!_isSdx && !_cloudManaged) {
-                Interface publicIf = Interface.get(_netscalerService, publicInterface);
-                Interface privateIf = Interface.get(_netscalerService, privateInterface);
+                final Interface publicIf = Interface.get(_netscalerService, publicInterface);
+                final Interface privateIf = Interface.get(_netscalerService, privateInterface);
                 if (publicIf != null || privateIf != null) {
                     return;
                 } else {
                     throw new ExecutionException("Invalid interface name specified for public/private interfaces.");
                 }
             }
-        } catch (nitro_exception e) {
+        } catch (final nitro_exception e) {
             if (e.getErrorCode() == NitroError.NS_RESOURCE_NOT_EXISTS) {
                 throw new ExecutionException("Invalid interface name specified for public and private interfaces.");
             } else {
                 throw new ExecutionException("Failed to verify public interface and private intefaces are valid due to " + e.getMessage());
             }
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new ExecutionException("Failed to verify public interface and private intefaces are valid due to " + e.getMessage());
         }
     }
 
-    private void validateDeviceType(String deviceType) throws ExecutionException {
+    private void validateDeviceType(final String deviceType) throws ExecutionException {
         try {
             if (!_isSdx && !_cloudManaged) {
-                nshardware nsHw = com.citrix.netscaler.nitro.resource.config.ns.nshardware.get(_netscalerService);
+                final nshardware nsHw = com.citrix.netscaler.nitro.resource.config.ns.nshardware.get(_netscalerService);
                 if (nsHw == null) {
                     throw new ExecutionException("Failed to get the hardware description of the Netscaler device at " + _ip);
                 } else {
-                    if ((_deviceName.equalsIgnoreCase("NetscalerMPXLoadBalancer") && nsHw.get_hwdescription().contains("MPX")) ||
-                            (_deviceName.equalsIgnoreCase("NetscalerVPXLoadBalancer") && nsHw.get_hwdescription().contains("NetScaler Virtual Appliance"))) {
+                    if (_deviceName.equalsIgnoreCase("NetscalerMPXLoadBalancer") && nsHw.get_hwdescription().contains("MPX") ||
+                            _deviceName.equalsIgnoreCase("NetscalerVPXLoadBalancer") && nsHw.get_hwdescription().contains("NetScaler Virtual Appliance")) {
                         return;
                     }
                     throw new ExecutionException("Netscalar device type specified does not match with the actuall device type.");
                 }
             } else if (_isSdx) {
-                mps serviceVM = mps.get(_netscalerSdxService);
+                final mps serviceVM = mps.get(_netscalerSdxService);
                 if (serviceVM != null) {
                     if (serviceVM.get_platform().contains("SDX") || serviceVM.get_product().contains("SDX")) {
                         return;
@@ -385,14 +385,14 @@ public class NetscalerResource implements ServerResource {
                     throw new ExecutionException("Failed to get the hardware details of the Netscaler device at " + _ip);
                 }
             }
-        } catch (Exception e) {
+        } catch (final Exception e) {
             throw new ExecutionException("Failed to verify device type specified when matching with actuall device type due to " + e.getMessage());
         }
     }
 
     @Override
     public StartupCommand[] initialize() {
-        StartupExternalLoadBalancerCommand cmd = new StartupExternalLoadBalancerCommand();
+        final StartupExternalLoadBalancerCommand cmd = new StartupExternalLoadBalancerCommand();
         cmd.setName(_name);
         cmd.setDataCenter(_zoneId);
         cmd.setPod("");
@@ -404,11 +404,11 @@ public class NetscalerResource implements ServerResource {
     }
 
     @Override
-    public Answer executeRequest(Command cmd) {
+    public Answer executeRequest(final Command cmd) {
         return executeRequest(cmd, _numRetries);
     }
 
-    private Answer executeRequest(Command cmd, int numRetries) {
+    private Answer executeRequest(final Command cmd, final int numRetries) {
         if (cmd instanceof ReadyCommand) {
             return execute((ReadyCommand)cmd);
         } else if (cmd instanceof MaintainCommand) {
@@ -434,27 +434,27 @@ public class NetscalerResource implements ServerResource {
         }
     }
 
-    private Answer execute(ReadyCommand cmd) {
+    private Answer execute(final ReadyCommand cmd) {
         return new ReadyAnswer(cmd);
     }
 
-    protected Answer execute(MaintainCommand cmd) {
+    protected Answer execute(final MaintainCommand cmd) {
         return new MaintainAnswer(cmd);
     }
 
-    private synchronized Answer execute(IpAssocCommand cmd, int numRetries) {
+    private synchronized Answer execute(final IpAssocCommand cmd, final int numRetries) {
         if (_isSdx) {
             return Answer.createUnsupportedCommandAnswer(cmd);
         }
 
-        String[] results = new String[cmd.getIpAddresses().length];
+        final String[] results = new String[cmd.getIpAddresses().length];
         int i = 0;
         try {
-            IpAddressTO[] ips = cmd.getIpAddresses();
-            for (IpAddressTO ip : ips) {
-                long guestVlanTag = Long.parseLong(ip.getBroadcastUri());
-                String vlanSelfIp = ip.getVlanGateway();
-                String vlanNetmask = ip.getVlanNetmask();
+            final IpAddressTO[] ips = cmd.getIpAddresses();
+            for (final IpAddressTO ip : ips) {
+                final long guestVlanTag = Long.parseLong(ip.getBroadcastUri());
+                final String vlanSelfIp = ip.getVlanGateway();
+                final String vlanNetmask = ip.getVlanNetmask();
 
                 if (ip.isAdd()) {
                     // Add a new guest VLAN and its subnet and bind it to private interface
@@ -466,12 +466,12 @@ public class NetscalerResource implements ServerResource {
 
                 saveConfiguration();
                 results[i++] = ip.getPublicIp() + " - success";
-                String action = ip.isAdd() ? "associate" : "remove";
+                final String action = ip.isAdd() ? "associate" : "remove";
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("Netscaler load balancer " + _ip + " successfully executed IPAssocCommand to " + action + " IP " + ip);
                 }
             }
-        } catch (ExecutionException e) {
+        } catch (final ExecutionException e) {
             s_logger.error("Netscaler loadbalancer " + _ip + " failed to execute IPAssocCommand due to " + e.getMessage());
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
@@ -483,33 +483,33 @@ public class NetscalerResource implements ServerResource {
         return new IpAssocAnswer(cmd, results);
     }
 
-    private Answer execute(HealthCheckLBConfigCommand cmd, int numRetries) {
+    private Answer execute(final HealthCheckLBConfigCommand cmd, final int numRetries) {
 
-        List<LoadBalancerTO> hcLB = new ArrayList<LoadBalancerTO>();
+        final List<LoadBalancerTO> hcLB = new ArrayList<LoadBalancerTO>();
         try {
 
             if (_isSdx) {
                 return Answer.createUnsupportedCommandAnswer(cmd);
             }
 
-            LoadBalancerTO[] loadBalancers = cmd.getLoadBalancers();
+            final LoadBalancerTO[] loadBalancers = cmd.getLoadBalancers();
 
             if (loadBalancers == null) {
                 return new HealthCheckLBConfigAnswer(hcLB);
             }
 
-            for (LoadBalancerTO loadBalancer : loadBalancers) {
-                HealthCheckPolicyTO[] healthCheckPolicies = loadBalancer.getHealthCheckPolicies();
-                if ((healthCheckPolicies != null) && (healthCheckPolicies.length > 0) && (healthCheckPolicies[0] != null)) {
-                    String nsVirtualServerName = generateNSVirtualServerName(loadBalancer.getSrcIp(), loadBalancer.getSrcPort());
+            for (final LoadBalancerTO loadBalancer : loadBalancers) {
+                final HealthCheckPolicyTO[] healthCheckPolicies = loadBalancer.getHealthCheckPolicies();
+                if (healthCheckPolicies != null && healthCheckPolicies.length > 0 && healthCheckPolicies[0] != null) {
+                    final String nsVirtualServerName = generateNSVirtualServerName(loadBalancer.getSrcIp(), loadBalancer.getSrcPort());
 
-                    com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
+                    final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
                             com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.get(_netscalerService, nsVirtualServerName);
 
                     if (serviceBindings != null) {
-                        for (DestinationTO destination : loadBalancer.getDestinations()) {
-                            String nsServiceName = generateNSServiceName(destination.getDestIp(), destination.getDestPort());
-                            for (com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
+                        for (final DestinationTO destination : loadBalancer.getDestinations()) {
+                            final String nsServiceName = generateNSServiceName(destination.getDestIp(), destination.getDestPort());
+                            for (final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
                                 if (nsServiceName.equalsIgnoreCase(binding.get_servicename())) {
                                     destination.setMonitorState(binding.get_curstate());
                                     break;
@@ -521,14 +521,14 @@ public class NetscalerResource implements ServerResource {
                 }
             }
 
-        } catch (ExecutionException e) {
+        } catch (final ExecutionException e) {
             s_logger.error("Failed to execute HealthCheckLBConfigCommand due to ", e);
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
             } else {
                 return new HealthCheckLBConfigAnswer(hcLB);
             }
-        } catch (Exception e) {
+        } catch (final Exception e) {
             s_logger.error("Failed to execute HealthCheckLBConfigCommand due to ", e);
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
@@ -539,25 +539,25 @@ public class NetscalerResource implements ServerResource {
         return new HealthCheckLBConfigAnswer(hcLB);
     }
 
-    private synchronized Answer execute(LoadBalancerConfigCommand cmd, int numRetries) {
+    private synchronized Answer execute(final LoadBalancerConfigCommand cmd, final int numRetries) {
         try {
             if (_isSdx) {
                 return Answer.createUnsupportedCommandAnswer(cmd);
             }
 
-            LoadBalancerTO[] loadBalancers = cmd.getLoadBalancers();
+            final LoadBalancerTO[] loadBalancers = cmd.getLoadBalancers();
             if (loadBalancers == null) {
                 return new Answer(cmd);
             }
 
-            for (LoadBalancerTO loadBalancer : loadBalancers) {
-                String srcIp = loadBalancer.getSrcIp();
-                int srcPort = loadBalancer.getSrcPort();
-                String lbProtocol = getNetScalerProtocol(loadBalancer);
-                String lbAlgorithm = loadBalancer.getAlgorithm();
-                String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
-                String nsMonitorName = generateNSMonitorName(srcIp, srcPort);
-                LbSslCert sslCert = loadBalancer.getSslCert();
+            for (final LoadBalancerTO loadBalancer : loadBalancers) {
+                final String srcIp = loadBalancer.getSrcIp();
+                final int srcPort = loadBalancer.getSrcPort();
+                final String lbProtocol = getNetScalerProtocol(loadBalancer);
+                final String lbAlgorithm = loadBalancer.getAlgorithm();
+                final String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
+                final String nsMonitorName = generateNSMonitorName(srcIp, srcPort);
+                final LbSslCert sslCert = loadBalancer.getSslCert();
 
                 if (loadBalancer.isAutoScaleVmGroupTO()) {
                     applyAutoScaleConfig(loadBalancer);
@@ -568,7 +568,7 @@ public class NetscalerResource implements ServerResource {
                 boolean deleteMonitor = false;
                 boolean destinationsToAdd = false;
                 boolean deleteCert = false;
-                for (DestinationTO destination : loadBalancer.getDestinations()) {
+                for (final DestinationTO destination : loadBalancer.getDestinations()) {
                     if (!destination.isRevoked()) {
                         destinationsToAdd = true;
                         break;
@@ -584,10 +584,10 @@ public class NetscalerResource implements ServerResource {
                     }
 
                     // create a new monitor
-                    HealthCheckPolicyTO[] healthCheckPolicies = loadBalancer.getHealthCheckPolicies();
-                    if ((healthCheckPolicies != null) && (healthCheckPolicies.length > 0) && (healthCheckPolicies[0] != null)) {
+                    final HealthCheckPolicyTO[] healthCheckPolicies = loadBalancer.getHealthCheckPolicies();
+                    if (healthCheckPolicies != null && healthCheckPolicies.length > 0 && healthCheckPolicies[0] != null) {
 
-                        for (HealthCheckPolicyTO healthCheckPolicyTO : healthCheckPolicies) {
+                        for (final HealthCheckPolicyTO healthCheckPolicyTO : healthCheckPolicies) {
                             if (!healthCheckPolicyTO.isRevoked()) {
                                 addLBMonitor(nsMonitorName, lbProtocol, healthCheckPolicyTO);
                                 hasMonitor = true;
@@ -599,27 +599,27 @@ public class NetscalerResource implements ServerResource {
 
                     }
 
-                    for (DestinationTO destination : loadBalancer.getDestinations()) {
+                    for (final DestinationTO destination : loadBalancer.getDestinations()) {
 
-                        String nsServerName = generateNSServerName(destination.getDestIp());
-                        String nsServiceName = generateNSServiceName(destination.getDestIp(), destination.getDestPort());
+                        final String nsServerName = generateNSServerName(destination.getDestIp());
+                        final String nsServiceName = generateNSServiceName(destination.getDestIp(), destination.getDestPort());
                         if (!destination.isRevoked()) {
                             // add a new destination to deployed load balancing rule
 
                             // add a new server
                             if (!nsServerExists(nsServerName)) {
-                                com.citrix.netscaler.nitro.resource.config.basic.server nsServer = new com.citrix.netscaler.nitro.resource.config.basic.server();
+                                final com.citrix.netscaler.nitro.resource.config.basic.server nsServer = new com.citrix.netscaler.nitro.resource.config.basic.server();
                                 nsServer.set_name(nsServerName);
                                 nsServer.set_ipaddress(destination.getDestIp());
                                 apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.add(_netscalerService, nsServer);
-                                if ((apiCallResult.errorcode != 0) && (apiCallResult.errorcode != NitroError.NS_RESOURCE_EXISTS)) {
+                                if (apiCallResult.errorcode != 0 && apiCallResult.errorcode != NitroError.NS_RESOURCE_EXISTS) {
                                     throw new ExecutionException("Failed to add server " + destination.getDestIp() + " due to" + apiCallResult.message);
                                 }
                             }
 
                             // create a new service using the server added
                             if (!nsServiceExists(nsServiceName)) {
-                                com.citrix.netscaler.nitro.resource.config.basic.service newService = new com.citrix.netscaler.nitro.resource.config.basic.service();
+                                final com.citrix.netscaler.nitro.resource.config.basic.service newService = new com.citrix.netscaler.nitro.resource.config.basic.service();
                                 newService.set_name(nsServiceName);
                                 newService.set_port(destination.getDestPort());
                                 newService.set_servername(nsServerName);
@@ -639,7 +639,7 @@ public class NetscalerResource implements ServerResource {
 
                             //bind service to load balancing virtual server
                             if (!nsServiceBindingExists(nsVirtualServerName, nsServiceName)) {
-                                com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding svcBinding =
+                                final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding svcBinding =
                                         new com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding();
                                 svcBinding.set_name(nsVirtualServerName);
                                 svcBinding.set_servicename(nsServiceName);
@@ -695,7 +695,7 @@ public class NetscalerResource implements ServerResource {
                                                 try (final PemWriter pemWriter = new PemWriter(textWriter);) {
                                                     pemWriter.writeObject(pemObject);
                                                     pemWriter.flush();
-                                                } catch (IOException e) {
+                                                } catch (final IOException e) {
                                                     if (s_logger.isDebugEnabled())
                                                     {
                                                         s_logger.debug("couldn't write PEM to a string", e);
@@ -727,7 +727,7 @@ public class NetscalerResource implements ServerResource {
                                             SSL.uploadKey(_ip, _username, _password, keyFilename, sslCert.getKey().getBytes());
                                             SSL.createSslCertKey(_netscalerService, certFilename, keyFilename, certKeyName, sslCert.getPassword());
                                         }
-                                    } catch (IOException e) {
+                                    } catch (final IOException e) {
                                         if (s_logger.isDebugEnabled())
                                         {
                                             s_logger.debug("couldn't open buffer for certificate", e);
@@ -750,10 +750,10 @@ public class NetscalerResource implements ServerResource {
 
                         } else {
                             // remove a destination from the deployed load balancing rule
-                            com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
+                            final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
                                     com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.get(_netscalerService, nsVirtualServerName);
                             if (serviceBindings != null) {
-                                for (com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
+                                for (final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
                                     if (nsServiceName.equalsIgnoreCase(binding.get_servicename())) {
                                         // delete the binding
                                         apiCallResult = com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.delete(_netscalerService, binding);
@@ -772,8 +772,8 @@ public class NetscalerResource implements ServerResource {
                                         }
 
                                         // delete the server if there is no associated services
-                                        server_service_binding[] services = server_service_binding.get(_netscalerService, nsServerName);
-                                        if ((services == null) || (services.length == 0)) {
+                                        final server_service_binding[] services = server_service_binding.get(_netscalerService, nsServerName);
+                                        if (services == null || services.length == 0) {
                                             apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.delete(_netscalerService, nsServerName);
                                             if (apiCallResult.errorcode != 0) {
                                                 throw new ExecutionException("Failed to remove server:" + nsServerName + " due to " + apiCallResult.message);
@@ -786,24 +786,24 @@ public class NetscalerResource implements ServerResource {
                     }
                 } else {
                     // delete the implemented load balancing rule and its destinations
-                    lbvserver lbserver = getVirtualServerIfExisits(nsVirtualServerName);
+                    final lbvserver lbserver = getVirtualServerIfExisits(nsVirtualServerName);
                     if (lbserver != null) {
                         //unbind the all services associated with this virtual server
-                        com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
+                        final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding[] serviceBindings =
                                 com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.get(_netscalerService, nsVirtualServerName);
 
                         if (serviceBindings != null) {
-                            for (com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
-                                String serviceName = binding.get_servicename();
+                            for (final com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding binding : serviceBindings) {
+                                final String serviceName = binding.get_servicename();
                                 apiCallResult = com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.delete(_netscalerService, binding);
                                 if (apiCallResult.errorcode != 0) {
                                     throw new ExecutionException("Failed to unbind service from the lb virtual server: " + nsVirtualServerName + " due to " +
                                             apiCallResult.message);
                                 }
 
-                                com.citrix.netscaler.nitro.resource.config.basic.service svc =
+                                final com.citrix.netscaler.nitro.resource.config.basic.service svc =
                                         com.citrix.netscaler.nitro.resource.config.basic.service.get(_netscalerService, serviceName);
-                                String nsServerName = svc.get_servername();
+                                final String nsServerName = svc.get_servername();
 
                                 // check if service is bound to any other virtual server
                                 if (!isServiceBoundToVirtualServer(serviceName)) {
@@ -815,8 +815,8 @@ public class NetscalerResource implements ServerResource {
                                 }
 
                                 //delete the server if no more services attached
-                                server_service_binding[] services = server_service_binding.get(_netscalerService, nsServerName);
-                                if ((services == null) || (services.length == 0)) {
+                                final server_service_binding[] services = server_service_binding.get(_netscalerService, nsServerName);
+                                if (services == null || services.length == 0) {
                                     apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.delete(_netscalerService, nsServerName);
                                     if (apiCallResult.errorcode != 0) {
                                         throw new ExecutionException("Failed to remove server:" + nsServerName + " due to " + apiCallResult.message);
@@ -834,9 +834,9 @@ public class NetscalerResource implements ServerResource {
                 }
                 if (sslCert != null && deleteCert) {
 
-                    String certFilename = generateSslCertName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
-                    String keyFilename = generateSslKeyName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
-                    String certKeyName = generateSslCertKeyName(sslCert.getFingerprint());
+                    final String certFilename = generateSslCertName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
+                    final String keyFilename = generateSslKeyName(sslCert.getFingerprint()) + ".pem"; //netscaler uses ".pem" format for "bundle" files
+                    final String certKeyName = generateSslCertKeyName(sslCert.getFingerprint());
 
                     // unbind before deleting
                     if (nsVirtualServerExists(nsVirtualServerName) &&
@@ -859,13 +859,13 @@ public class NetscalerResource implements ServerResource {
                      */
 
                     if (sslCert.getChain() != null) {
-                        List<Certificate> chainList = CertificateHelper.parseChain(sslCert.getChain());
+                        final List<Certificate> chainList = CertificateHelper.parseChain(sslCert.getChain());
                         //go from intermediate CAs to ROOT
-                        for (Certificate intermediateCert : chainList) {
+                        for (final Certificate intermediateCert : chainList) {
 
-                            String fingerPrint = CertificateHelper.generateFingerPrint(intermediateCert);
-                            String intermediateCertKeyName = generateSslCertKeyName(fingerPrint);
-                            String intermediateCertFileName = intermediateCertKeyName + ".pem";
+                            final String fingerPrint = CertificateHelper.generateFingerPrint(intermediateCert);
+                            final String intermediateCertKeyName = generateSslCertKeyName(fingerPrint);
+                            final String intermediateCertFileName = intermediateCertKeyName + ".pem";
 
                             if (SSL.isSslCertKeyPresent(_netscalerService, intermediateCertKeyName) &&
                                     !SSL.isCaforCerts(_netscalerService, intermediateCertKeyName)) {
@@ -887,14 +887,14 @@ public class NetscalerResource implements ServerResource {
 
             saveConfiguration();
             return new Answer(cmd);
-        } catch (ExecutionException e) {
+        } catch (final ExecutionException e) {
             s_logger.error("Failed to execute LoadBalancerConfigCommand due to ", e);
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
             } else {
                 return new Answer(cmd, e);
             }
-        } catch (Exception e) {
+        } catch (final Exception e) {
             s_logger.error("Failed to execute LoadBalancerConfigCommand due to ", e);
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
@@ -904,18 +904,18 @@ public class NetscalerResource implements ServerResource {
         }
     }
 
-    private synchronized Answer execute(CreateLoadBalancerApplianceCommand cmd, int numRetries) {
+    private synchronized Answer execute(final CreateLoadBalancerApplianceCommand cmd, final int numRetries) {
 
         if (!_isSdx) {
             return Answer.createUnsupportedCommandAnswer(cmd);
         }
 
         try {
-            String vpxName = "Cloud-VPX-" + cmd.getLoadBalancerIP();
-            String username = "admin";
-            String password = "admin";
+            final String vpxName = "Cloud-VPX-" + cmd.getLoadBalancerIP();
+            final String username = "admin";
+            final String password = "admin";
 
-            ns ns_obj = new ns();
+            final ns ns_obj = new ns();
             ns_obj.set_name(vpxName);
             ns_obj.set_ip_address(cmd.getLoadBalancerIP());
             ns_obj.set_netmask(cmd.getNetmask());
@@ -933,12 +933,12 @@ public class NetscalerResource implements ServerResource {
 
             // use the first VPX image of the available VPX images on the SDX to create an instance of VPX
             // TODO: should enable the option to choose the template while adding the SDX device in to CloudStack
-            xen_nsvpx_image[] vpxImages = xen_nsvpx_image.get(_netscalerSdxService);
+            final xen_nsvpx_image[] vpxImages = xen_nsvpx_image.get(_netscalerSdxService);
             if (!(vpxImages != null && vpxImages.length >= 1)) {
                 new Answer(cmd, new ExecutionException("Failed to create VPX instance on the netscaler SDX device " + _ip +
                         " as there are no VPX images on SDX to use for creating VPX."));
             }
-            String imageName = vpxImages[0].get_file_name();
+            final String imageName = vpxImages[0].get_file_name();
             ns_obj.set_image_name(imageName);
 
             String publicIf = _publicInterface;
@@ -956,14 +956,14 @@ public class NetscalerResource implements ServerResource {
 
             // wait for VPX instance to start-up
             long startTick = System.currentTimeMillis();
-            long startWaitMilliSeconds = 600000;
+            final long startWaitMilliSeconds = 600000;
             while (!newVpx.get_instance_state().equalsIgnoreCase("up") && System.currentTimeMillis() - startTick < startWaitMilliSeconds) {
                 try {
                     Thread.sleep(10000);
-                } catch (InterruptedException e) {
+                } catch (final InterruptedException e) {
                     s_logger.debug("[ignored] interupted while waiting for netscaler to be 'up'.");
                 }
-                ns refreshNsObj = new ns();
+                final ns refreshNsObj = new ns();
                 refreshNsObj.set_id(newVpx.get_id());
                 newVpx = ns.get(_netscalerSdxService, refreshNsObj);
             }
@@ -976,19 +976,19 @@ public class NetscalerResource implements ServerResource {
             // wait till NS service in side VPX is actually ready
             startTick = System.currentTimeMillis();
             boolean nsServiceUp = false;
-            long nsServiceWaitMilliSeconds = 60000;
+            final long nsServiceWaitMilliSeconds = 60000;
             while (System.currentTimeMillis() - startTick < nsServiceWaitMilliSeconds) {
                 try {
-                    nitro_service _netscalerService = new nitro_service(cmd.getLoadBalancerIP(), "https");
-                    _netscalerService.set_certvalidation(false);
-                    _netscalerService.set_hostnameverification(false);
-                    _netscalerService.set_credential(username, password);
-                    apiCallResult = _netscalerService.login();
+                    final nitro_service netscalerService = new nitro_service(cmd.getLoadBalancerIP(), "https");
+                    netscalerService.set_certvalidation(false);
+                    netscalerService.set_hostnameverification(false);
+                    netscalerService.set_credential(username, password);
+                    apiCallResult = netscalerService.login();
                     if (apiCallResult.errorcode == 0) {
                         nsServiceUp = true;
                         break;
                     }
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     Thread.sleep(10000);
                     continue;
                 }
@@ -1006,8 +1006,8 @@ public class NetscalerResource implements ServerResource {
             // However the VPX instances created will have interface range start from 10/1 but will only have as many interfaces enabled while creating the VPX instance
             // So due to this, we need to map public & private interface on SDX to correct public & private interface of VPX
 
-            int publicIfnum = Integer.parseInt(_publicInterface.substring(_publicInterface.lastIndexOf("/") + 1));
-            int privateIfnum = Integer.parseInt(_privateInterface.substring(_privateInterface.lastIndexOf("/") + 1));
+            final int publicIfnum = Integer.parseInt(_publicInterface.substring(_publicInterface.lastIndexOf("/") + 1));
+            final int privateIfnum = Integer.parseInt(_privateInterface.substring(_privateInterface.lastIndexOf("/") + 1));
 
             if (_publicInterface.startsWith("10/") && _privateInterface.startsWith("10/")) {
                 if (publicIfnum == privateIfnum) {
@@ -1041,7 +1041,7 @@ public class NetscalerResource implements ServerResource {
 
             return new CreateLoadBalancerApplianceAnswer(cmd, true, "provisioned VPX instance", "NetscalerVPXLoadBalancer", "Netscaler", new NetscalerResource(),
                     publicIf, privateIf, _username, _password);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             if (shouldRetry(numRetries)) {
                 return retry(cmd, numRetries);
             }
@@ -1050,17 +1050,17 @@ public class NetscalerResource implements ServerResource {
         }
     }
 
-    private Answer execute(GlobalLoadBalancerConfigCommand gslbCmd, int numRetries) {
+    private Answer execute(final GlobalLoadBalancerConfigCommand gslbCmd, final int numRetries) {
 
-        String lbMethod = gslbCmd.getLoadBalancerMethod();
-        String persistenceType = gslbCmd.getPersistenceType();
-        String serviceType = gslbCmd.getServiceType();
-        boolean forRevoke = gslbCmd.isForRevoke();
-        long gslbId = gslbCmd.getGslbId();
-        List<SiteLoadBalancerConfig> sites = gslbCmd.getSiteDetails();
+        final String lbMethod = gslbCmd.getLoadBalancerMethod();
+        final String persistenceType = gslbCmd.getPersistenceType();
+        final String serviceType = gslbCmd.getServiceType();
+        final boolean forRevoke = gslbCmd.isForRevoke();
+        final long gslbId = gslbCmd.getGslbId();
+        final List<SiteLoadBalancerConfig> sites = gslbCmd.getSiteDetails();
 
-        String domainName = gslbCmd.getDomainName();
-        String vserverName = GSLB.generateVirtualServerName(domainName);
+        final String domainName = gslbCmd.getDomainName();
+        final String vserverName = GSLB.generateVirtualServerName(domainName);
 
         try {
 
@@ -1070,17 +1070,17 @@ public class NetscalerResource implements ServerResource {
                 GSLB.createVirtualServer(_netscalerService, vserverName, lbMethod, persistenceType, gslbId, serviceType);
 
                 if (sites != null) { // check if there are any sites that are participating in global load balancing
-                    for (SiteLoadBalancerConfig site : sites) {
+                    for (final SiteLoadBalancerConfig site : sites) {
 
-                        String sitePrivateIP = site.getGslbProviderPrivateIp();
-                        String sitePublicIP = site.getGslbProviderPublicIp();
-                        String servicePublicIp = site.getServicePublicIp();
-                        String servicePublicPort = site.getServicePort();
-                        String siteName = GSLB.generateUniqueSiteName(sitePrivateIP, sitePublicIP, site.getDataCenterId());
+                        final String sitePrivateIP = site.getGslbProviderPrivateIp();
+                        final String sitePublicIP = site.getGslbProviderPublicIp();
+                        final String servicePublicIp = site.getServicePublicIp();
+                        final String servicePublicPort = site.getServicePort();
+                        final String siteName = GSLB.generateUniqueSiteName(sitePrivateIP, sitePublicIP, site.getDataCenterId());
 
                         // Add/Delete GSLB local and remote sites that are part of GSLB virtual server
                         if (!site.forRevoke()) {
-                            String siteType = (site.isLocal()) ? "LOCAL" : "REMOTE";
+                            final String siteType = site.isLocal() ? "LOCAL" : "REMOTE";
                             if (GSLB.getSiteObject(_netscalerService, siteName) != null) {
                                 GSLB.updateSite(_netscalerService, siteType, siteName, site.getGslbProviderPrivateIp(), site.getGslbProviderPublicIp());
                             } else {
@@ -1089,8 +1089,8 @@ public class NetscalerResource implements ServerResource {
                         }
 
                         // Add/Delete GSLB service corresponding the service running on each site
-                        String serviceName = GSLB.generateUniqueServiceName(siteName, servicePublicIp, servicePublicPort);
-                        String monitorName = GSLB.generateGslbServiceMonitorName(servicePublicIp);
+                        final String serviceName = GSLB.generateUniqueServiceName(siteName, servicePublicIp, servicePublicPort);
+                        final String monitorName = GSLB.generateGslbServiceMonitorName(servicePublicIp);
                         if (!site.forRevoke()) {
                             // create a 'gslbservice' object
                             GSLB.createService(_netscalerService, serviceName, site.getServiceType(), servicePublicIp, servicePublicPort, siteName);
@@ -1134,15 +1134,15 @@ public class NetscalerResource implements ServerResource {
                 GSLB.deleteVserverDomainBinding(_netscalerService, vserverName, domainName);
 
                 if (sites != null) {
-                    for (SiteLoadBalancerConfig site : sites) {
+                    for (final SiteLoadBalancerConfig site : sites) {
 
-                        String sitePrivateIP = site.getGslbProviderPrivateIp();
-                        String sitePublicIP = site.getGslbProviderPublicIp();
-                        String servicePublicIp = site.getServicePublicIp();
-                        String servicePublicPort = site.getServicePort();
-                        String siteName = GSLB.generateUniqueSiteName(sitePrivateIP, sitePublicIP, site.getDataCenterId());
-                        String serviceName = GSLB.generateUniqueServiceName(siteName, servicePublicIp, servicePublicPort);
-                        String monitorName = GSLB.generateGslbServiceMonitorName(servicePublicIp);
+                        final String sitePrivateIP = site.getGslbProviderPrivateIp();
+                        final String sitePublicIP = site.getGslbProviderPublicIp();
+                        final String servicePublicIp = site.getServicePublicIp();
+                        final String servicePublicPort = site.getServicePort();
+                        final String siteName = GSLB.generateUniqueSiteName(sitePrivateIP, sitePublicIP, site.getDataCenterId());
+                        final String serviceName = GSLB.generateUniqueServiceName(siteName, servicePublicIp, servicePublicPort);
+                        final String monitorName = GSLB.generateGslbServiceMonitorName(servicePublicIp);
 
                         // delete GSLB service and GSLB monitor binding
                         GSLB.deleteGslbServiceGslbMonitorBinding(_netscalerService, monitorName, serviceName);
@@ -1167,8 +1167,8 @@ public class NetscalerResource implements ServerResource {
 
             saveConfiguration();
 
-        } catch (Exception e) {
-            String errMsg = "Failed to apply GSLB configuration due to " + e.getMessage();
+        } catch (final Exception e) {
+            final String errMsg = "Failed to apply GSLB configuration due to " + e.getMessage();
             if (shouldRetry(numRetries)) {
                 return retry(gslbCmd, numRetries);
             }
@@ -1189,7 +1189,7 @@ public class NetscalerResource implements ServerResource {
     private static class GSLB {
 
         // create a 'gslbsite' object representing a site
-        private static void createSite(nitro_service client, String siteName, String siteType, String siteIP, String sitePublicIP) throws ExecutionException {
+        private static void createSite(final nitro_service client, final String siteName, final String siteType, final String siteIP, final String sitePublicIP) throws ExecutionException {
             try {
                 gslbsite site;
                 site = getSiteObject(client, siteName);
@@ -1201,7 +1201,7 @@ public class NetscalerResource implements ServerResource {
                     isUpdateSite = true;
                 }
 
-                assert ("LOCAL".equalsIgnoreCase(siteType) || "REMOTE".equalsIgnoreCase(siteType));
+                assert "LOCAL".equalsIgnoreCase(siteType) || "REMOTE".equalsIgnoreCase(siteType);
                 site.set_sitetype(siteType);
                 site.set_sitename(siteName);
                 site.set_siteipaddress(siteIP);
@@ -1217,8 +1217,8 @@ public class NetscalerResource implements ServerResource {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("Successfully created GSLB site: " + siteName);
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to create GSLB site: " + siteName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to create GSLB site: " + siteName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1227,11 +1227,11 @@ public class NetscalerResource implements ServerResource {
         }
 
         // delete 'gslbsite' object representing a site
-        private static void deleteSite(nitro_service client, String siteName) throws ExecutionException {
+        private static void deleteSite(final nitro_service client, final String siteName) throws ExecutionException {
             try {
-                gslbsite site = getSiteObject(client, siteName);
+                final gslbsite site = getSiteObject(client, siteName);
                 if (site != null) {
-                    gslbsite_gslbservice_binding[] serviceBindings = gslbsite_gslbservice_binding.get(client, siteName);
+                    final gslbsite_gslbservice_binding[] serviceBindings = gslbsite_gslbservice_binding.get(client, siteName);
                     if (serviceBindings != null && serviceBindings.length > 0) {
                         if (s_logger.isDebugEnabled()) {
                             s_logger.debug("There are services associated with GSLB site: " + siteName + " so ignoring site deletion");
@@ -1246,8 +1246,8 @@ public class NetscalerResource implements ServerResource {
                         s_logger.warn("Ignoring delete request for non existing  GSLB site: " + siteName);
                     }
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to delete GSLB site: " + siteName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to delete GSLB site: " + siteName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1256,7 +1256,7 @@ public class NetscalerResource implements ServerResource {
         }
 
         // update 'gslbsite' object representing a site
-        private static void updateSite(nitro_service client, String siteType, String siteName, String siteIP, String sitePublicIP) throws ExecutionException {
+        private static void updateSite(final nitro_service client, final String siteType, final String siteName, final String siteIP, final String sitePublicIP) throws ExecutionException {
             try {
                 gslbsite site;
                 site = getSiteObject(client, siteName);
@@ -1266,7 +1266,7 @@ public class NetscalerResource implements ServerResource {
                     }
                     return;
                 }
-                assert ("LOCAL".equalsIgnoreCase(siteType) || "REMOTE".equalsIgnoreCase(siteType));
+                assert "LOCAL".equalsIgnoreCase(siteType) || "REMOTE".equalsIgnoreCase(siteType);
                 site.set_sitetype(siteType);
                 site.set_sitename(siteName);
                 site.set_siteipaddress(siteIP);
@@ -1280,8 +1280,8 @@ public class NetscalerResource implements ServerResource {
                     s_logger.debug("Successfully updated GSLB site: " + siteName);
                 }
 
-            } catch (Exception e) {
-                String errMsg = "Failed to update GSLB site: " + siteName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to update GSLB site: " + siteName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1291,7 +1291,7 @@ public class NetscalerResource implements ServerResource {
 
         // create a 'gslbvserver' object representing a globally load balanced service
         private static void
-        createVirtualServer(nitro_service client, String vserverName, String lbMethod, String persistenceType, long persistenceId, String serviceType)
+        createVirtualServer(final nitro_service client, final String vserverName, final String lbMethod, final String persistenceType, final long persistenceId, final String serviceType)
                 throws ExecutionException {
             try {
                 gslbvserver vserver;
@@ -1335,8 +1335,8 @@ public class NetscalerResource implements ServerResource {
                     s_logger.debug("Successfully added GSLB virtual server: " + vserverName);
                 }
 
-            } catch (Exception e) {
-                String errMsg = "Failed to add GSLB virtual server: " + vserverName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to add GSLB virtual server: " + vserverName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1345,9 +1345,9 @@ public class NetscalerResource implements ServerResource {
         }
 
         // delete 'gslbvserver' object representing a globally load balanced service
-        private static void deleteVirtualServer(nitro_service client, String vserverName) throws ExecutionException {
+        private static void deleteVirtualServer(final nitro_service client, final String vserverName) throws ExecutionException {
             try {
-                gslbvserver vserver = getVserverObject(client, vserverName);
+                final gslbvserver vserver = getVserverObject(client, vserverName);
                 if (vserver != null) {
                     gslbvserver.delete(client, vserver);
                     if (s_logger.isDebugEnabled()) {
@@ -1358,8 +1358,8 @@ public class NetscalerResource implements ServerResource {
                         s_logger.warn("Ignoring delete request for non existing  GSLB virtual server: " + vserverName);
                     }
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to delete GSLB virtual server: " + vserverName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to delete GSLB virtual server: " + vserverName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1368,20 +1368,20 @@ public class NetscalerResource implements ServerResource {
         }
 
         // create, delete, update, get the GSLB services
-        private static void createService(nitro_service client, String serviceName, String serviceType, String serviceIp, String servicePort, String siteName)
+        private static void createService(final nitro_service client, final String serviceName, final String serviceType, final String serviceIp, final String servicePort, final String siteName)
                 throws ExecutionException {
             try {
                 gslbservice service;
                 service = getServiceObject(client, serviceName);
-                String gslbServerName = generateGslbServerName(serviceIp);
+                final String gslbServerName = generateGslbServerName(serviceIp);
 
                 if (!gslbServerExists(client, gslbServerName)) {
                     base_response apiCallResult;
-                    com.citrix.netscaler.nitro.resource.config.basic.server nsServer = new com.citrix.netscaler.nitro.resource.config.basic.server();
+                    final com.citrix.netscaler.nitro.resource.config.basic.server nsServer = new com.citrix.netscaler.nitro.resource.config.basic.server();
                     nsServer.set_name(gslbServerName);
                     nsServer.set_ipaddress(serviceIp);
                     apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.add(client, nsServer);
-                    if ((apiCallResult.errorcode != 0) && (apiCallResult.errorcode != NitroError.NS_RESOURCE_EXISTS)) {
+                    if (apiCallResult.errorcode != 0 && apiCallResult.errorcode != NitroError.NS_RESOURCE_EXISTS) {
                         throw new ExecutionException("Failed to add server " + gslbServerName + " due to" + apiCallResult.message);
                     }
                 }
@@ -1395,7 +1395,7 @@ public class NetscalerResource implements ServerResource {
 
                 service.set_sitename(siteName);
                 service.set_servername(gslbServerName);
-                int port = Integer.parseInt(servicePort);
+                final int port = Integer.parseInt(servicePort);
                 service.set_port(port);
                 service.set_servicename(serviceName);
                 service.set_servicetype(serviceType);
@@ -1409,8 +1409,8 @@ public class NetscalerResource implements ServerResource {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("Successfully created service: " + serviceName + " at site: " + siteName);
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to created service: " + serviceName + " at site: " + siteName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to created service: " + serviceName + " at site: " + siteName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1418,9 +1418,9 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void deleteService(nitro_service client, String serviceName) throws ExecutionException {
+        private static void deleteService(final nitro_service client, final String serviceName) throws ExecutionException {
             try {
-                gslbservice service = getServiceObject(client, serviceName);
+                final gslbservice service = getServiceObject(client, serviceName);
                 if (service != null) {
                     gslbservice.delete(client, serviceName);
                     if (s_logger.isDebugEnabled()) {
@@ -1431,8 +1431,8 @@ public class NetscalerResource implements ServerResource {
                         s_logger.warn("Ignoring delete request for non existing  service: " + serviceName);
                     }
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to delete service: " + serviceName + " due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to delete service: " + serviceName + " due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1440,11 +1440,11 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void createVserverServiceBinding(nitro_service client, String serviceName, String vserverName, long weight) throws ExecutionException {
+        private static void createVserverServiceBinding(final nitro_service client, final String serviceName, final String vserverName, final long weight) throws ExecutionException {
             String errMsg;
             try {
-                assert (weight >= 1 && weight <= 100);
-                gslbvserver_gslbservice_binding binding = new gslbvserver_gslbservice_binding();
+                assert weight >= 1 && weight <= 100;
+                final gslbvserver_gslbservice_binding binding = new gslbvserver_gslbservice_binding();
                 binding.set_name(vserverName);
                 binding.set_servicename(serviceName);
                 binding.set_weight(weight);
@@ -1452,7 +1452,7 @@ public class NetscalerResource implements ServerResource {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("Successfully created service: " + serviceName + " and virtual server: " + vserverName + " binding");
                 }
-            } catch (nitro_exception ne) {
+            } catch (final nitro_exception ne) {
                 if (ne.getErrorCode() == 273) {
                     return;
                 }
@@ -1461,7 +1461,7 @@ public class NetscalerResource implements ServerResource {
                     s_logger.debug(errMsg);
                 }
                 throw new ExecutionException(errMsg);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 errMsg = "Failed to create service: " + serviceName + " and virtual server: " + vserverName + " binding due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
@@ -1470,11 +1470,11 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void deleteVserverServiceBinding(nitro_service client, String serviceName, String vserverName) throws ExecutionException {
+        private static void deleteVserverServiceBinding(final nitro_service client, final String serviceName, final String vserverName) throws ExecutionException {
             try {
-                gslbvserver_gslbservice_binding[] bindings = gslbvserver_gslbservice_binding.get(client, vserverName);
+                final gslbvserver_gslbservice_binding[] bindings = gslbvserver_gslbservice_binding.get(client, vserverName);
                 if (bindings != null) {
-                    for (gslbvserver_gslbservice_binding binding : bindings) {
+                    for (final gslbvserver_gslbservice_binding binding : bindings) {
                         if (binding.get_servicename().equalsIgnoreCase(serviceName) && binding.get_name().equals(vserverName)) {
                             gslbvserver_gslbservice_binding.delete(client, binding);
                             if (s_logger.isDebugEnabled()) {
@@ -1484,8 +1484,8 @@ public class NetscalerResource implements ServerResource {
                         }
                     }
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to create service: " + serviceName + " and virtual server: " + vserverName + " binding due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to create service: " + serviceName + " and virtual server: " + vserverName + " binding due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1494,10 +1494,10 @@ public class NetscalerResource implements ServerResource {
         }
 
         // create, delete GSLB virtual server and domain bindings
-        private static void createVserverDomainBinding(nitro_service client, String vserverName, String domainName) throws ExecutionException {
+        private static void createVserverDomainBinding(final nitro_service client, final String vserverName, final String domainName) throws ExecutionException {
             String errMsg;
             try {
-                gslbvserver_domain_binding binding = new gslbvserver_domain_binding();
+                final gslbvserver_domain_binding binding = new gslbvserver_domain_binding();
                 binding.set_domainname(domainName);
                 binding.set_name(vserverName);
                 gslbvserver_domain_binding.add(client, binding);
@@ -1505,12 +1505,12 @@ public class NetscalerResource implements ServerResource {
                     s_logger.debug("Successfully added virtual server: " + vserverName + " domain name: " + domainName + " binding");
                 }
                 return;
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 if (e.getErrorCode() == NitroError.NS_GSLB_DOMAIN_ALREADY_BOUND) {
                     return;
                 }
                 errMsg = e.getMessage();
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 errMsg = e.getMessage();
             }
             errMsg = "Failed to create virtual server: " + vserverName + " domain name: " + domainName + " binding" + errMsg;
@@ -1520,11 +1520,11 @@ public class NetscalerResource implements ServerResource {
             throw new ExecutionException(errMsg);
         }
 
-        private static void deleteVserverDomainBinding(nitro_service client, String vserverName, String domainName) throws ExecutionException {
+        private static void deleteVserverDomainBinding(final nitro_service client, final String vserverName, final String domainName) throws ExecutionException {
             try {
-                gslbvserver_domain_binding[] bindings = gslbvserver_domain_binding.get(client, vserverName);
+                final gslbvserver_domain_binding[] bindings = gslbvserver_domain_binding.get(client, vserverName);
                 if (bindings != null) {
-                    for (gslbvserver_domain_binding binding : bindings) {
+                    for (final gslbvserver_domain_binding binding : bindings) {
                         if (binding.get_domainname().equalsIgnoreCase(domainName)) {
                             gslbvserver_domain_binding.delete(client, binding);
                             if (s_logger.isDebugEnabled()) {
@@ -1534,8 +1534,8 @@ public class NetscalerResource implements ServerResource {
                         }
                     }
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to delete virtual server: " + vserverName + " and domain " + domainName + " binding due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to delete virtual server: " + vserverName + " and domain " + domainName + " binding due to " + e.getMessage();
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1543,21 +1543,21 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void createGslbServiceMonitor(nitro_service nsService, String servicePublicIp, String serviceName) throws ExecutionException {
+        private static void createGslbServiceMonitor(final nitro_service nsService, final String servicePublicIp, final String serviceName) throws ExecutionException {
             try {
-                lbmonitor newmonitor = new lbmonitor();
-                String monitorName = generateGslbServiceMonitorName(servicePublicIp);
+                final lbmonitor newmonitor = new lbmonitor();
+                final String monitorName = generateGslbServiceMonitorName(servicePublicIp);
                 newmonitor.set_type("TCP");
                 newmonitor.set_servicename(serviceName);
                 newmonitor.set_monitorname(monitorName);
                 newmonitor.set_state("ENABLED");
                 lbmonitor.add(nsService, newmonitor);
-            } catch (nitro_exception ne) {
+            } catch (final nitro_exception ne) {
                 if (ne.getErrorCode() == NitroError.NS_RESOURCE_EXISTS) {
                     return;
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to create GSLB monitor for service public ip" + servicePublicIp;
+            } catch (final Exception e) {
+                final String errMsg = "Failed to create GSLB monitor for service public ip" + servicePublicIp;
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug(errMsg);
                 }
@@ -1565,127 +1565,127 @@ public class NetscalerResource implements ServerResource {
             }
         }
 
-        private static void deleteGslbServiceMonitor(nitro_service nsService, String monitorName) throws ExecutionException {
+        private static void deleteGslbServiceMonitor(final nitro_service nsService, final String monitorName) throws ExecutionException {
             try {
-                lbmonitor serviceMonitor = lbmonitor.get(nsService, monitorName);
+                final lbmonitor serviceMonitor = lbmonitor.get(nsService, monitorName);
                 if (serviceMonitor != null) {
                     lbmonitor.delete(nsService, serviceMonitor);
                 }
-            } catch (nitro_exception ne) {
+            } catch (final nitro_exception ne) {
                 if (ne.getErrorCode() != NitroError.NS_RESOURCE_NOT_EXISTS) {
-                    String errMsg = "Failed to delete monitor " + monitorName + " for GSLB service due to " + ne.getMessage();
+                    final String errMsg = "Failed to delete monitor " + monitorName + " for GSLB service due to " + ne.getMessage();
                     s_logger.debug(errMsg);
                     throw new com.cloud.utils.exception.ExecutionException(errMsg);
                 }
-            } catch (Exception e) {
-                String errMsg = "Failed to delete monitor " + monitorName + " for GSLB service due to " + e.getMessage();
+            } catch (final Exception e) {
+                final String errMsg = "Failed to delete monitor " + monitorName + " for GSLB service due to " + e.getMessage();
                 s_logger.debug(errMsg);
                 throw new com.cloud.utils.exception.ExecutionException(errMsg);
             }
         }
 
-        private static void createGslbServiceGslbMonitorBinding(nitro_service nsService, String monitorName, String serviceName) {
+        private static void createGslbServiceGslbMonitorBinding(final nitro_service nsService, final String monitorName, final String serviceName) {
             try {
-                gslbservice_lbmonitor_binding monitorBinding = new gslbservice_lbmonitor_binding();
+                final gslbservice_lbmonitor_binding monitorBinding = new gslbservice_lbmonitor_binding();
                 monitorBinding.set_monitor_name(monitorName);
                 monitorBinding.set_servicename(serviceName);
                 gslbservice_lbmonitor_binding.add(nsService, monitorBinding);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 // TODO: Nitro API version 10.* is not compatible for NetScalers 9.*, so may fail
                 // against NetScaler version lesser than 10 hence ignore the exception
                 s_logger.warn("Failed to bind monitor to GSLB service due to " + e.getMessage());
             }
         }
 
-        private static void deleteGslbServiceGslbMonitorBinding(nitro_service nsService, String monitorName, String serviceName) {
+        private static void deleteGslbServiceGslbMonitorBinding(final nitro_service nsService, final String monitorName, final String serviceName) {
             try {
-                gslbservice_lbmonitor_binding[] monitorBindings = gslbservice_lbmonitor_binding.get(nsService, serviceName);
+                final gslbservice_lbmonitor_binding[] monitorBindings = gslbservice_lbmonitor_binding.get(nsService, serviceName);
                 if (monitorBindings != null && monitorBindings.length > 0) {
-                    for (gslbservice_lbmonitor_binding binding : monitorBindings) {
+                    for (final gslbservice_lbmonitor_binding binding : monitorBindings) {
                         if (binding.get_monitor_name().equalsIgnoreCase(monitorName)) {
                             s_logger.info("Found a binding between monitor " + binding.get_monitor_name() + " and " + binding.get_servicename());
                             gslbservice_lbmonitor_binding.delete(nsService, binding);
                         }
                     }
                 }
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 s_logger.debug("Failed to delete GSLB monitor " + monitorName + " and GSLB service " + serviceName + " binding due to " + e.getMessage() +
                         " but moving on ..., will be cleaned up as part of GSLB " + " service delete any way..");
             }
         }
 
         // get 'gslbsite' object corresponding to a site name
-        private static gslbsite getSiteObject(nitro_service client, String siteName) {
+        private static gslbsite getSiteObject(final nitro_service client, final String siteName) {
             try {
-                gslbsite site = gslbsite.get(client, siteName);
+                final gslbsite site = gslbsite.get(client, siteName);
                 if (site != null) {
                     return site;
                 }
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 s_logger.info("[ignored]"
                         + "error getting site: " + e.getLocalizedMessage());
             }
             return null;
         }
 
-        private static gslbvserver getVserverObject(nitro_service client, String vserverName) {
+        private static gslbvserver getVserverObject(final nitro_service client, final String vserverName) {
             try {
-                gslbvserver vserver = gslbvserver.get(client, vserverName);
+                final gslbvserver vserver = gslbvserver.get(client, vserverName);
                 return vserver;
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 return null;
             }
         }
 
-        private static gslbservice getServiceObject(nitro_service client, String serviceName) {
+        private static gslbservice getServiceObject(final nitro_service client, final String serviceName) {
             try {
-                gslbservice service = gslbservice.get(client, serviceName);
+                final gslbservice service = gslbservice.get(client, serviceName);
                 return service;
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 return null;
             }
         }
 
-        private static String generateUniqueSiteName(String sitePrivateIp, String sitePublicIP, long dataCenterId) {
+        private static String generateUniqueSiteName(final String sitePrivateIp, final String sitePublicIP, final long dataCenterId) {
             return "cloudsite" + String.valueOf(dataCenterId);
         }
 
-        private static String generateVirtualServerName(String domainName) {
+        private static String generateVirtualServerName(final String domainName) {
             return "cloud-gslb-vserver-" + domainName;
         }
 
-        private static String generateUniqueServiceName(String siteName, String publicIp, String publicPort) {
+        private static String generateUniqueServiceName(final String siteName, final String publicIp, final String publicPort) {
             return "cloud-gslb-service-" + siteName + "-" + publicIp + "-" + publicPort;
         }
 
-        private static String generateGslbServiceMonitorName(String publicIp) {
+        private static String generateGslbServiceMonitorName(final String publicIp) {
             return "cloud-monitor-" + publicIp;
         }
 
-        private static boolean gslbServerExists(nitro_service client, String serverName) throws ExecutionException {
+        private static boolean gslbServerExists(final nitro_service client, final String serverName) throws ExecutionException {
             try {
                 if (com.citrix.netscaler.nitro.resource.config.basic.server.get(client, serverName) != null) {
                     return true;
                 } else {
                     return false;
                 }
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 if (e.getErrorCode() == NitroError.NS_RESOURCE_NOT_EXISTS) {
                     return false;
                 } else {
                     throw new ExecutionException("Failed to verify Server " + serverName + " exists on the NetScaler device due to " + e.getMessage());
                 }
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to verify Server " + serverName + " exists on the NetScaler device due to " + e.getMessage());
             }
         }
 
-        private static String generateGslbServerName(String serverIP) {
+        private static String generateGslbServerName(final String serverIP) {
             return genGslbObjectName("Cloud-Server-", serverIP);
         }
 
-        private static String genGslbObjectName(Object... args) {
-            StringBuffer buff = new StringBuffer();
+        private static String genGslbObjectName(final Object... args) {
+            final StringBuffer buff = new StringBuffer();
             for (int i = 0; i < args.length; i++) {
                 buff.append(args[i]);
                 if (i != args.length - 1) {
@@ -1702,54 +1702,56 @@ public class NetscalerResource implements ServerResource {
         private static final String SSL_CERT_PATH = "/nsconfig/ssl/";
         private static final int SSH_PORT = 22;
 
-        private static boolean isSslCertKeyPresent(nitro_service ns, String certKeyName) throws ExecutionException {
+        private static boolean isSslCertKeyPresent(final nitro_service ns, final String certKeyName) throws ExecutionException {
 
-            String filter = "certkey:" + certKeyName;
+            final String filter = "certkey:" + certKeyName;
 
             try {
-                if (sslcertkey.count_filtered(ns, filter) > 0)
+                if (sslcertkey.count_filtered(ns, filter) > 0) {
                     return true;
-            } catch (nitro_exception e) {
+                }
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to get certkey " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to get certkey " + e.getMessage());
             }
 
             return false;
         }
 
-        private static void deleteSslCertKey(nitro_service ns, String certKeyName) throws ExecutionException {
+        private static void deleteSslCertKey(final nitro_service ns, final String certKeyName) throws ExecutionException {
             try {
 
-                sslcertkey certkey = new sslcertkey();
+                final sslcertkey certkey = new sslcertkey();
                 certkey.set_certkey(certKeyName);
                 sslcertkey.delete(ns, certkey);
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to delete certkey " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to delete certkey " + e.getMessage());
             }
 
         }
 
-        private static void deleteCertFile(String nsIp, String username, String password, String certFilename) throws Exception {
+        private static void deleteCertFile(final String nsIp, final String username, final String password, final String certFilename) throws Exception {
             SshHelper.sshExecute(nsIp, SSH_PORT, username, null, password, "shell rm " + SSL_CERT_PATH + certFilename);
         }
 
-        private static void deleteKeyFile(String nsIp, String username, String password, String keyFilename) throws Exception {
+        private static void deleteKeyFile(final String nsIp, final String username, final String password, final String keyFilename) throws Exception {
             SshHelper.sshExecute(nsIp, SSH_PORT, username, null, password, "shell rm " + SSL_CERT_PATH + keyFilename);
         }
 
-        private static void createSslCertKey(nitro_service ns, String certFilename, String keyFilename, String certKeyName, String password) throws ExecutionException {
+        private static void createSslCertKey(final nitro_service ns, final String certFilename, final String keyFilename, final String certKeyName, final String password) throws ExecutionException {
             s_logger.debug("Adding cert to netscaler");
             try {
-                sslcertkey certkey = new sslcertkey();
+                final sslcertkey certkey = new sslcertkey();
                 certkey.set_certkey(certKeyName);
                 certkey.set_cert(SSL_CERT_PATH + certFilename);
 
-                if (keyFilename != null)
+                if (keyFilename != null) {
                     certkey.set_key(SSL_CERT_PATH + keyFilename);
+                }
 
                 if (password != null) {
                     certkey.set_passplain(password);
@@ -1757,145 +1759,147 @@ public class NetscalerResource implements ServerResource {
 
                 certkey.perform_operation(ns);
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to add certkey binding " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to add certkey binding " + e.getMessage());
             }
 
         }
 
-        private static void bindCertKeyToVserver(nitro_service ns, String certKeyName, String vserver) throws ExecutionException {
+        private static void bindCertKeyToVserver(final nitro_service ns, final String certKeyName, final String vserver) throws ExecutionException {
             s_logger.debug("Adding cert to netscaler");
 
             try {
-                sslvserver_sslcertkey_binding cert_binding = new sslvserver_sslcertkey_binding();
+                final sslvserver_sslcertkey_binding cert_binding = new sslvserver_sslcertkey_binding();
                 cert_binding.set_certkeyname(certKeyName);
                 cert_binding.set_vservername(vserver);
                 cert_binding.perform_operation(ns);
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to bind certkey to vserver due to " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to bind certkey to vserver due to " + e.getMessage());
             }
         }
 
-        private static void unbindCertKeyFromVserver(nitro_service ns, String certKeyName, String vserver) throws ExecutionException {
+        private static void unbindCertKeyFromVserver(final nitro_service ns, final String certKeyName, final String vserver) throws ExecutionException {
             try {
 
-                sslvserver_sslcertkey_binding cert_binding = new sslvserver_sslcertkey_binding();
+                final sslvserver_sslcertkey_binding cert_binding = new sslvserver_sslcertkey_binding();
                 cert_binding.set_certkeyname(certKeyName);
                 cert_binding.set_vservername(vserver);
                 sslvserver_sslcertkey_binding.delete(ns, cert_binding);
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to unbind certkey to vserver due to " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to unbind certkey to vserver due to " + e.getMessage());
             }
 
         }
 
-        private static void uploadCert(String nsIp, String user, String password, String certFilename, byte[] certData) throws ExecutionException {
+        private static void uploadCert(final String nsIp, final String user, final String password, final String certFilename, final byte[] certData) throws ExecutionException {
             try {
                 SshHelper.scpTo(nsIp, SSH_PORT, user, null, password, SSL_CERT_PATH, certData, certFilename, null);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to copy private key to device " + e.getMessage());
             }
         }
 
-        private static void uploadKey(String nsIp, String user, String password, String keyFilename, byte[] keyData) throws ExecutionException {
+        private static void uploadKey(final String nsIp, final String user, final String password, final String keyFilename, final byte[] keyData) throws ExecutionException {
             try {
                 SshHelper.scpTo(nsIp, SSH_PORT, user, null, password, SSL_CERT_PATH, keyData, keyFilename, null);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to copy private key to device " + e.getMessage());
             }
         }
 
-        private static void enableSslFeature(nitro_service ns, boolean isSdx) throws ExecutionException {
+        private static void enableSslFeature(final nitro_service ns, final boolean isSdx) throws ExecutionException {
             if (isSdx) {
                 return;
             }
             try {
-                base_response result = ns.enable_features(new String[] {"SSL"});
-                if (result.errorcode != 0)
+                final base_response result = ns.enable_features(new String[] {"SSL"});
+                if (result.errorcode != 0) {
                     throw new ExecutionException("Unable to enable SSL on LB");
-            } catch (nitro_exception e) {
+                }
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to enable ssl feature on load balancer due to " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to enable ssl feature on load balancer due to " + e.getMessage());
             }
         }
 
-        public static boolean certLinkExists(nitro_service ns, String userCertName, String caCertName) throws ExecutionException {
+        public static boolean certLinkExists(final nitro_service ns, final String userCertName, final String caCertName) throws ExecutionException {
             try {
                 // check if there is a link from userCertName to caCertName
 
-                sslcertkey userCert = sslcertkey.get(ns, userCertName);
-                String nsCaCert = userCert.get_linkcertkeyname();
+                final sslcertkey userCert = sslcertkey.get(ns, userCertName);
+                final String nsCaCert = userCert.get_linkcertkeyname();
 
-                if (nsCaCert != null && nsCaCert.equals(caCertName))
+                if (nsCaCert != null && nsCaCert.equals(caCertName)) {
                     return true;
+                }
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to check cert link on load balancer to " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to check cert link on load balancer due to " + e.getMessage());
             }
             return false;
         }
 
-        public static void linkCerts(nitro_service ns, String userCertName, String caCertName) throws ExecutionException {
+        public static void linkCerts(final nitro_service ns, final String userCertName, final String caCertName) throws ExecutionException {
             try {
 
                 // the assumption is that that both userCertName and caCertName are present on NS
 
-                sslcertkey caCert = sslcertkey.get(ns, caCertName);
-                sslcertkey userCert = sslcertkey.get(ns, userCertName);
+                final sslcertkey caCert = sslcertkey.get(ns, caCertName);
+                final sslcertkey userCert = sslcertkey.get(ns, userCertName);
 
-                sslcertkey linkResource = new sslcertkey();
+                final sslcertkey linkResource = new sslcertkey();
 
                 // link user cert to CA cert
                 linkResource.set_certkey(userCert.get_certkey());
                 linkResource.set_linkcertkeyname(caCert.get_certkey());
                 sslcertkey.link(ns, linkResource);
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new ExecutionException("Failed to check cert link on load balancer to " + e.getMessage());
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 throw new ExecutionException("Failed to check cert link on load balancer due to " + e.getMessage());
             }
 
         }
 
-        public static boolean isCaforCerts(nitro_service ns, String caCertName) throws ExecutionException {
+        public static boolean isCaforCerts(final nitro_service ns, final String caCertName) throws ExecutionException {
             // check if this certificate  serves as a CA for other certificates
             try {
-                sslcertlink[] childLinks = sslcertlink.get_filtered(ns, "linkcertkeyname:" + caCertName);
+                final sslcertlink[] childLinks = sslcertlink.get_filtered(ns, "linkcertkeyname:" + caCertName);
                 if (childLinks != null && childLinks.length > 0) {
                     return true;
                 }
 
-            } catch (nitro_exception e) {
+            } catch (final nitro_exception e) {
                 throw new E

<TRUNCATED>

[11/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1455 from sanju1010/vlan

[CLOUDSTACK-9328]: Fix vlan issues from test suite test_privategw_acl.py in BVTPlease refer to CLOUDSTACK-9328 for the details.

Test Results:
==========
test_01_vpc_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_01_vpc_privategw_acl | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 1 test in 108.273s

OK

* pr/1455:
  [CLOUDSTACK-9328]: Fix vlan issues from test  suite test_privategw_acl.py in BVT Bug-Id:## CLOUDSTACK-9328

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: c806f3d8b2c54449f2b54109412f14b6e40fbdb1
Parents: 49df7f2 1be9e42
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:08:38 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:08:39 2016 -0400

----------------------------------------------------------------------
 test/integration/smoke/test_privategw_acl.py | 28 ++++++++++++++++++-----
 1 file changed, 22 insertions(+), 6 deletions(-)
----------------------------------------------------------------------



[45/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1628 from karuturi/patch-1

updated contributing.mdAs this is the doc that is showed while creating a pull request, updated it with information from release principles wiki.

* pr/1628:
  updated contributin.md

Signed-off-by: Rajani Karuturi <ra...@accelerite.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: d3e45515ee30642c657ee853bfa448290da54910
Parents: 56a3526 4c387fe
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Tue Aug 16 13:54:24 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Tue Aug 16 13:54:24 2016 +0530

----------------------------------------------------------------------
 CONTRIBUTING.md | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[33/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1625 from shapeblue/dbupgrade-fix-4.10

[blocker] cloudstack: fix upgrade paths to 4.10.0This adds an upgrade to master since the recent 4.9 cut, adds an upgrade path to the new code version 4.10. Without this PR all PRs to master are failing due to missing upgrade path. Please merge this on priority.

Code review and Travis results should be enough to validate the changes.

/cc @karuturi @wido @ProjectMoon @abhinandanprateek

* pr/1625:
  server: give more memory to tests
  cloudstack: fix upgrade paths to 4.10.0

Signed-off-by: Rajani Karuturi <ra...@accelerite.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: b607a3900d7931f58301de0da7ba9b56d3b26b7b
Parents: 62aa3b2 fd7273b
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Thu Aug 4 16:40:05 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Thu Aug 4 16:40:05 2016 +0530

----------------------------------------------------------------------
 .../cloud/upgrade/DatabaseUpgradeChecker.java   | 109 ++++++++++---------
 .../com/cloud/upgrade/dao/Upgrade490to4100.java |  66 +++++++++++
 server/pom.xml                                  |   2 +-
 setup/db/db/schema-490to4100-cleanup.sql        |  20 ++++
 setup/db/db/schema-490to4100.sql                |  20 ++++
 5 files changed, 163 insertions(+), 54 deletions(-)
----------------------------------------------------------------------



[44/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge release branch 4.9 to master

* 4.9:
  CLOUDSTACK-9447: fix build and upgrade to debian 7.11 iso


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 56a352650271f09b6bf2d50e6e9cb377997539e8
Parents: 3afedbb bdc409c
Author: Rajani Karuturi <ra...@accelerite.com>
Authored: Tue Aug 9 15:51:15 2016 +0530
Committer: Rajani Karuturi <ra...@accelerite.com>
Committed: Tue Aug 9 15:51:15 2016 +0530

----------------------------------------------------------------------
 tools/appliance/.ruby-version                   |  2 +-
 tools/appliance/.rvmrc                          |  2 +-
 tools/appliance/Gemfile                         |  4 ++-
 tools/appliance/README.md                       | 27 +++++++++-----------
 tools/appliance/build.sh                        |  9 ++++---
 .../configure_systemvm_services.sh              |  1 -
 .../definitions/systemvmtemplate/definition.rb  | 12 ++++-----
 .../install_systemvm_packages.sh                |  2 +-
 8 files changed, 30 insertions(+), 29 deletions(-)
----------------------------------------------------------------------



[19/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
packaging: Marvin and integration-tests packages

This introduces two new cloudstack packages: marvin and integration-tests.
The two packages will make it easier for CI systems to install Marvin for a
specific cloudstack release/build and run integration tests that are specific
for that version/build.

- maven: add explicit juniper-contrail-api maven repository
- marvin: build source distribution for both install and package mvn phases

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


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: de041df74d53a4b867fc7f65d2844fb519316297
Parents: adaf410
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Jul 20 11:56:00 2016 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Jul 20 16:31:23 2016 +0530

----------------------------------------------------------------------
 client/pom.xml                              |  1 +
 debian/cloudstack-integration-tests.install | 18 ++++++++
 debian/cloudstack-marvin.install            | 18 ++++++++
 debian/cloudstack-marvin.postinst           | 23 +++++++++++
 debian/control                              | 10 +++++
 debian/rules                                | 10 ++++-
 packaging/centos63/cloud.spec               | 52 ++++++++++++++++++++++--
 packaging/centos7/cloud.spec                | 46 ++++++++++++++++++++-
 pom.xml                                     |  7 ++++
 tools/marvin/pom.xml                        |  4 +-
 10 files changed, 181 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index 163282c..6d8b6ff 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -19,6 +19,7 @@
     <artifactId>cloudstack</artifactId>
     <version>4.7.2-SNAPSHOT</version>
   </parent>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/debian/cloudstack-integration-tests.install
----------------------------------------------------------------------
diff --git a/debian/cloudstack-integration-tests.install b/debian/cloudstack-integration-tests.install
new file mode 100644
index 0000000..4b01385
--- /dev/null
+++ b/debian/cloudstack-integration-tests.install
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+/usr/share/cloudstack-integration-tests/*

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/debian/cloudstack-marvin.install
----------------------------------------------------------------------
diff --git a/debian/cloudstack-marvin.install b/debian/cloudstack-marvin.install
new file mode 100644
index 0000000..5dca252
--- /dev/null
+++ b/debian/cloudstack-marvin.install
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+/usr/share/cloudstack-marvin/Marvin*.tar.gz

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/debian/cloudstack-marvin.postinst
----------------------------------------------------------------------
diff --git a/debian/cloudstack-marvin.postinst b/debian/cloudstack-marvin.postinst
new file mode 100644
index 0000000..5bdd85d
--- /dev/null
+++ b/debian/cloudstack-marvin.postinst
@@ -0,0 +1,23 @@
+#!/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.
+
+set -e
+
+pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
+pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/debian/control
----------------------------------------------------------------------
diff --git a/debian/control b/debian/control
index 42cff9d..5e9c056 100644
--- a/debian/control
+++ b/debian/control
@@ -45,3 +45,13 @@ Package: cloudstack-docs
 Architecture: all
 Depends: ${misc:Depends}
 Description: The CloudStack documentation
+
+Package: cloudstack-marvin
+Architecture: all
+Depends: ${misc:Depends}, python-pip, python-dev, libffi-dev
+Description: The CloudStack Marvin library
+
+Package: cloudstack-integration-tests
+Architecture: all
+Depends: ${misc:Depends}, cloudstack-marvin (= ${source:Version})
+Description: The CloudStack Marvin integration tests

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/debian/rules
----------------------------------------------------------------------
diff --git a/debian/rules b/debian/rules
index 05f9f34..f996699 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,7 @@ override_dh_auto_configure:
 	echo VERSION=${VERSION} >> replace.properties.tmp
 
 override_dh_auto_build:
-	mvn -T C1.5 clean package -Psystemvm -DskipTests -Dsystemvm \
+	mvn -T C1.5 clean package -Psystemvm,developer -Dsystemvm \
 	    -Dcs.replace.properties=replace.properties.tmp \
 	    -Dmaven.repo.local=$(HOME)/.m2/repository \
 	     ${ACS_BUILD_OPTS}
@@ -125,6 +125,14 @@ override_dh_auto_install:
 	cp usage/target/transformed/log4j-cloud_usage.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/usage/log4j-cloud.xml
 	install -D packaging/debian/init/cloud-usage $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage
 
+	# cloudstack-marvin
+	mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-marvin
+	cp tools/marvin/dist/Marvin-*.tar.gz $(DESTDIR)/usr/share/$(PACKAGE)-marvin/
+
+	# cloudstack-integration-tests
+	mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-integration-tests
+	cp -r test/integration/* $(DESTDIR)/usr/share/$(PACKAGE)-integration-tests/
+
 override_dh_installinit:
 	dh_installinit -pcloudstack-management -pcloudstack-agent -pcloudstack-usage --onlyscripts --no-start
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/packaging/centos63/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index b000bd1..6458c3d 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -169,6 +169,24 @@ Group: System Environment/Libraries
 %description cli
 Apache CloudStack command line interface
 
+%package marvin
+Summary: Apache CloudStack Marvin library
+Requires: python-pip
+Requires: gcc
+Requires: python-devel
+Requires: libffi-devel
+Requires: openssl-devel
+Group: System Environment/Libraries
+%description marvin
+Apache CloudStack Marvin library
+
+%package integration-tests
+Summary: Apache CloudStack Marvin integration tests
+Requires: %{name}-marvin = %{_ver}
+Group: System Environment/Libraries
+%description integration-tests
+Apache CloudStack Marvin integration tests
+
 %if "%{_ossnoss}" == "noredist"
 %package mysql-ha
 Summary: Apache CloudStack Balancing Strategy for MySQL
@@ -197,18 +215,18 @@ if [ "%{_ossnoss}" == "NOREDIST" -o "%{_ossnoss}" == "noredist" ] ; then
    echo "Executing mvn packaging with non-redistributable libraries"
    if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then 
       echo "Executing mvn noredist packaging with simulator ..."
-      mvn -Psystemvm -Dnoredist -Dsimulator clean package
+      mvn -Psystemvm,developer -Dnoredist -Dsimulator clean package
    else
       echo "Executing mvn noredist packaging without simulator..."
-      mvn -Psystemvm -Dnoredist clean package
+      mvn -Psystemvm,developer -Dnoredist clean package
    fi
 else
    if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then 
       echo "Executing mvn default packaging simulator ..."
-      mvn -Psystemvm -Dsimulator clean package
+      mvn -Psystemvm,developer -Dsimulator clean package
    else
       echo "Executing mvn default packaging without simulator ..."
-      mvn -Psystemvm clean package
+      mvn -Psystemvm,developer clean package
    fi
 fi 
 
@@ -344,6 +362,14 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
 cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}%{python_sitearch}/
 install cloud-cli/cloudapis/cloud.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloudapis.py
 
+# Marvin
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin
+cp tools/marvin/dist/Marvin-*.tar.gz ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin/
+
+# integration-tests
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests
+cp -r test/integration/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests/
+
 # MYSQL HA
 if [ "x%{_ossnoss}" == "xnoredist" ] ; then
   mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
@@ -361,6 +387,10 @@ install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage
 install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
 install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
+install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
+install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
+install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
+install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
 if [ "x%{_ossnoss}" == "xnoredist" ] ; then
   install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
   install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
@@ -522,6 +552,10 @@ if [ -f "%{_sysconfdir}/%{name}/management/key" ]; then
     ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
 fi
 
+%post marvin
+pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
+pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
+
 #No default permission as the permission setup is complex
 %files management
 %defattr(-,root,root,-)
@@ -628,6 +662,16 @@ fi
 %{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
 
+%files marvin
+%attr(0644,root,root) %{_datadir}/%{name}-marvin/Marvin*.tar.gz
+%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
+%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
+
+%files integration-tests
+%attr(0755,root,root) %{_datadir}/%{name}-integration-tests/*
+%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
+%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
+
 %if "%{_ossnoss}" == "noredist"
 %files mysql-ha
 %defattr(0644,cloud,cloud,0755)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/packaging/centos7/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec
index e94ef65..bee22e9 100644
--- a/packaging/centos7/cloud.spec
+++ b/packaging/centos7/cloud.spec
@@ -144,6 +144,24 @@ Group: System Environment/Libraries
 %description cli
 Apache CloudStack command line interface
 
+%package marvin
+Summary: Apache CloudStack Marvin library
+Requires: python-pip
+Requires: gcc
+Requires: python-devel
+Requires: libffi-devel
+Requires: openssl-devel
+Group: System Environment/Libraries
+%description marvin
+Apache CloudStack Marvin library
+
+%package integration-tests
+Summary: Apache CloudStack Marvin integration tests
+Requires: %{name}-marvin = %{_ver}
+Group: System Environment/Libraries
+%description integration-tests
+Apache CloudStack Marvin integration tests
+
 %if "%{_ossnoss}" == "noredist"
 %package mysql-ha
 Summary: Apache CloudStack Balancing Strategy for MySQL
@@ -178,7 +196,7 @@ if [ "%{_sim}" == "SIMULATOR" -o "%{_sim}" == "simulator" ] ; then
    FLAGS="$FLAGS -Dsimulator"
 fi
 
-mvn -Psystemvm -DskipTests $FLAGS clean package
+mvn -Psystemvm,developer -DskipTests $FLAGS clean package
 
 %install
 [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
@@ -316,6 +334,14 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
 cp -r cloud-cli/cloudtool ${RPM_BUILD_ROOT}%{python_sitearch}/
 install cloud-cli/cloudapis/cloud.py ${RPM_BUILD_ROOT}%{python_sitearch}/cloudapis.py
 
+# Marvin
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin
+cp tools/marvin/dist/Marvin-*.tar.gz ${RPM_BUILD_ROOT}%{_datadir}/%{name}-marvin/
+
+# integration-tests
+mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests
+cp -r test/integration/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-integration-tests/
+
 # MYSQL HA
 if [ "x%{_ossnoss}" == "xnoredist" ] ; then
   mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-mysql-ha/lib
@@ -333,6 +359,10 @@ install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage
 install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
 install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
 install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
+install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
+install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
+install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
+install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
 if [ "x%{_ossnoss}" == "xnoredist" ] ; then
   install -D tools/whisker/LICENSE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/LICENSE
   install -D tools/whisker/NOTICE ${RPM_BUILD_ROOT}%{_defaultdocdir}/%{name}-mysql-ha-%{version}/NOTICE
@@ -419,6 +449,10 @@ if [ -f "%{_sysconfdir}/%{name}/management/key" ]; then
     ln -s %{_sysconfdir}/%{name}/management/key %{_sysconfdir}/%{name}/usage/key
 fi
 
+%post marvin
+pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
+pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
+
 #No default permission as the permission setup is complex
 %files management
 %defattr(-,root,root,-)
@@ -524,6 +558,16 @@ fi
 %{_defaultdocdir}/%{name}-cli-%{version}/LICENSE
 %{_defaultdocdir}/%{name}-cli-%{version}/NOTICE
 
+%files marvin
+%attr(0644,root,root) %{_datadir}/%{name}-marvin/Marvin*.tar.gz
+%{_defaultdocdir}/%{name}-marvin-%{version}/LICENSE
+%{_defaultdocdir}/%{name}-marvin-%{version}/NOTICE
+
+%files integration-tests
+%attr(0755,root,root) %{_datadir}/%{name}-integration-tests/*
+%{_defaultdocdir}/%{name}-integration-tests-%{version}/LICENSE
+%{_defaultdocdir}/%{name}-integration-tests-%{version}/NOTICE
+
 %if "%{_ossnoss}" == "noredist"
 %files mysql-ha
 %defattr(0644,cloud,cloud,0755)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index af9eb76..dd528a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,13 @@
     <url>https://issues.apache.org/jira/browse/CLOUDSTACK</url>
   </issueManagement>
 
+  <repositories>
+    <repository>
+      <id>juniper-contrail</id>
+      <url>http://juniper.github.io/contrail-maven/snapshots</url>
+    </repository>
+  </repositories>
+
   <prerequisites>
     <maven>3.0.4</maven>
   </prerequisites>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de041df7/tools/marvin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 2c8973d..2ce96ee 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -73,8 +73,8 @@
             </configuration>
           </execution>
           <execution>
-            <id>install</id>
-            <phase>install</phase>
+            <id>package</id>
+            <phase>package</phase>
             <goals>
               <goal>exec</goal>
             </goals>


[29/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Updating pom.xml version numbers for release 4.10.0-SNAPSHOT

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: 62aa3b2bfaeb665ba960d8115cb93541bb42adc4
Parents: d302269
Author: Will Stevens <wi...@gmail.com>
Authored: Fri Jul 29 10:11:34 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Fri Jul 29 10:11:34 2016 -0400

----------------------------------------------------------------------
 agent/pom.xml                                                 | 2 +-
 api/pom.xml                                                   | 2 +-
 client/pom.xml                                                | 2 +-
 core/pom.xml                                                  | 2 +-
 debian/changelog                                              | 2 +-
 developer/pom.xml                                             | 2 +-
 engine/api/pom.xml                                            | 2 +-
 engine/components-api/pom.xml                                 | 2 +-
 engine/network/pom.xml                                        | 2 +-
 engine/orchestration/pom.xml                                  | 2 +-
 engine/pom.xml                                                | 2 +-
 engine/schema/pom.xml                                         | 2 +-
 engine/service/pom.xml                                        | 2 +-
 engine/storage/cache/pom.xml                                  | 2 +-
 engine/storage/datamotion/pom.xml                             | 2 +-
 engine/storage/image/pom.xml                                  | 2 +-
 engine/storage/integration-test/pom.xml                       | 2 +-
 engine/storage/pom.xml                                        | 2 +-
 engine/storage/snapshot/pom.xml                               | 2 +-
 engine/storage/volume/pom.xml                                 | 2 +-
 framework/cluster/pom.xml                                     | 2 +-
 framework/config/pom.xml                                      | 2 +-
 framework/db/pom.xml                                          | 2 +-
 framework/events/pom.xml                                      | 2 +-
 framework/ipc/pom.xml                                         | 2 +-
 framework/jobs/pom.xml                                        | 2 +-
 framework/managed-context/pom.xml                             | 2 +-
 framework/pom.xml                                             | 2 +-
 framework/quota/pom.xml                                       | 2 +-
 framework/rest/pom.xml                                        | 2 +-
 framework/security/pom.xml                                    | 2 +-
 framework/spring/lifecycle/pom.xml                            | 2 +-
 framework/spring/module/pom.xml                               | 2 +-
 maven-standard/pom.xml                                        | 2 +-
 plugins/acl/dynamic-role-based/pom.xml                        | 2 +-
 plugins/acl/static-role-based/pom.xml                         | 2 +-
 plugins/affinity-group-processors/explicit-dedication/pom.xml | 2 +-
 plugins/affinity-group-processors/host-anti-affinity/pom.xml  | 2 +-
 plugins/alert-handlers/snmp-alerts/pom.xml                    | 2 +-
 plugins/alert-handlers/syslog-alerts/pom.xml                  | 2 +-
 plugins/api/discovery/pom.xml                                 | 2 +-
 plugins/api/rate-limit/pom.xml                                | 2 +-
 plugins/api/solidfire-intg-test/pom.xml                       | 2 +-
 plugins/database/mysql-ha/pom.xml                             | 2 +-
 plugins/database/quota/pom.xml                                | 2 +-
 plugins/dedicated-resources/pom.xml                           | 2 +-
 plugins/deployment-planners/implicit-dedication/pom.xml       | 2 +-
 plugins/deployment-planners/user-concentrated-pod/pom.xml     | 2 +-
 plugins/deployment-planners/user-dispersing/pom.xml           | 2 +-
 plugins/event-bus/inmemory/pom.xml                            | 2 +-
 plugins/event-bus/kafka/pom.xml                               | 2 +-
 plugins/event-bus/rabbitmq/pom.xml                            | 2 +-
 plugins/file-systems/netapp/pom.xml                           | 2 +-
 plugins/ha-planners/skip-heurestics/pom.xml                   | 2 +-
 plugins/host-allocators/random/pom.xml                        | 2 +-
 plugins/hypervisors/baremetal/pom.xml                         | 2 +-
 plugins/hypervisors/hyperv/pom.xml                            | 2 +-
 plugins/hypervisors/kvm/pom.xml                               | 2 +-
 plugins/hypervisors/ovm/pom.xml                               | 2 +-
 plugins/hypervisors/ovm3/pom.xml                              | 2 +-
 plugins/hypervisors/simulator/pom.xml                         | 2 +-
 plugins/hypervisors/ucs/pom.xml                               | 2 +-
 plugins/hypervisors/vmware/pom.xml                            | 2 +-
 plugins/hypervisors/xenserver/pom.xml                         | 2 +-
 plugins/network-elements/bigswitch/pom.xml                    | 2 +-
 plugins/network-elements/brocade-vcs/pom.xml                  | 2 +-
 plugins/network-elements/cisco-vnmc/pom.xml                   | 2 +-
 plugins/network-elements/dns-notifier/pom.xml                 | 2 +-
 plugins/network-elements/elastic-loadbalancer/pom.xml         | 2 +-
 plugins/network-elements/f5/pom.xml                           | 2 +-
 plugins/network-elements/globodns/pom.xml                     | 2 +-
 plugins/network-elements/internal-loadbalancer/pom.xml        | 2 +-
 plugins/network-elements/juniper-contrail/pom.xml             | 2 +-
 plugins/network-elements/juniper-srx/pom.xml                  | 2 +-
 plugins/network-elements/midonet/pom.xml                      | 2 +-
 plugins/network-elements/netscaler/pom.xml                    | 2 +-
 plugins/network-elements/nicira-nvp/pom.xml                   | 4 ++--
 plugins/network-elements/nuage-vsp/pom.xml                    | 2 +-
 plugins/network-elements/opendaylight/pom.xml                 | 2 +-
 plugins/network-elements/ovs/pom.xml                          | 2 +-
 plugins/network-elements/palo-alto/pom.xml                    | 2 +-
 plugins/network-elements/stratosphere-ssp/pom.xml             | 2 +-
 plugins/network-elements/vxlan/pom.xml                        | 2 +-
 plugins/outofbandmanagement-drivers/ipmitool/pom.xml          | 2 +-
 plugins/pom.xml                                               | 2 +-
 plugins/storage-allocators/random/pom.xml                     | 2 +-
 plugins/storage/image/default/pom.xml                         | 2 +-
 plugins/storage/image/s3/pom.xml                              | 2 +-
 plugins/storage/image/sample/pom.xml                          | 2 +-
 plugins/storage/image/swift/pom.xml                           | 2 +-
 plugins/storage/volume/cloudbyte/pom.xml                      | 2 +-
 plugins/storage/volume/default/pom.xml                        | 2 +-
 plugins/storage/volume/nexenta/pom.xml                        | 2 +-
 plugins/storage/volume/sample/pom.xml                         | 2 +-
 plugins/storage/volume/solidfire/pom.xml                      | 2 +-
 plugins/user-authenticators/ldap/pom.xml                      | 2 +-
 plugins/user-authenticators/md5/pom.xml                       | 2 +-
 plugins/user-authenticators/pbkdf2/pom.xml                    | 2 +-
 plugins/user-authenticators/plain-text/pom.xml                | 2 +-
 plugins/user-authenticators/saml2/pom.xml                     | 2 +-
 plugins/user-authenticators/sha256salted/pom.xml              | 2 +-
 pom.xml                                                       | 2 +-
 quickcloud/pom.xml                                            | 2 +-
 server/pom.xml                                                | 2 +-
 services/console-proxy-rdp/rdpconsole/pom.xml                 | 2 +-
 services/console-proxy/plugin/pom.xml                         | 2 +-
 services/console-proxy/pom.xml                                | 2 +-
 services/console-proxy/server/pom.xml                         | 2 +-
 services/iam/plugin/pom.xml                                   | 2 +-
 services/iam/server/pom.xml                                   | 2 +-
 services/pom.xml                                              | 2 +-
 services/secondary-storage/controller/pom.xml                 | 2 +-
 services/secondary-storage/pom.xml                            | 2 +-
 services/secondary-storage/server/pom.xml                     | 2 +-
 systemvm/pom.xml                                              | 2 +-
 test/pom.xml                                                  | 2 +-
 tools/apidoc/pom.xml                                          | 2 +-
 tools/checkstyle/pom.xml                                      | 2 +-
 tools/devcloud-kvm/pom.xml                                    | 2 +-
 tools/devcloud/pom.xml                                        | 2 +-
 tools/devcloud4/pom.xml                                       | 2 +-
 tools/marvin/pom.xml                                          | 2 +-
 tools/marvin/setup.py                                         | 2 +-
 tools/pom.xml                                                 | 2 +-
 tools/wix-cloudstack-maven-plugin/pom.xml                     | 2 +-
 usage/pom.xml                                                 | 2 +-
 utils/pom.xml                                                 | 2 +-
 vmware-base/pom.xml                                           | 2 +-
 128 files changed, 129 insertions(+), 129 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/agent/pom.xml
----------------------------------------------------------------------
diff --git a/agent/pom.xml b/agent/pom.xml
index 9ff0c5e..51f70db 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/api/pom.xml
----------------------------------------------------------------------
diff --git a/api/pom.xml b/api/pom.xml
index 6b9c98f..421e06c 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index 7310cef..d686892 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index f50f8af..ba404b0 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 04ae4f7..fd26831 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-cloudstack (4.9.0-SNAPSHOT) unstable; urgency=low
+cloudstack (4.10.0-SNAPSHOT) unstable; urgency=low
 
   [ Remi Bergsma ]
   * Update the version to 4.9.0.snapshot

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/developer/pom.xml
----------------------------------------------------------------------
diff --git a/developer/pom.xml b/developer/pom.xml
index b7d7000..9fe9315 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/api/pom.xml
----------------------------------------------------------------------
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 1f539fb..6d358e8 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/components-api/pom.xml
----------------------------------------------------------------------
diff --git a/engine/components-api/pom.xml b/engine/components-api/pom.xml
index 7ea56d6..ab7463d 100644
--- a/engine/components-api/pom.xml
+++ b/engine/components-api/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/network/pom.xml
----------------------------------------------------------------------
diff --git a/engine/network/pom.xml b/engine/network/pom.xml
index a41ed26..cccc0f7 100644
--- a/engine/network/pom.xml
+++ b/engine/network/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/orchestration/pom.xml
----------------------------------------------------------------------
diff --git a/engine/orchestration/pom.xml b/engine/orchestration/pom.xml
index ee3bb34..d0c97e6 100755
--- a/engine/orchestration/pom.xml
+++ b/engine/orchestration/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/pom.xml
----------------------------------------------------------------------
diff --git a/engine/pom.xml b/engine/pom.xml
index c3c0b28..68a9e6a 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/schema/pom.xml
----------------------------------------------------------------------
diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml
index 4d0b90d..d63d24b 100644
--- a/engine/schema/pom.xml
+++ b/engine/schema/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/service/pom.xml
----------------------------------------------------------------------
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index 7f07323..8d47cae 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>cloud-engine-service</artifactId>
   <packaging>war</packaging>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/cache/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/cache/pom.xml b/engine/storage/cache/pom.xml
index 976a2e7..9418536 100644
--- a/engine/storage/cache/pom.xml
+++ b/engine/storage/cache/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/datamotion/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/datamotion/pom.xml b/engine/storage/datamotion/pom.xml
index 3324270..5f4497a 100644
--- a/engine/storage/datamotion/pom.xml
+++ b/engine/storage/datamotion/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/image/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/image/pom.xml b/engine/storage/image/pom.xml
index 779f139..9c75670 100644
--- a/engine/storage/image/pom.xml
+++ b/engine/storage/image/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/integration-test/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/integration-test/pom.xml b/engine/storage/integration-test/pom.xml
index d648129..5f7a898 100644
--- a/engine/storage/integration-test/pom.xml
+++ b/engine/storage/integration-test/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/pom.xml b/engine/storage/pom.xml
index cf9a8ea..4866632 100644
--- a/engine/storage/pom.xml
+++ b/engine/storage/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/snapshot/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/snapshot/pom.xml b/engine/storage/snapshot/pom.xml
index eda47be..d0626ee 100644
--- a/engine/storage/snapshot/pom.xml
+++ b/engine/storage/snapshot/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/engine/storage/volume/pom.xml
----------------------------------------------------------------------
diff --git a/engine/storage/volume/pom.xml b/engine/storage/volume/pom.xml
index 340010b..c21148c 100644
--- a/engine/storage/volume/pom.xml
+++ b/engine/storage/volume/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/cluster/pom.xml
----------------------------------------------------------------------
diff --git a/framework/cluster/pom.xml b/framework/cluster/pom.xml
index d14e5c4..d1d95e6 100644
--- a/framework/cluster/pom.xml
+++ b/framework/cluster/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/config/pom.xml
----------------------------------------------------------------------
diff --git a/framework/config/pom.xml b/framework/config/pom.xml
index 349e9f2..f928863 100644
--- a/framework/config/pom.xml
+++ b/framework/config/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/db/pom.xml
----------------------------------------------------------------------
diff --git a/framework/db/pom.xml b/framework/db/pom.xml
index 71b9af3..6882ccb 100644
--- a/framework/db/pom.xml
+++ b/framework/db/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/events/pom.xml
----------------------------------------------------------------------
diff --git a/framework/events/pom.xml b/framework/events/pom.xml
index a633a77..9133873 100644
--- a/framework/events/pom.xml
+++ b/framework/events/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/ipc/pom.xml
----------------------------------------------------------------------
diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml
index 0341ff7..1e0c0d9 100644
--- a/framework/ipc/pom.xml
+++ b/framework/ipc/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/jobs/pom.xml
----------------------------------------------------------------------
diff --git a/framework/jobs/pom.xml b/framework/jobs/pom.xml
index ff17f48..2925292 100644
--- a/framework/jobs/pom.xml
+++ b/framework/jobs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>  
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/managed-context/pom.xml
----------------------------------------------------------------------
diff --git a/framework/managed-context/pom.xml b/framework/managed-context/pom.xml
index e2058fe..894f4bd 100644
--- a/framework/managed-context/pom.xml
+++ b/framework/managed-context/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../maven-standard/pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/pom.xml
----------------------------------------------------------------------
diff --git a/framework/pom.xml b/framework/pom.xml
index a60841c..1dc3c7e 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <build>
     <defaultGoal>install</defaultGoal>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/quota/pom.xml
----------------------------------------------------------------------
diff --git a/framework/quota/pom.xml b/framework/quota/pom.xml
index 82d43cd..fc1b70b 100644
--- a/framework/quota/pom.xml
+++ b/framework/quota/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/rest/pom.xml
----------------------------------------------------------------------
diff --git a/framework/rest/pom.xml b/framework/rest/pom.xml
index 03aad76..94ded04 100644
--- a/framework/rest/pom.xml
+++ b/framework/rest/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-framework-rest</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/security/pom.xml
----------------------------------------------------------------------
diff --git a/framework/security/pom.xml b/framework/security/pom.xml
index cfe04de..fcff26b 100644
--- a/framework/security/pom.xml
+++ b/framework/security/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/spring/lifecycle/pom.xml
----------------------------------------------------------------------
diff --git a/framework/spring/lifecycle/pom.xml b/framework/spring/lifecycle/pom.xml
index 93160c4..de892c5 100644
--- a/framework/spring/lifecycle/pom.xml
+++ b/framework/spring/lifecycle/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/framework/spring/module/pom.xml
----------------------------------------------------------------------
diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml
index 6f89f53..f288b14 100644
--- a/framework/spring/module/pom.xml
+++ b/framework/spring/module/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/maven-standard/pom.xml
----------------------------------------------------------------------
diff --git a/maven-standard/pom.xml b/maven-standard/pom.xml
index 6f8530a..9480d81 100644
--- a/maven-standard/pom.xml
+++ b/maven-standard/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/acl/dynamic-role-based/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/acl/dynamic-role-based/pom.xml b/plugins/acl/dynamic-role-based/pom.xml
index 96d7e53..b049b44 100644
--- a/plugins/acl/dynamic-role-based/pom.xml
+++ b/plugins/acl/dynamic-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/acl/static-role-based/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/acl/static-role-based/pom.xml b/plugins/acl/static-role-based/pom.xml
index 62ba166..b9073c1 100644
--- a/plugins/acl/static-role-based/pom.xml
+++ b/plugins/acl/static-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/affinity-group-processors/explicit-dedication/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/affinity-group-processors/explicit-dedication/pom.xml b/plugins/affinity-group-processors/explicit-dedication/pom.xml
index d4fc0f1..8bddb66 100644
--- a/plugins/affinity-group-processors/explicit-dedication/pom.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/affinity-group-processors/host-anti-affinity/pom.xml b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
index 58e205d..dc89ab7 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/alert-handlers/snmp-alerts/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/alert-handlers/snmp-alerts/pom.xml b/plugins/alert-handlers/snmp-alerts/pom.xml
index 7cbca89..5b1503f 100644
--- a/plugins/alert-handlers/snmp-alerts/pom.xml
+++ b/plugins/alert-handlers/snmp-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/alert-handlers/syslog-alerts/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/alert-handlers/syslog-alerts/pom.xml b/plugins/alert-handlers/syslog-alerts/pom.xml
index e4616ac..1d3acb4 100644
--- a/plugins/alert-handlers/syslog-alerts/pom.xml
+++ b/plugins/alert-handlers/syslog-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/api/discovery/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/discovery/pom.xml b/plugins/api/discovery/pom.xml
index 049061a..9551fa6 100644
--- a/plugins/api/discovery/pom.xml
+++ b/plugins/api/discovery/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/api/rate-limit/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/rate-limit/pom.xml b/plugins/api/rate-limit/pom.xml
index 3e826c2..1a82334 100644
--- a/plugins/api/rate-limit/pom.xml
+++ b/plugins/api/rate-limit/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/api/solidfire-intg-test/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/api/solidfire-intg-test/pom.xml b/plugins/api/solidfire-intg-test/pom.xml
index fa5302b..00b6857 100644
--- a/plugins/api/solidfire-intg-test/pom.xml
+++ b/plugins/api/solidfire-intg-test/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/database/mysql-ha/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml
index c275743..319fb15 100644
--- a/plugins/database/mysql-ha/pom.xml
+++ b/plugins/database/mysql-ha/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/database/quota/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml
index b429c0d..082fdd8 100644
--- a/plugins/database/quota/pom.xml
+++ b/plugins/database/quota/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/dedicated-resources/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/dedicated-resources/pom.xml b/plugins/dedicated-resources/pom.xml
index 040e936..abab023 100644
--- a/plugins/dedicated-resources/pom.xml
+++ b/plugins/dedicated-resources/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/deployment-planners/implicit-dedication/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/implicit-dedication/pom.xml b/plugins/deployment-planners/implicit-dedication/pom.xml
index f0f817c..fd81dd5 100644
--- a/plugins/deployment-planners/implicit-dedication/pom.xml
+++ b/plugins/deployment-planners/implicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/deployment-planners/user-concentrated-pod/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/user-concentrated-pod/pom.xml b/plugins/deployment-planners/user-concentrated-pod/pom.xml
index d27188d..5a71b01 100644
--- a/plugins/deployment-planners/user-concentrated-pod/pom.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/deployment-planners/user-dispersing/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/deployment-planners/user-dispersing/pom.xml b/plugins/deployment-planners/user-dispersing/pom.xml
index 413993f..d9ff3cf 100644
--- a/plugins/deployment-planners/user-dispersing/pom.xml
+++ b/plugins/deployment-planners/user-dispersing/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/event-bus/inmemory/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/inmemory/pom.xml b/plugins/event-bus/inmemory/pom.xml
index efbf290..8f284a2 100644
--- a/plugins/event-bus/inmemory/pom.xml
+++ b/plugins/event-bus/inmemory/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/event-bus/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index 2bae703..a6cf948 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/event-bus/rabbitmq/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index 7e79709..2bbe15a 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/file-systems/netapp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/file-systems/netapp/pom.xml b/plugins/file-systems/netapp/pom.xml
index 2b2c7bd..0414c31 100644
--- a/plugins/file-systems/netapp/pom.xml
+++ b/plugins/file-systems/netapp/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/ha-planners/skip-heurestics/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/ha-planners/skip-heurestics/pom.xml b/plugins/ha-planners/skip-heurestics/pom.xml
index 1511f8d..3480f79 100644
--- a/plugins/ha-planners/skip-heurestics/pom.xml
+++ b/plugins/ha-planners/skip-heurestics/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/host-allocators/random/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/host-allocators/random/pom.xml b/plugins/host-allocators/random/pom.xml
index 62284c2..3c5a64c 100644
--- a/plugins/host-allocators/random/pom.xml
+++ b/plugins/host-allocators/random/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/baremetal/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/pom.xml b/plugins/hypervisors/baremetal/pom.xml
index 6e569cf..e6b4a91 100755
--- a/plugins/hypervisors/baremetal/pom.xml
+++ b/plugins/hypervisors/baremetal/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-hypervisor-baremetal</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/hyperv/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/hyperv/pom.xml b/plugins/hypervisors/hyperv/pom.xml
index 165eaf6..f6017c0 100644
--- a/plugins/hypervisors/hyperv/pom.xml
+++ b/plugins/hypervisors/hyperv/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/kvm/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/pom.xml b/plugins/hypervisors/kvm/pom.xml
index f8100a5..f87f2ec 100644
--- a/plugins/hypervisors/kvm/pom.xml
+++ b/plugins/hypervisors/kvm/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/ovm/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm/pom.xml b/plugins/hypervisors/ovm/pom.xml
index e754e63..584910a 100644
--- a/plugins/hypervisors/ovm/pom.xml
+++ b/plugins/hypervisors/ovm/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 8da1430..1dc6c1a 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/simulator/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml
index dbebba0..58e7125 100644
--- a/plugins/hypervisors/simulator/pom.xml
+++ b/plugins/hypervisors/simulator/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack-plugins</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>cloud-plugin-hypervisor-simulator</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/ucs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ucs/pom.xml b/plugins/hypervisors/ucs/pom.xml
index c8a14d1..e763411 100755
--- a/plugins/hypervisors/ucs/pom.xml
+++ b/plugins/hypervisors/ucs/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-hypervisor-ucs</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/vmware/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/pom.xml b/plugins/hypervisors/vmware/pom.xml
index 455fb58..9a4264b 100644
--- a/plugins/hypervisors/vmware/pom.xml
+++ b/plugins/hypervisors/vmware/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/hypervisors/xenserver/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/pom.xml b/plugins/hypervisors/xenserver/pom.xml
index d03ae54..495a632 100644
--- a/plugins/hypervisors/xenserver/pom.xml
+++ b/plugins/hypervisors/xenserver/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/bigswitch/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch/pom.xml b/plugins/network-elements/bigswitch/pom.xml
index 05603a6..3e93b37 100644
--- a/plugins/network-elements/bigswitch/pom.xml
+++ b/plugins/network-elements/bigswitch/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/brocade-vcs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/brocade-vcs/pom.xml b/plugins/network-elements/brocade-vcs/pom.xml
index c0ed17c..2f16048 100644
--- a/plugins/network-elements/brocade-vcs/pom.xml
+++ b/plugins/network-elements/brocade-vcs/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.cloudstack</groupId>
 		<artifactId>cloudstack-plugins</artifactId>
-		<version>4.9.0-SNAPSHOT</version>
+		<version>4.10.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/cisco-vnmc/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/cisco-vnmc/pom.xml b/plugins/network-elements/cisco-vnmc/pom.xml
index 2c8bb7f..74c77b8 100644
--- a/plugins/network-elements/cisco-vnmc/pom.xml
+++ b/plugins/network-elements/cisco-vnmc/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/dns-notifier/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/dns-notifier/pom.xml b/plugins/network-elements/dns-notifier/pom.xml
index 7db075f..f8ae5de 100644
--- a/plugins/network-elements/dns-notifier/pom.xml
+++ b/plugins/network-elements/dns-notifier/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-example-dns-notifier</artifactId>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/elastic-loadbalancer/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/elastic-loadbalancer/pom.xml b/plugins/network-elements/elastic-loadbalancer/pom.xml
index c52cc04..e867f5e 100644
--- a/plugins/network-elements/elastic-loadbalancer/pom.xml
+++ b/plugins/network-elements/elastic-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/f5/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/f5/pom.xml b/plugins/network-elements/f5/pom.xml
index 54533e7..e41cb12 100644
--- a/plugins/network-elements/f5/pom.xml
+++ b/plugins/network-elements/f5/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/globodns/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index 9d2c354..8b3dedb 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/internal-loadbalancer/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/internal-loadbalancer/pom.xml b/plugins/network-elements/internal-loadbalancer/pom.xml
index 0eb1523..4b9e636 100644
--- a/plugins/network-elements/internal-loadbalancer/pom.xml
+++ b/plugins/network-elements/internal-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/juniper-contrail/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index 13a3c5b..c478360 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/juniper-srx/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-srx/pom.xml b/plugins/network-elements/juniper-srx/pom.xml
index ba3ecd7..446ee9e 100644
--- a/plugins/network-elements/juniper-srx/pom.xml
+++ b/plugins/network-elements/juniper-srx/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/midonet/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/midonet/pom.xml b/plugins/network-elements/midonet/pom.xml
index 00ca4ae..44e636d 100644
--- a/plugins/network-elements/midonet/pom.xml
+++ b/plugins/network-elements/midonet/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/netscaler/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/pom.xml b/plugins/network-elements/netscaler/pom.xml
index d7b54e9..52f44c8 100644
--- a/plugins/network-elements/netscaler/pom.xml
+++ b/plugins/network-elements/netscaler/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/nicira-nvp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index 7ed0f23..0a1ce19 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -34,7 +34,7 @@
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-utils</artifactId>
-      <version>4.9.0-SNAPSHOT</version>
+      <version>4.10.0-SNAPSHOT</version>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/nuage-vsp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nuage-vsp/pom.xml b/plugins/network-elements/nuage-vsp/pom.xml
index 7369ba5..ae1ac5c 100644
--- a/plugins/network-elements/nuage-vsp/pom.xml
+++ b/plugins/network-elements/nuage-vsp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/opendaylight/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/opendaylight/pom.xml b/plugins/network-elements/opendaylight/pom.xml
index a5f2a26..ee2781c 100644
--- a/plugins/network-elements/opendaylight/pom.xml
+++ b/plugins/network-elements/opendaylight/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/ovs/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/ovs/pom.xml b/plugins/network-elements/ovs/pom.xml
index 4f5adf9..5e4e034 100644
--- a/plugins/network-elements/ovs/pom.xml
+++ b/plugins/network-elements/ovs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/palo-alto/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/palo-alto/pom.xml b/plugins/network-elements/palo-alto/pom.xml
index 555ef7a..4d37294 100644
--- a/plugins/network-elements/palo-alto/pom.xml
+++ b/plugins/network-elements/palo-alto/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/stratosphere-ssp/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/stratosphere-ssp/pom.xml b/plugins/network-elements/stratosphere-ssp/pom.xml
index 89e84db..e49da1b 100644
--- a/plugins/network-elements/stratosphere-ssp/pom.xml
+++ b/plugins/network-elements/stratosphere-ssp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/network-elements/vxlan/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/vxlan/pom.xml b/plugins/network-elements/vxlan/pom.xml
index 46e5af0..2a695d7 100644
--- a/plugins/network-elements/vxlan/pom.xml
+++ b/plugins/network-elements/vxlan/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
index be4cd86..0c15fbb 100644
--- a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
+++ b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index d05e630..990525c 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
 
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage-allocators/random/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 87cd5b5..4921b0a 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/image/default/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml
index b9c641c..dfa8d78 100644
--- a/plugins/storage/image/default/pom.xml
+++ b/plugins/storage/image/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/image/s3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/s3/pom.xml b/plugins/storage/image/s3/pom.xml
index d7ee437..56cde07 100644
--- a/plugins/storage/image/s3/pom.xml
+++ b/plugins/storage/image/s3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/image/sample/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml
index c63929e..6f35ef3 100644
--- a/plugins/storage/image/sample/pom.xml
+++ b/plugins/storage/image/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/image/swift/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/swift/pom.xml b/plugins/storage/image/swift/pom.xml
index a6c7dd1..7d2389f 100644
--- a/plugins/storage/image/swift/pom.xml
+++ b/plugins/storage/image/swift/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/volume/cloudbyte/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml
index 5372ab8..c1ed51c 100755
--- a/plugins/storage/volume/cloudbyte/pom.xml
+++ b/plugins/storage/volume/cloudbyte/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/volume/default/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/default/pom.xml b/plugins/storage/volume/default/pom.xml
index 1cba838..045b32e 100644
--- a/plugins/storage/volume/default/pom.xml
+++ b/plugins/storage/volume/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/volume/nexenta/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/nexenta/pom.xml b/plugins/storage/volume/nexenta/pom.xml
index e4d8ebe..fe3eb28 100644
--- a/plugins/storage/volume/nexenta/pom.xml
+++ b/plugins/storage/volume/nexenta/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/volume/sample/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml
index d649df2..6306d1c 100644
--- a/plugins/storage/volume/sample/pom.xml
+++ b/plugins/storage/volume/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/storage/volume/solidfire/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/solidfire/pom.xml b/plugins/storage/volume/solidfire/pom.xml
index 21b3636..37fea08 100644
--- a/plugins/storage/volume/solidfire/pom.xml
+++ b/plugins/storage/volume/solidfire/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/ldap/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/pom.xml b/plugins/user-authenticators/ldap/pom.xml
index 7b3b8f7..78131a6 100644
--- a/plugins/user-authenticators/ldap/pom.xml
+++ b/plugins/user-authenticators/ldap/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/md5/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/md5/pom.xml b/plugins/user-authenticators/md5/pom.xml
index f436f90..13b5511 100644
--- a/plugins/user-authenticators/md5/pom.xml
+++ b/plugins/user-authenticators/md5/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/pbkdf2/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/pbkdf2/pom.xml b/plugins/user-authenticators/pbkdf2/pom.xml
index b26636b..c60b22e 100644
--- a/plugins/user-authenticators/pbkdf2/pom.xml
+++ b/plugins/user-authenticators/pbkdf2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/plain-text/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/plain-text/pom.xml b/plugins/user-authenticators/plain-text/pom.xml
index 3598cc1..236811e 100644
--- a/plugins/user-authenticators/plain-text/pom.xml
+++ b/plugins/user-authenticators/plain-text/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/saml2/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/saml2/pom.xml b/plugins/user-authenticators/saml2/pom.xml
index 5e24df3..076a430 100644
--- a/plugins/user-authenticators/saml2/pom.xml
+++ b/plugins/user-authenticators/saml2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/plugins/user-authenticators/sha256salted/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/sha256salted/pom.xml b/plugins/user-authenticators/sha256salted/pom.xml
index fe5fa6f..c1f140c 100644
--- a/plugins/user-authenticators/sha256salted/pom.xml
+++ b/plugins/user-authenticators/sha256salted/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ecce49b..21d8899 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
 
   <groupId>org.apache.cloudstack</groupId>
   <artifactId>cloudstack</artifactId>
-  <version>4.9.0-SNAPSHOT</version>
+  <version>4.10.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Apache CloudStack</name>
   <description>Apache CloudStack is an IaaS (\u201cInfrastructure as a Service\u201d) cloud orchestration platform.</description>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/quickcloud/pom.xml
----------------------------------------------------------------------
diff --git a/quickcloud/pom.xml b/quickcloud/pom.xml
index 841a9c5..45ea397 100644
--- a/quickcloud/pom.xml
+++ b/quickcloud/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../maven-standard/pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 3269509..3edfedd 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/console-proxy-rdp/rdpconsole/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy-rdp/rdpconsole/pom.xml b/services/console-proxy-rdp/rdpconsole/pom.xml
index 628d039..2dea1fe 100755
--- a/services/console-proxy-rdp/rdpconsole/pom.xml
+++ b/services/console-proxy-rdp/rdpconsole/pom.xml
@@ -27,7 +27,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/console-proxy/plugin/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/plugin/pom.xml b/services/console-proxy/plugin/pom.xml
index dbaf857..6aad3fd 100644
--- a/services/console-proxy/plugin/pom.xml
+++ b/services/console-proxy/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/console-proxy/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/pom.xml b/services/console-proxy/pom.xml
index 9d5feec..dc25fb3 100644
--- a/services/console-proxy/pom.xml
+++ b/services/console-proxy/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/console-proxy/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/console-proxy/server/pom.xml b/services/console-proxy/server/pom.xml
index 541d242..0df0795 100644
--- a/services/console-proxy/server/pom.xml
+++ b/services/console-proxy/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/iam/plugin/pom.xml
----------------------------------------------------------------------
diff --git a/services/iam/plugin/pom.xml b/services/iam/plugin/pom.xml
index 974d216..156e9fb 100644
--- a/services/iam/plugin/pom.xml
+++ b/services/iam/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/iam/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/iam/server/pom.xml b/services/iam/server/pom.xml
index b2ad0a4..d3e6d45 100644
--- a/services/iam/server/pom.xml
+++ b/services/iam/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/pom.xml
----------------------------------------------------------------------
diff --git a/services/pom.xml b/services/pom.xml
index f315b5e..de20270 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/secondary-storage/controller/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/controller/pom.xml b/services/secondary-storage/controller/pom.xml
index bb88780..89901a4 100644
--- a/services/secondary-storage/controller/pom.xml
+++ b/services/secondary-storage/controller/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/secondary-storage/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index bce61d6..7e6c136 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modules>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/services/secondary-storage/server/pom.xml
----------------------------------------------------------------------
diff --git a/services/secondary-storage/server/pom.xml b/services/secondary-storage/server/pom.xml
index 50155cf..3c4d4a8 100644
--- a/services/secondary-storage/server/pom.xml
+++ b/services/secondary-storage/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
     <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/systemvm/pom.xml
----------------------------------------------------------------------
diff --git a/systemvm/pom.xml b/systemvm/pom.xml
index c72b56d..2a3ed05 100644
--- a/systemvm/pom.xml
+++ b/systemvm/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/test/pom.xml
----------------------------------------------------------------------
diff --git a/test/pom.xml b/test/pom.xml
index 3f1119f..8c1ac9e 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
     </parent>
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/apidoc/pom.xml
----------------------------------------------------------------------
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index 63af063..c6a2a99 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-tools</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <properties>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/checkstyle/pom.xml
----------------------------------------------------------------------
diff --git a/tools/checkstyle/pom.xml b/tools/checkstyle/pom.xml
index c0c39c9..9e0180c 100644
--- a/tools/checkstyle/pom.xml
+++ b/tools/checkstyle/pom.xml
@@ -24,7 +24,7 @@
     <name>Apache CloudStack Developer Tools - Checkstyle Configuration</name>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>checkstyle</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
 
     <build>
       <plugins>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/devcloud-kvm/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml
index b0e1234..82e0d82 100644
--- a/tools/devcloud-kvm/pom.xml
+++ b/tools/devcloud-kvm/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/devcloud/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud/pom.xml b/tools/devcloud/pom.xml
index 8644ff4..aa11a66 100644
--- a/tools/devcloud/pom.xml
+++ b/tools/devcloud/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/devcloud4/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
index e3cee0c..bd5102e 100644
--- a/tools/devcloud4/pom.xml
+++ b/tools/devcloud4/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/marvin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 391987b..ad42993 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.0-SNAPSHOT</version>
+    <version>4.10.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/marvin/setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index 7f3d9c8..fbb4832 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,7 +27,7 @@ except ImportError:
         raise RuntimeError("python setuptools is required to build Marvin")
 
 
-VERSION = "4.9.0-SNAPSHOT"
+VERSION = "4.10.0-SNAPSHOT"
 
 setup(name="Marvin",
       version=VERSION,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/62aa3b2b/tools/pom.xml
----------------------------------------------------------------------
diff --git a/tools/pom.xml b/tools/pom.xml
index 02ad318..f94108e 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,7 +27,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.0-SNAPSHOT</version>
+        <version>4.10.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <build>


[12/50] [abbrv] git commit: updated refs/heads/4.9-bountycastle-daan to 8a03127

Posted by bh...@apache.org.
Merge pull request #1595 from shapeblue/ui-resize-show-allusers

ui: show resize volume button to all users![screenshot from 2016-06-23 12-29-56](https://cloud.githubusercontent.com/assets/95203/16294438/436f6dbc-393e-11e6-91b5-cb2e49a01cc6.png)

The resize volume is support on all major hypervisors (Xen, VMware, KVM).
The hypervisor key is returned by the list volumes response only for admins
but not for users or domain admin users. This removes the check, as the operation
is supported on all major hypervisors that CloudStack supports.

With this bug fix all users would see resize volume button in the UI.

/cc @swill

* pr/1595:
  ui: show resize volume button to all users

Signed-off-by: Will Stevens <wi...@gmail.com>


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

Branch: refs/heads/4.9-bountycastle-daan
Commit: a38279de6a220eec726174130ae113c0c467b26d
Parents: c806f3d b68ae19
Author: Will Stevens <wi...@gmail.com>
Authored: Mon Jul 18 14:09:17 2016 -0400
Committer: Will Stevens <wi...@gmail.com>
Committed: Mon Jul 18 14:09:18 2016 -0400

----------------------------------------------------------------------
 ui/scripts/storage.js | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------