You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/09/10 23:50:31 UTC

[05/21] stratos git commit: Uplifting automation engine to v4.4.3, dynamically pick ports for integration tests

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/AutoscalingPolicyTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/AutoscalingPolicyTest.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/AutoscalingPolicyTest.java
new file mode 100644
index 0000000..de9e2d7
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/AutoscalingPolicyTest.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.integration.tests.policies;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.policy.autoscale.AutoscalePolicyBean;
+import org.apache.stratos.integration.common.RestConstants;
+import org.apache.stratos.integration.tests.StratosIntegrationTest;
+import org.testng.annotations.Test;
+
+import static org.testng.AssertJUnit.*;
+
+/**
+ * Test to handle autoscaling policy CRUD operations
+ */
+public class AutoscalingPolicyTest extends StratosIntegrationTest {
+    private static final Log log = LogFactory.getLog(AutoscalingPolicyTest.class);
+    private static final String RESOURCES_PATH = "/autoscaling-policy-test";
+
+    @Test(timeOut = GLOBAL_TEST_TIMEOUT)
+    public void testAutoscalingPolicy() {
+        log.info("-------------------------Started autoscaling policy test case-------------------------");
+        String policyId = "autoscaling-policy-autoscaling-policy-test";
+        try {
+            boolean added = restClientTenant1
+                    .addEntity(RESOURCES_PATH + RestConstants.AUTOSCALING_POLICIES_PATH + "/" + policyId + ".json",
+                            RestConstants.AUTOSCALING_POLICIES, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("Autoscaling policy did not added: [autoscaling-policy-id] %s", policyId), added,
+                    true);
+            AutoscalePolicyBean bean = (AutoscalePolicyBean) restClientTenant1.
+                    getEntity(RestConstants.AUTOSCALING_POLICIES, policyId,
+                            AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("[autoscaling-policy-id] %s is not correct", bean.getId()),
+                    bean.getId(), policyId);
+            assertEquals(String.format("[autoscaling-policy-id] %s RIF is not correct", policyId),
+                    bean.getLoadThresholds().getRequestsInFlight().getThreshold(), 35.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Memory is not correct", policyId),
+                    bean.getLoadThresholds().getMemoryConsumption().getThreshold(), 45.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Load is not correct", policyId),
+                    bean.getLoadThresholds().getLoadAverage().getThreshold(), 25.0, 0.0);
+
+            bean = (AutoscalePolicyBean) restClientTenant2.
+                    getEntity(RestConstants.AUTOSCALING_POLICIES, policyId,
+                            AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertNull("Auto scale policy exists for other tenant", bean);
+
+            boolean addedTenant2 = restClientTenant2
+                    .addEntity(RESOURCES_PATH + RestConstants.AUTOSCALING_POLICIES_PATH + "/" + policyId + ".json",
+                            RestConstants.AUTOSCALING_POLICIES, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("Autoscaling policy did not added: [autoscaling-policy-id] %s", policyId),
+                    addedTenant2, true);
+            bean = (AutoscalePolicyBean) restClientTenant2.
+                    getEntity(RestConstants.AUTOSCALING_POLICIES, policyId,
+                            AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("[autoscaling-policy-id] %s is not correct", bean.getId()),
+                    bean.getId(), policyId);
+            assertEquals(String.format("[autoscaling-policy-id] %s RIF is not correct", policyId),
+                    bean.getLoadThresholds().getRequestsInFlight().getThreshold(), 35.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Memory is not correct", policyId),
+                    bean.getLoadThresholds().getMemoryConsumption().getThreshold(), 45.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Load is not correct", policyId),
+                    bean.getLoadThresholds().getLoadAverage().getThreshold(), 25.0, 0.0);
+
+            boolean updated = restClientTenant1.updateEntity(
+                    RESOURCES_PATH + RestConstants.AUTOSCALING_POLICIES_PATH + "/" + policyId + "-v1.json",
+                    RestConstants.AUTOSCALING_POLICIES, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("[autoscaling-policy-id] %s update failed", policyId), updated, true);
+            AutoscalePolicyBean updatedBean = (AutoscalePolicyBean) restClientTenant1.getEntity(
+                    RestConstants.AUTOSCALING_POLICIES, policyId,
+                    AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(String.format("[autoscaling-policy-id] %s RIF is not correct", policyId),
+                    updatedBean.getLoadThresholds().getRequestsInFlight().getThreshold(), 30.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Load is not correct", policyId),
+                    updatedBean.getLoadThresholds().getMemoryConsumption().getThreshold(), 40.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Memory is not correct", policyId),
+                    updatedBean.getLoadThresholds().getLoadAverage().getThreshold(), 20.0, 0.0);
+
+            boolean updatedTenant2 = restClientTenant2.updateEntity(
+                    RESOURCES_PATH + RestConstants.AUTOSCALING_POLICIES_PATH + "/" + policyId + "-v1.json",
+                    RestConstants.AUTOSCALING_POLICIES, RestConstants.AUTOSCALING_POLICIES_NAME);
+
+            assertEquals(String.format("[autoscaling-policy-id] %s update failed", policyId), updatedTenant2, true);
+            AutoscalePolicyBean updatedTenant2Bean = (AutoscalePolicyBean) restClientTenant2.getEntity(
+                    RestConstants.AUTOSCALING_POLICIES, policyId,
+                    AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(String.format("[autoscaling-policy-id] %s RIF is not correct", policyId),
+                    updatedTenant2Bean.getLoadThresholds().getRequestsInFlight().getThreshold(), 30.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Load is not correct", policyId),
+                    updatedTenant2Bean.getLoadThresholds().getMemoryConsumption().getThreshold(), 40.0, 0.0);
+            assertEquals(String.format("[autoscaling-policy-id] %s Memory is not correct", policyId),
+                    updatedTenant2Bean.getLoadThresholds().getLoadAverage().getThreshold(), 20.0, 0.0);
+
+
+            boolean removed = restClientTenant1.removeEntity(RestConstants.AUTOSCALING_POLICIES,
+                    policyId, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(String.format("[autoscaling-policy-id] %s couldn't be removed", policyId),
+                    removed, true);
+
+            AutoscalePolicyBean beanRemoved = (AutoscalePolicyBean) restClientTenant1.getEntity(
+                    RestConstants.AUTOSCALING_POLICIES, policyId,
+                    AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(String.format("[autoscaling-policy-id] %s didn't get removed successfully",
+                    policyId), beanRemoved, null);
+
+            beanRemoved = (AutoscalePolicyBean) restClientTenant2.getEntity(
+                    RestConstants.AUTOSCALING_POLICIES, policyId,
+                    AutoscalePolicyBean.class, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertNotNull("Auto scale policy not exist in other tenant", beanRemoved);
+
+            removed = restClientTenant2.removeEntity(RestConstants.AUTOSCALING_POLICIES,
+                    policyId, RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(String.format("[autoscaling-policy-id] %s couldn't be removed", policyId),
+                    removed, true);
+
+            log.info("-------------------------Ended autoscaling policy test case---------------------------");
+        }
+        catch (Exception e) {
+            log.error("An error occurred while handling [autoscaling policy] " + policyId, e);
+            assertTrue("An error occurred while handling [autoscaling policy] " + policyId, false);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/DeploymentPolicyTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/DeploymentPolicyTest.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/DeploymentPolicyTest.java
new file mode 100644
index 0000000..89ee78a
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/DeploymentPolicyTest.java
@@ -0,0 +1,234 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.integration.tests.policies;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.partition.NetworkPartitionBean;
+import org.apache.stratos.common.beans.partition.NetworkPartitionReferenceBean;
+import org.apache.stratos.common.beans.partition.PartitionReferenceBean;
+import org.apache.stratos.common.beans.policy.deployment.DeploymentPolicyBean;
+import org.apache.stratos.integration.common.RestConstants;
+import org.apache.stratos.integration.tests.StratosIntegrationTest;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.AssertJUnit.*;
+
+/**
+ * Test to handle Deployment policy CRUD operations
+ */
+public class DeploymentPolicyTest extends StratosIntegrationTest {
+    private static final Log log = LogFactory.getLog(DeploymentPolicyTest.class);
+    private static final String RESOURCES_PATH = "/deployment-policy-test";
+
+    @Test(timeOut = GLOBAL_TEST_TIMEOUT)
+    public void testDeploymentPolicy() {
+        try {
+            String deploymentPolicyId = "deployment-policy-deployment-policy-test";
+            log.info("-------------------------Started deployment policy test case-------------------------");
+
+            boolean addedN1 = restClientTenant1.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            "network-partition-deployment-policy-test-1" + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN1, true);
+
+            boolean addedN2 = restClientTenant1.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            "network-partition-deployment-policy-test-2" + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN2, true);
+
+            boolean addedDep =
+                    restClientTenant1.addEntity(RESOURCES_PATH + RestConstants.DEPLOYMENT_POLICIES_PATH + "/" +
+                                    deploymentPolicyId + ".json",
+                            RestConstants.DEPLOYMENT_POLICIES, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(addedDep, true);
+
+            DeploymentPolicyBean bean = (DeploymentPolicyBean) restClientTenant1.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+
+            NetworkPartitionReferenceBean nw1 = bean.getNetworkPartitions().get(0);
+            NetworkPartitionReferenceBean nw2 = bean.getNetworkPartitions().get(1);
+            PartitionReferenceBean nw1P1 = nw1.getPartitions().get(0);
+            PartitionReferenceBean nw2P1 = nw2.getPartitions().get(0);
+            PartitionReferenceBean nw2P2 = nw2.getPartitions().get(1);
+
+            assertEquals(bean.getId(), "deployment-policy-deployment-policy-test");
+            assertEquals(bean.getNetworkPartitions().size(), 2);
+            assertEquals(nw1.getId(), "network-partition-deployment-policy-test-1");
+            assertEquals(nw1.getPartitionAlgo(), "one-after-another");
+            assertEquals(nw1.getPartitions().size(), 1);
+            assertEquals(nw1P1.getId(), "partition-1");
+            assertEquals(nw1P1.getPartitionMax(), 20);
+
+            assertEquals(nw2.getId(), "network-partition-deployment-policy-test-2");
+            assertEquals(nw2.getPartitionAlgo(), "round-robin");
+            assertEquals(nw2.getPartitions().size(), 2);
+            assertEquals(nw2P1.getId(),
+                    "network-partition-6-partition-1");
+            assertEquals(nw2P1.getPartitionMax(), 10);
+            assertEquals(nw2P2.getId(),
+                    "network-partition-6-partition-2");
+            assertEquals(nw2P2.getPartitionMax(), 9);
+
+            //update network partition
+            boolean updated =
+                    restClientTenant1.updateEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                                    "network-partition-deployment-policy-test-1-v1.json",
+                            RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(updated, true);
+
+            //update deployment policy with new partition and max values
+            boolean updatedDep =
+                    restClientTenant1.updateEntity(RESOURCES_PATH + RestConstants.DEPLOYMENT_POLICIES_PATH +
+                                    "/" + deploymentPolicyId + "-v1.json", RestConstants.DEPLOYMENT_POLICIES,
+                            RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(updatedDep, true);
+
+            DeploymentPolicyBean updatedBean = (DeploymentPolicyBean) restClientTenant1.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+
+            nw1 = updatedBean.getNetworkPartitions().get(0);
+            nw2 = updatedBean.getNetworkPartitions().get(1);
+            nw1P1 = nw1.getPartitions().get(0);
+            PartitionReferenceBean nw1P2 = nw1.getPartitions().get(1);
+            nw2P1 = nw2.getPartitions().get(0);
+            nw2P2 = nw2.getPartitions().get(1);
+
+            assertEquals(updatedBean.getId(), "deployment-policy-deployment-policy-test");
+            assertEquals(updatedBean.getNetworkPartitions().size(), 2);
+            assertEquals(nw1.getId(), "network-partition-deployment-policy-test-1");
+            assertEquals(nw1.getPartitionAlgo(), "one-after-another");
+            assertEquals(nw1.getPartitions().size(), 2);
+            assertEquals(nw1P1.getId(), "partition-1");
+            assertEquals(nw1P1.getPartitionMax(), 25);
+            assertEquals(nw1P2.getId(), "partition-2");
+            assertEquals(nw1P2.getPartitionMax(), 20);
+
+            assertEquals(nw2.getId(), "network-partition-deployment-policy-test-2");
+            assertEquals(nw2.getPartitionAlgo(), "round-robin");
+            assertEquals(nw2.getPartitions().size(), 2);
+            assertEquals(nw2P1.getId(),
+                    "network-partition-6-partition-1");
+            assertEquals(nw2P1.getPartitionMax(), 15);
+            assertEquals(nw2P2.getId(),
+                    "network-partition-6-partition-2");
+            assertEquals(nw2P2.getPartitionMax(), 5);
+
+            updatedBean = (DeploymentPolicyBean) restClientTenant2.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertNull("Deployment policy found in tenant 2", updatedBean);
+
+            addedN1 = restClientTenant2.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            "network-partition-deployment-policy-test-1" + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN1, true);
+
+            addedN2 = restClientTenant2.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            "network-partition-deployment-policy-test-2" + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN2, true);
+
+            addedDep = restClientTenant2.addEntity(RESOURCES_PATH + RestConstants.DEPLOYMENT_POLICIES_PATH + "/" +
+                            deploymentPolicyId + ".json",
+                    RestConstants.DEPLOYMENT_POLICIES, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(addedDep, true);
+
+            bean = (DeploymentPolicyBean) restClientTenant2.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertNotNull("Deployment policy not exist in other tenant", bean);
+
+            boolean removedNet = restClientTenant1.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-deployment-policy-test-1", RestConstants.NETWORK_PARTITIONS_NAME);
+            //Trying to remove the used network partition
+            assertEquals(removedNet, false);
+
+            boolean removedDep = restClientTenant1.removeEntity(RestConstants.DEPLOYMENT_POLICIES,
+                    deploymentPolicyId, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(removedDep, true);
+
+            DeploymentPolicyBean beanRemovedDep = (DeploymentPolicyBean) restClientTenant1.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(beanRemovedDep, null);
+
+            boolean removedN1 = restClientTenant1.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-deployment-policy-test-1", RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN1, true);
+
+            NetworkPartitionBean beanRemovedN1 = (NetworkPartitionBean) restClientTenant1.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, "network-partition-deployment-policy-test-1",
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemovedN1, null);
+
+            boolean removedN2 = restClientTenant1.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-deployment-policy-test-2", RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN2, true);
+
+            NetworkPartitionBean beanRemovedN2 = (NetworkPartitionBean) restClientTenant1.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, "network-partition-deployment-policy-test-2",
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemovedN2, null);
+
+            bean = (DeploymentPolicyBean) restClientTenant2.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertNotNull("Deployment policy not exist in other tenant", bean);
+
+            removedDep = restClientTenant2.removeEntity(RestConstants.DEPLOYMENT_POLICIES,
+                    deploymentPolicyId, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(removedDep, true);
+
+            beanRemovedDep = (DeploymentPolicyBean) restClientTenant2.
+                    getEntity(RestConstants.DEPLOYMENT_POLICIES, deploymentPolicyId,
+                            DeploymentPolicyBean.class, RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(beanRemovedDep, null);
+
+            removedN1 = restClientTenant2.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-deployment-policy-test-1", RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN1, true);
+
+            beanRemovedN1 = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, "network-partition-deployment-policy-test-1",
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemovedN1, null);
+
+            removedN2 = restClientTenant2.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-deployment-policy-test-2", RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN2, true);
+
+            beanRemovedN2 = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, "network-partition-deployment-policy-test-2",
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemovedN2, null);
+
+            log.info("-------------------------Ended deployment policy test case-------------------------");
+
+        }
+        catch (Exception e) {
+            log.error("An error occurred while handling deployment policy", e);
+            assertTrue("An error occurred while handling deployment policy", false);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/NetworkPartitionTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/NetworkPartitionTest.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/NetworkPartitionTest.java
new file mode 100644
index 0000000..c50c61d
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/policies/NetworkPartitionTest.java
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.integration.tests.policies;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.partition.NetworkPartitionBean;
+import org.apache.stratos.common.beans.partition.PartitionBean;
+import org.apache.stratos.integration.common.RestConstants;
+import org.apache.stratos.integration.tests.StratosIntegrationTest;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.AssertJUnit.*;
+
+/**
+ * Test to handle Network partition CRUD operations
+ */
+public class NetworkPartitionTest extends StratosIntegrationTest {
+    private static final Log log = LogFactory.getLog(NetworkPartitionTest.class);
+    private static final String RESOURCES_PATH = "/network-partition-test";
+
+    @Test(timeOut = GLOBAL_TEST_TIMEOUT)
+    public void testNetworkPartition() {
+        try {
+            String networkPartitionId = "network-partition-network-partition-test";
+            log.info("-------------------------Started network partition test case-------------------------");
+
+            boolean added = restClientTenant1.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            networkPartitionId + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+
+            assertEquals(added, true);
+            NetworkPartitionBean bean = (NetworkPartitionBean) restClientTenant1.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+
+            PartitionBean p1 = bean.getPartitions().get(0);
+            assertEquals(bean.getId(), "network-partition-network-partition-test");
+            assertEquals(bean.getPartitions().size(), 1);
+            assertEquals(p1.getId(), "partition-1");
+            assertEquals(p1.getProperty().get(0).getName(), "region");
+            assertEquals(p1.getProperty().get(0).getValue(), "default");
+
+            boolean updated =
+                    restClientTenant1.updateEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                                    networkPartitionId + "-v1.json",
+                            RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+
+            assertEquals(updated, true);
+            NetworkPartitionBean updatedBean = (NetworkPartitionBean) restClientTenant1.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+
+            PartitionBean p2 = updatedBean.getPartitions().get(1);
+            assertEquals(updatedBean.getId(), "network-partition-network-partition-test");
+            assertEquals(updatedBean.getPartitions().size(), 2);
+            assertEquals(p2.getId(), "partition-2");
+            assertEquals(p2.getProperty().get(0).getName(), "region");
+            assertEquals(p2.getProperty().get(0).getValue(), "default1");
+            assertEquals(p2.getProperty().get(1).getName(), "zone");
+            assertEquals(p2.getProperty().get(1).getValue(), "z1");
+
+            updatedBean = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertNull("Network partition found in tenant 2", updatedBean);
+
+            added = restClientTenant2.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            networkPartitionId + ".json",
+                    RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME);
+
+            assertEquals(added, true);
+            bean = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertNotNull("Network partition not exist in other tenant", bean);
+
+            boolean removed = restClientTenant1.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    networkPartitionId, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removed, true);
+
+            NetworkPartitionBean beanRemoved = (NetworkPartitionBean) restClientTenant1.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemoved, null);
+
+            bean = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertNotNull("Network partition not exist in other tenant", bean);
+
+            removed = restClientTenant2.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    networkPartitionId, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removed, true);
+
+            beanRemoved = (NetworkPartitionBean) restClientTenant2.
+                    getEntity(RestConstants.NETWORK_PARTITIONS, networkPartitionId,
+                            NetworkPartitionBean.class, RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(beanRemoved, null);
+
+            log.info("-------------------------Ended network partition test case-------------------------");
+        }
+        catch (Exception e) {
+            log.error("An error occurred while handling network partitions", e);
+            assertTrue("An error occurred while handling network partitions", false);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/TenantTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/TenantTest.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/TenantTest.java
new file mode 100644
index 0000000..494e3fc
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/TenantTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.integration.tests.users;
+
+import org.apache.stratos.integration.common.RestConstants;
+import org.apache.stratos.integration.tests.StratosIntegrationTest;
+import org.testng.annotations.Test;
+
+import static junit.framework.Assert.assertTrue;
+
+/**
+ * Handling users
+ */
+public class TenantTest extends StratosIntegrationTest {
+    private static final String RESOURCES_PATH = "/user-test";
+
+    @Test(timeOut = GLOBAL_TEST_TIMEOUT)
+    public void addUser() {
+        String tenantId = "tenant-1";
+        boolean addedUser1 = restClientAdmin.addEntity(RESOURCES_PATH + "/" +
+                        tenantId + ".json",
+                RestConstants.USERS, RestConstants.USERS_NAME);
+        assertTrue(addedUser1);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/UserTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/UserTest.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/UserTest.java
new file mode 100644
index 0000000..d073699
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/users/UserTest.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.integration.tests.users;
+
+import com.google.gson.reflect.TypeToken;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.UserInfoBean;
+import org.apache.stratos.integration.common.RestConstants;
+import org.apache.stratos.integration.tests.StratosIntegrationTest;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.testng.Assert.assertNull;
+import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertTrue;
+
+/**
+ * Handling users
+ */
+public class UserTest extends StratosIntegrationTest {
+    private static final Log log = LogFactory.getLog(UserTest.class);
+    private static final String RESOURCES_PATH = "/user-test";
+
+    @Test(timeOut = GLOBAL_TEST_TIMEOUT)
+    public void addUser() {
+        try {
+            log.info("-------------------------------Started users test case-------------------------------");
+            String userId = "user-1";
+            boolean addedUser1 = restClientAdmin.addEntity(RESOURCES_PATH + "/" +
+                            userId + ".json",
+                    RestConstants.USERS, RestConstants.USERS_NAME);
+            assertTrue(addedUser1);
+
+            Type listType = new TypeToken<ArrayList<UserInfoBean>>() {
+            }.getType();
+
+            List<UserInfoBean> userInfoBeanList = (List<UserInfoBean>) restClientAdmin.listEntity(RestConstants.USERS,
+                    listType, RestConstants.USERS_NAME);
+
+            UserInfoBean bean1 = null;
+            for (UserInfoBean userInfoBean : userInfoBeanList) {
+                if (userInfoBean.getUserName().equals(userId)) {
+                    bean1 = userInfoBean;
+                }
+            }
+            assertNotNull(bean1);
+            /*assertEquals(bean1.getEmail(), "foo@bar.com");
+            assertEquals(bean1.getFirstName(), "Frank");
+            assertEquals(bean1.getRole(), "admin");
+            assertEquals(bean1.getLastName(), "Myers");
+            assertEquals(bean1.getCredential(), "kim12345");*/
+
+            boolean updatedUser1 = restClientAdmin.updateEntity(RESOURCES_PATH + "/" +
+                            userId + "-v1.json",
+                    RestConstants.USERS, RestConstants.USERS_NAME);
+            assertTrue(updatedUser1);
+
+            userInfoBeanList = (List<UserInfoBean>) restClientAdmin.listEntity(RestConstants.USERS,
+                    listType, RestConstants.USERS_NAME);
+
+            for (UserInfoBean userInfoBean : userInfoBeanList) {
+                if (userInfoBean.getUserName().equals(userId)) {
+                    bean1 = userInfoBean;
+                }
+            }
+            assertNotNull(bean1);
+            /*assertEquals(bean1.getEmail(), "user-1@bar.com");
+            assertEquals(bean1.getFirstName(), "Frankn");
+            assertEquals(bean1.getRole(), "admin");
+            assertEquals(bean1.getLastName(), "Myersn");
+            assertEquals(bean1.getCredential(), "kim123456");*/
+
+            boolean removedUser1 = restClientAdmin.removeEntity(RestConstants.USERS,
+                    userId, RestConstants.USERS_NAME);
+            assertTrue(removedUser1);
+
+            userInfoBeanList = (List<UserInfoBean>) restClientAdmin.listEntity(RestConstants.USERS,
+                    listType, RestConstants.USERS_NAME);
+
+            bean1 = null;
+            for (UserInfoBean userInfoBean : userInfoBeanList) {
+                if (userInfoBean.getUserName().equals(userId)) {
+                    bean1 = userInfoBean;
+                }
+            }
+            assertNull(bean1);
+            log.info("-------------------------Ended users test case-------------------------");
+        }
+        catch (Exception e) {
+            log.error("An error occurred while handling  application bursting", e);
+            assertTrue("An error occurred while handling  application bursting", false);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/application-policies/application-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/application-policies/application-policy-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/application-policies/application-policy-application-bursting-test.json
new file mode 100644
index 0000000..4d1d35f
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/application-policies/application-policy-application-bursting-test.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-application-bursting-test",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-application-bursting-test-1",
+        "network-partition-application-bursting-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": "network-partition-application-bursting-test-1|network-partition-application-bursting-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/applications/app-bursting-single-cartriddge-group.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/applications/app-bursting-single-cartriddge-group.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/applications/app-bursting-single-cartriddge-group.json
new file mode 100644
index 0000000..c091ec5
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/applications/app-bursting-single-cartriddge-group.json
@@ -0,0 +1,70 @@
+{
+    "applicationId": "application-bursting-test",
+    "alias": "my-cartridge-group-app",
+    "components": {
+        "groups": [
+            {
+                "name": "esb-php-group-application-bursting-test",
+                "alias": "my-esb-php-group-application-bursting-test",
+                "deploymentPolicy": "deployment-policy-application-bursting-test",
+                "groupMinInstances": 1,
+                "groupMaxInstances": 2,
+                "cartridges": [
+                    {
+                        "type": "esb-application-bursting-test",
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "subscribableInfo": {
+                            "alias": "my-esb-application-bursting-test",
+                            "autoscalingPolicy": "autoscaling-policy-application-bursting-test",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": "https://github.com/imesh/stratos-esb-applications.git",
+                                "repoUsername": "",
+                                "repoPassword": ""
+                            }
+                        }
+                    },
+                    {
+                        "type": "php-application-bursting-test",
+                        "cartridgeMin": 2,
+                        "cartridgeMax": 4,
+                        "lvsVirtualIP": "192.168.56.50|255.255.255.0",
+                        "subscribableInfo": {
+                            "alias": "my-php-application-bursting-test",
+                            "autoscalingPolicy": "autoscaling-policy-application-bursting-test",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": "https://github.com/imesh/stratos-php-applications.git",
+                                "repoUsername": "",
+                                "repoPassword": ""
+                            }
+                        }
+                    }
+                ]
+            }
+        ],
+        "cartridges": [
+            {
+                "type": "tomcat-application-bursting-test",
+                "cartridgeMin": 2,
+                "cartridgeMax": 4,
+                "subscribableInfo": {
+                    "alias": "my-tomcat-application-bursting-test",
+                    "autoscalingPolicy": "autoscaling-policy-application-bursting-test",
+                    "deploymentPolicy": "deployment-policy-application-bursting-test",
+                    "artifactRepository": {
+                        "privateRepo": false,
+                        "repoUrl": "https://github.com/imesh/stratos-tomcat-applications.git",
+                        "repoUsername": "",
+                        "repoPassword": ""
+                    }
+                }
+            }
+        ],
+        "dependencies": {
+            "terminationBehaviour": "terminate-none"
+        }
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
new file mode 100644
index 0000000..697cb70
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
@@ -0,0 +1,14 @@
+{
+    "id": "autoscaling-policy-application-bursting-test",
+    "loadThresholds": {
+        "requestsInFlight": {
+            "threshold": 35
+        },
+        "memoryConsumption": {
+            "threshold": 45
+        },
+        "loadAverage": {
+            "threshold": 25
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges-groups/esb-php-group-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges-groups/esb-php-group-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges-groups/esb-php-group-application-bursting-test.json
new file mode 100644
index 0000000..8fbab89
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges-groups/esb-php-group-application-bursting-test.json
@@ -0,0 +1,19 @@
+{
+    "name": "esb-php-group-application-bursting-test",
+    "cartridges": [
+        "esb-application-bursting-test",
+        "php-application-bursting-test"
+    ],
+    "dependencies": {
+        "startupOrders": [
+            {
+                "aliases": [
+                    "cartridge.my-esb-application-bursting-test",
+                    "cartridge.my-php-application-bursting-test"
+                ]
+            }
+        ],
+        "terminationBehaviour": "terminate-none"
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/esb-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/esb-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/esb-application-bursting-test.json
new file mode 100755
index 0000000..d97f9ff
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/esb-application-bursting-test.json
@@ -0,0 +1,50 @@
+{
+    "type": "esb-application-bursting-test",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "framework",
+    "displayName": "esb-application-bursting-test",
+    "description": "esb-application-bursting-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ],
+    "metadataKeys": [
+        "server_ip",
+        "username",
+        "password"
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/php-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/php-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/php-application-bursting-test.json
new file mode 100755
index 0000000..02d0d9d
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/php-application-bursting-test.json
@@ -0,0 +1,51 @@
+{
+    "type": "php-application-bursting-test",
+    "provider": "apache",
+    "category": "framework",
+    "host": "php.stratos.org",
+    "displayName": "php-application-bursting-test",
+    "description": "php-application-bursting-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-80",
+            "protocol": "http",
+            "port": "8080",
+            "proxyPort": "8280"
+        },
+        {
+            "name": "http-22",
+            "protocol": "tcp",
+            "port": "22",
+            "proxyPort": "8222"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "reka"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/tomcat-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/tomcat-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/tomcat-application-bursting-test.json
new file mode 100755
index 0000000..b63d568
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/cartridges/mock/tomcat-application-bursting-test.json
@@ -0,0 +1,53 @@
+{
+    "type": "tomcat-application-bursting-test",
+    "provider": "apache",
+    "host": "tomcat.stratos.org",
+    "category": "framework",
+    "displayName": "tomcat-application-bursting-test",
+    "description": "tomcat-application-bursting-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        },
+        {
+            "protocol": "http",
+            "port": "8080",
+            "proxyPort": "80"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ],
+    "metadataKeys": [
+        "url"
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/deployment-policies/deployment-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/deployment-policies/deployment-policy-application-bursting-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/deployment-policies/deployment-policy-application-bursting-test.json
new file mode 100644
index 0000000..4adc0f2
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/deployment-policies/deployment-policy-application-bursting-test.json
@@ -0,0 +1,32 @@
+{
+    "id": "deployment-policy-application-bursting-test",
+    "networkPartitions": [
+        {
+            "id": "network-partition-application-bursting-test-1",
+            "partitionAlgo": "one-after-another",
+            "partitions": [
+                {
+                    "id": "partition-1",
+                    "partitionMax": 4
+                }
+            ]
+        },
+        {
+            "id": "network-partition-application-bursting-test-2",
+            "partitionAlgo": "round-robin",
+            "partitions": [
+                {
+                    "id": "network-partition-10-partition-1",
+                    "partitionMax": 4
+                },
+                {
+                    "id": "network-partition-10-partition-2",
+                    "partitionMax": 4
+                }
+            ]
+        }
+    ]
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-1.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-1.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-1.json
new file mode 100644
index 0000000..78f7d01
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-1.json
@@ -0,0 +1,15 @@
+{
+    "id": "network-partition-application-bursting-test-1",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-2.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-2.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-2.json
new file mode 100644
index 0000000..588bfff
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-bursting-test/network-partitions/mock/network-partition-application-bursting-test-2.json
@@ -0,0 +1,24 @@
+{
+    "id": "network-partition-application-bursting-test-2",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "network-partition-10-partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        },
+        {
+            "id": "network-partition-10-partition-2",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-1.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-1.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-1.json
new file mode 100644
index 0000000..da3e8ef
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-1.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-application-policy-test-1",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-application-policy-test-1",
+        "network-partition-application-policy-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": "network-partition-application-policy-test-1,network-partition-application-policy-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-2.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-2.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-2.json
new file mode 100644
index 0000000..ec3715c
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test-2.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-application-policy-test-2",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-application-policy-test-1",
+        "network-partition-application-policy-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": "network-partition-application-policy-test-1,network-partition-application-policy-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test.json
new file mode 100644
index 0000000..cf1aace
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/application-policies/application-policy-application-policy-test.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-application-policy-test",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-application-policy-test-1",
+        "network-partition-application-policy-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": "network-partition-application-policy-test-1,network-partition-application-policy-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-1.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-1.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-1.json
new file mode 100644
index 0000000..79a9024
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-1.json
@@ -0,0 +1,24 @@
+{
+    "id": "network-partition-application-policy-test-1",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "network-partition-8-partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        },
+        {
+            "id": "network-partition-8-partition-2",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-2.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-2.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-2.json
new file mode 100644
index 0000000..a802378
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-policy-test/network-partitions/mock/network-partition-application-policy-test-2.json
@@ -0,0 +1,15 @@
+{
+    "id": "network-partition-application-policy-test-2",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/application-policies/application-policy-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/application-policies/application-policy-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/application-policies/application-policy-application-update-test.json
new file mode 100644
index 0000000..1b29165
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/application-policies/application-policy-application-update-test.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-application-update-test",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-application-update-test-1",
+        "network-partition-application-update-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": "network-partition-application-update-test-1,network-partition-application-update-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test-v1.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test-v1.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test-v1.json
new file mode 100644
index 0000000..2509ab1
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test-v1.json
@@ -0,0 +1,86 @@
+{
+    "alias": "g-sc-G123-1-application-update-test",
+    "applicationId": "g-sc-G123-1-application-update-test",
+    "components": {
+        "cartridges": [],
+        "groups": [
+            {
+                "name": "G1-application-update-test",
+                "groupMaxInstances": 1,
+                "groupMinInstances": 1,
+                "alias": "group1-application-update-test",
+                "cartridges": [
+                    {
+                        "cartridgeMin": 2,
+                        "cartridgeMax": 3,
+                        "type": "c1-application-update-test",
+                        "subscribableInfo": {
+                            "alias": "c1-1x0-application-update-test",
+                            "deploymentPolicy": "deployment-policy-application-update-test",
+                            "artifactRepository": {
+                                "repoUsername": "user",
+                                "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                "privateRepo": true,
+                                "repoPassword": "c-policy"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                        }
+                    }
+                ],
+                "groups": [
+                    {
+                        "name": "G2-application-update-test",
+                        "groupMaxInstances": 1,
+                        "groupMinInstances": 1,
+                        "alias": "group2-application-update-test",
+                        "cartridges": [
+                            {
+                                "cartridgeMin": 2,
+                                "cartridgeMax": 4,
+                                "type": "c2-application-update-test",
+                                "subscribableInfo": {
+                                    "alias": "c2-1x0-application-update-test",
+                                    "deploymentPolicy": "deployment-policy-application-update-test",
+                                    "artifactRepository": {
+                                        "repoUsername": "user",
+                                        "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                        "privateRepo": true,
+                                        "repoPassword": "c-policy"
+                                    },
+                                    "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                                }
+                            }
+                        ],
+                        "groups": [
+                            {
+                                "name": "G3-application-update-test",
+                                "groupMaxInstances": 3,
+                                "groupMinInstances": 2,
+                                "deploymentPolicy": "deployment-policy-application-update-test",
+                                "alias": "group3-application-update-test",
+                                "cartridges": [
+                                    {
+                                        "cartridgeMin": 2,
+                                        "cartridgeMax": 3,
+                                        "type": "c3-application-update-test",
+                                        "subscribableInfo": {
+                                            "alias": "c3-1x0-application-update-test",
+                                            "artifactRepository": {
+                                                "repoUsername": "user",
+                                                "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                                "privateRepo": true,
+                                                "repoPassword": "c-policy"
+                                            },
+                                            "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                                        }
+                                    }
+                                ],
+                                "groups": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test.json
new file mode 100644
index 0000000..548e66c
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/applications/g-sc-G123-1-application-update-test.json
@@ -0,0 +1,86 @@
+{
+    "alias": "g-sc-G123-1-application-update-test",
+    "applicationId": "g-sc-G123-1-application-update-test",
+    "components": {
+        "cartridges": [],
+        "groups": [
+            {
+                "name": "G1-application-update-test",
+                "groupMaxInstances": 1,
+                "groupMinInstances": 1,
+                "alias": "group1-application-update-test",
+                "cartridges": [
+                    {
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "type": "c1-application-update-test",
+                        "subscribableInfo": {
+                            "alias": "c1-1x0-application-update-test",
+                            "deploymentPolicy": "deployment-policy-application-update-test",
+                            "artifactRepository": {
+                                "repoUsername": "user",
+                                "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                "privateRepo": true,
+                                "repoPassword": "c-policy"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                        }
+                    }
+                ],
+                "groups": [
+                    {
+                        "name": "G2-application-update-test",
+                        "groupMaxInstances": 1,
+                        "groupMinInstances": 1,
+                        "alias": "group2-application-update-test",
+                        "cartridges": [
+                            {
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 2,
+                                "type": "c2-application-update-test",
+                                "subscribableInfo": {
+                                    "alias": "c2-1x0-application-update-test",
+                                    "deploymentPolicy": "deployment-policy-application-update-test",
+                                    "artifactRepository": {
+                                        "repoUsername": "user",
+                                        "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                        "privateRepo": true,
+                                        "repoPassword": "c-policy"
+                                    },
+                                    "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                                }
+                            }
+                        ],
+                        "groups": [
+                            {
+                                "name": "G3-application-update-test",
+                                "groupMaxInstances": 2,
+                                "groupMinInstances": 1,
+                                "deploymentPolicy": "deployment-policy-application-update-test",
+                                "alias": "group3-application-update-test",
+                                "cartridges": [
+                                    {
+                                        "cartridgeMin": 1,
+                                        "cartridgeMax": 2,
+                                        "type": "c3-application-update-test",
+                                        "subscribableInfo": {
+                                            "alias": "c3-1x0-application-update-test",
+                                            "artifactRepository": {
+                                                "repoUsername": "user",
+                                                "repoUrl": "http://stratos.apache.org:10080/git/default.git",
+                                                "privateRepo": true,
+                                                "repoPassword": "c-policy"
+                                            },
+                                            "autoscalingPolicy": "autoscaling-policy-application-update-test"
+                                        }
+                                    }
+                                ],
+                                "groups": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/autoscaling-policies/autoscaling-policy-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/autoscaling-policies/autoscaling-policy-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/autoscaling-policies/autoscaling-policy-application-update-test.json
new file mode 100644
index 0000000..8d9b766
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/autoscaling-policies/autoscaling-policy-application-update-test.json
@@ -0,0 +1,14 @@
+{
+    "id": "autoscaling-policy-application-update-test",
+    "loadThresholds": {
+        "requestsInFlight": {
+            "threshold": 35
+        },
+        "memoryConsumption": {
+            "threshold": 45
+        },
+        "loadAverage": {
+            "threshold": 25
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test-v1.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test-v1.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test-v1.json
new file mode 100644
index 0000000..884ea0c
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test-v1.json
@@ -0,0 +1,50 @@
+{
+    "name": "G1-application-update-test",
+    "dependencies": {
+        "terminationBehaviour": "terminate-none",
+        "startupOrders": [
+            {
+                "aliases": [
+                    "group.group2-application-update-test",
+                    "cartridge.c1-1x0-application-update-test"
+                ]
+            }
+        ]
+    },
+    "cartridges": [
+        "c1-application-update-test"
+    ],
+    "groups": [
+        {
+            "name": "G2-application-update-test",
+            "dependencies": {
+                "terminationBehaviour": "terminate-dependents",
+                "startupOrders": [
+                    {
+                        "aliases": [
+                            "group.group3-application-update-test",
+                            "cartridge.c2-1x0-application-update-test"
+                        ]
+                    }
+                ]
+            },
+            "cartridges": [
+                "c2-application-update-test"
+            ],
+            "groups": [
+                {
+                    "name": "G3-application-update-test",
+                    "dependencies": {
+                        "terminationBehaviour": "terminate-all",
+                        "startupOrders": []
+                    },
+                    "cartridges": [
+                        "c3-application-update-test"
+                    ],
+                    "groups": []
+                }
+            ]
+        }
+    ]
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test.json
new file mode 100644
index 0000000..884ea0c
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges-groups/cartrdige-nested-application-update-test.json
@@ -0,0 +1,50 @@
+{
+    "name": "G1-application-update-test",
+    "dependencies": {
+        "terminationBehaviour": "terminate-none",
+        "startupOrders": [
+            {
+                "aliases": [
+                    "group.group2-application-update-test",
+                    "cartridge.c1-1x0-application-update-test"
+                ]
+            }
+        ]
+    },
+    "cartridges": [
+        "c1-application-update-test"
+    ],
+    "groups": [
+        {
+            "name": "G2-application-update-test",
+            "dependencies": {
+                "terminationBehaviour": "terminate-dependents",
+                "startupOrders": [
+                    {
+                        "aliases": [
+                            "group.group3-application-update-test",
+                            "cartridge.c2-1x0-application-update-test"
+                        ]
+                    }
+                ]
+            },
+            "cartridges": [
+                "c2-application-update-test"
+            ],
+            "groups": [
+                {
+                    "name": "G3-application-update-test",
+                    "dependencies": {
+                        "terminationBehaviour": "terminate-all",
+                        "startupOrders": []
+                    },
+                    "cartridges": [
+                        "c3-application-update-test"
+                    ],
+                    "groups": []
+                }
+            ]
+        }
+    ]
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c1-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c1-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c1-application-update-test.json
new file mode 100755
index 0000000..fcfa6f2
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c1-application-update-test.json
@@ -0,0 +1,45 @@
+{
+    "type": "c1-application-update-test",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c1-application-update-test",
+    "description": "c1-application-update-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/c0664270/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c2-application-update-test.json
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c2-application-update-test.json b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c2-application-update-test.json
new file mode 100755
index 0000000..a1c1a97
--- /dev/null
+++ b/products/stratos/modules/integration/test-integration/src/test/resources/application-update-test/cartridges/mock/c2-application-update-test.json
@@ -0,0 +1,45 @@
+{
+    "type": "c2-application-update-test",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c2-application-update-test",
+    "description": "c2-application-update-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}