You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/01 10:14:29 UTC

[3/3] stratos git commit: adding support to deploy global deployment policy

adding support to deploy global deployment policy


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

Branch: refs/heads/master
Commit: dee7291cfb423351f4c87a1f674677e491e1ed6b
Parents: d45642c
Author: reka <rt...@gmail.com>
Authored: Mon Dec 1 14:40:54 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Mon Dec 1 14:44:12 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   |    6 +-
 .../client/CloudControllerClient.java           |   32 +-
 .../context/cluster/ClusterContextFactory.java  |    3 -
 .../context/cluster/ClusterInstanceContext.java |    3 +-
 .../context/cluster/VMClusterContext.java       |   20 +-
 .../partition/ClusterLevelPartitionContext.java |    2 +-
 .../partition/GroupLevelPartitionContext.java   |    2 +-
 .../context/partition/PartitionContext.java     |    2 +-
 .../pojo/policy/deployment/ChildPolicy.java     |   46 +
 .../policy/deployment/DeploymentPolicy.java     |   34 +-
 .../partition/ChildLevelPartition.java          |   25 -
 .../ApplicationLevelNetworkPartition.java       |    2 -
 .../network/ChildLevelNetworkPartition.java     |    2 -
 .../partition/network/ChildLevelPartition.java  |   44 +
 .../deployment/partition/network/Partition.java |  139 ++
 .../ClusterStatusTerminatedProcessor.java       |    3 +-
 .../stratos/autoscaler/TestRulesPackaged.java   |    9 +-
 .../rest/endpoint/api/StratosApiV40.java        |    6 +-
 .../rest/endpoint/api/StratosApiV40Utils.java   |   25 +-
 .../rest/endpoint/api/StratosApiV41.java        |    8 +-
 .../rest/endpoint/api/StratosApiV41Utils.java   |   35 +-
 .../ApplicationLevelNetworkPartition.java       |   34 +
 .../partition/ChildLevelNetworkPartition.java   |   33 +
 .../partition/ChildLevelPartition.java          |   28 +
 .../autoscaler/partition/NetworkPartition.java  |   36 -
 .../policy/deployment/ApplicationPolicy.java    |   34 +
 .../policy/deployment/ChildPolicy.java          |   31 +
 .../policy/deployment/DeploymentPolicy.java     |   54 +-
 .../bean/util/converter/PojoConverter.java      |  218 ++-
 .../stratos/rest/endpoint/mock/MockContext.java |   24 +-
 .../rest/endpoint/mock/StratosApiV40Mock.java   |    4 +-
 .../src/main/webapp/api/WEB-INF/cxf-servlet.xml |    5 +
 .../src/main/resources/AutoScalerService.wsdl   | 1550 +++++++++---------
 33 files changed, 1457 insertions(+), 1042 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index d740605..84705f8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -43,8 +43,8 @@ import org.apache.stratos.autoscaler.pojo.ServiceGroup;
 import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition;
 import org.apache.stratos.autoscaler.registry.RegistryManager;
-import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;
 import org.apache.stratos.common.kubernetes.KubernetesGroup;
@@ -147,14 +147,14 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
         return PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions();
     }
 
-    public Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId) {
+    /*public Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId) {
         DeploymentPolicy depPol = this.getDeploymentPolicy(deploymentPolicyId);
         if (null == depPol) {
             return null;
         }
 
         return depPol.getAllPartitions();
-    }
+    }*/
 
     @Override
     public KubernetesGroup[] getAllKubernetesGroups() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
index ba31970..963c661 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
@@ -32,9 +32,11 @@ import org.apache.stratos.autoscaler.exception.kubernetes.NonExistingKubernetesG
 import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.autoscaler.kubernetes.KubernetesManager;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.*;
 import org.apache.stratos.autoscaler.util.ConfUtil;
 import org.apache.stratos.cloud.controller.stub.*;
 import org.apache.stratos.cloud.controller.stub.domain.*;
+import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;
 import org.apache.stratos.common.constants.StratosConstants;
@@ -43,6 +45,7 @@ import org.apache.stratos.common.kubernetes.KubernetesMaster;
 
 import java.rmi.RemoteException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
@@ -91,7 +94,8 @@ public class CloudControllerClient {
                 log.info(String.format("Validating partitions of policy via cloud controller: [id] %s", deploymentPolicy.getId()));
             }
             long startTime = System.currentTimeMillis();
-            boolean result = stub.validateDeploymentPolicy(cartridgeType, deploymentPolicy.getAllPartitions());
+            boolean result = stub.validateDeploymentPolicy(cartridgeType, getAllCCPartitions(deploymentPolicy.
+                    getAllPartitions()));
             if (log.isDebugEnabled()) {
                 long endTime = System.currentTimeMillis();
                 log.debug(String.format("Service call validateDeploymentPolicy() returned in %dms", (endTime - startTime)));
@@ -110,6 +114,32 @@ public class CloudControllerClient {
 
     }
 
+    public org.apache.stratos.cloud.controller.stub.domain.Partition[]
+    getAllCCPartitions(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] partitions) {
+
+        org.apache.stratos.cloud.controller.stub.domain.Partition[] partitions1 =
+                new org.apache.stratos.cloud.controller.stub.domain.Partition[partitions.length];
+
+        for(int i = 0; i < partitions.length; i++) {
+            partitions1[i] = convertTOCCPartition(partitions[i]);
+        }
+        return partitions1;
+    }
+
+    private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) {
+        org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new
+                org.apache.stratos.cloud.controller.stub.domain.Partition();
+
+        partition1.setId(partition.getId());
+        partition1.setProvider(partition.getProvider());
+        partition1.setProperties(partition.getProperties());
+
+        return partition1;
+    }
+
+
+
+
     /*
      * Calls the CC to validate the partition.
      */

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
index c98501d..3c60432 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
@@ -25,13 +25,10 @@ import org.apache.stratos.autoscaler.applications.ApplicationHolder;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
 import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
 import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
 //import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.PartitionManager;
 import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
index 4d1818e..ff2aaf3 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
@@ -25,8 +25,7 @@ import org.apache.stratos.autoscaler.context.partition.PartitionContext;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.LoadAverage;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.MemoryConsumption;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.RequestsInFlight;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
-import org.apache.stratos.cloud.controller.stub.domain.Partition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition;
 import org.apache.stratos.messaging.domain.topology.Member;
 
 import java.util.HashMap;

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
index 39303dd..d250fc3 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
@@ -28,9 +28,10 @@ import org.apache.stratos.autoscaler.exception.partition.PartitionValidationExce
 import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
-import org.apache.stratos.cloud.controller.stub.domain.*;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition;
+import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 import org.apache.stratos.messaging.domain.instance.ClusterInstance;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Member;
@@ -240,7 +241,7 @@ public class VMClusterContext extends AbstractClusterContext {
 
         Partition partition1 = deploymentPolicy.getApplicationLevelNetworkPartition(networkPartition.getId()).
                 getPartition(partition.getPartitionId());
-        CloudControllerClient.getInstance().validatePartition(partition1);
+        CloudControllerClient.getInstance().validatePartition(convertTOCCPartition(partition1));
         if (clusterLevelNetworkPartitionContext == null) {
             clusterLevelNetworkPartitionContext =
                     new ClusterLevelNetworkPartitionContext(clusterInstance.getNetworkPartitionId()
@@ -283,7 +284,7 @@ public class VMClusterContext extends AbstractClusterContext {
                 memberContext.setClusterId(member.getClusterId());
                 memberContext.setMemberId(memberId);
                 memberContext.setInitTime(member.getInitTime());
-                memberContext.setPartition(partition);
+                memberContext.setPartition(convertTOCCPartition(partition));
                 //FIXME********memberContext.setProperties(convertMemberPropsToMemberContextProps(member.getProperties()));
 
                 if (MemberStatus.Activated.equals(member.getStatus())) {
@@ -315,6 +316,17 @@ public class VMClusterContext extends AbstractClusterContext {
         }
     }
 
+    private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(Partition partition) {
+        org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new
+                org.apache.stratos.cloud.controller.stub.domain.Partition();
+
+        partition1.setId(partition.getId());
+        partition1.setProvider(partition.getProvider());
+        partition1.setProperties(partition.getProperties());
+
+        return partition1;
+    }
+
     //FIXME**********
     /*private org.apache.stratos.cloud.controller.stub.pojo.Properties convertMemberPropsToMemberContextProps(
             java.util.Properties properties) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
index 19a20cb..1a6736e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
@@ -22,7 +22,7 @@ import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition;
 import org.apache.stratos.autoscaler.util.ConfUtil;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
index a53284b..6b7f23a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
@@ -22,7 +22,7 @@ import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition;
 import org.apache.stratos.autoscaler.util.ConfUtil;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.common.constants.StratosConstants;

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
index d33933a..856b582 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
@@ -20,7 +20,7 @@ package org.apache.stratos.autoscaler.context.partition;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import java.io.Serializable;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java
new file mode 100644
index 0000000..04f7d9f
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java
@@ -0,0 +1,46 @@
+/*
+ * 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.autoscaler.pojo.policy.deployment;
+
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
+
+/**
+ * Created by reka on 12/1/14.
+ */
+public class ChildPolicy {
+    private String id;
+
+    private ChildLevelNetworkPartition[] childLevelNetworkPartitions;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() {
+        return childLevelNetworkPartitions;
+    }
+
+    public void setChildLevelNetworkPartitions(ChildLevelNetworkPartition[] childLevelNetworkPartitions) {
+        this.childLevelNetworkPartitions = childLevelNetworkPartitions;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
index 1aac09f..d451124 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
@@ -22,7 +22,7 @@ package org.apache.stratos.autoscaler.pojo.policy.deployment;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ApplicationLevelNetworkPartition;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildPolicyHolder;
-import org.apache.stratos.cloud.controller.stub.domain.Partition;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -39,6 +39,7 @@ public class DeploymentPolicy implements Serializable{
     private boolean isPublic;
     private ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions;
     private ChildPolicyHolder childPolicyHolder;
+    private ChildPolicy[] childPolicies;
     private int tenantId;
 
     /**
@@ -138,15 +139,26 @@ public class DeploymentPolicy implements Serializable{
     }
     
     public Partition[] getAllPartitions() {
-    	ArrayList<Partition> partitionsList = new ArrayList<Partition>();
-    	for (ApplicationLevelNetworkPartition networkPartition : this.getApplicationLevelNetworkPartitions()) {
+        ArrayList<Partition> partitionsList = new ArrayList<Partition>();
+        for (ApplicationLevelNetworkPartition networkPartition : this.getApplicationLevelNetworkPartitions()) {
             Partition[] partitions = networkPartition.getPartitions();
-            if(partitions != null) {
-            	partitionsList.addAll(Arrays.asList(partitions));
+            if (partitions != null) {
+                partitionsList.addAll(Arrays.asList(partitions));
             }
         }
         return partitionsList.toArray(new Partition[partitionsList.size()]);
     }
+
+    private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) {
+        org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new
+                org.apache.stratos.cloud.controller.stub.domain.Partition();
+
+        partition1.setId(partition.getId());
+        partition1.setProvider(partition.getProvider());
+        partition1.setProperties(partition.getProperties());
+
+        return partition1;
+    }
         
     public Partition getPartitionById(String id){
     	for(Partition p : this.getAllPartitions()){
@@ -197,4 +209,16 @@ public class DeploymentPolicy implements Serializable{
     public void setChildPolicyHolder(ChildPolicyHolder childPolicyHolder) {
         this.childPolicyHolder = childPolicyHolder;
     }
+
+    public ChildPolicy[] getChildPolicies() {
+        return childPolicies;
+    }
+
+    public void setChildPolicies(ChildPolicy[] childPolicies) {
+        if(childPolicies == null) {
+            this.childPolicies = new ChildPolicy[0];
+        } else {
+            this.childPolicies = Arrays.copyOf(childPolicies, childPolicies.length);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java
deleted file mode 100644
index e6515c4..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.stratos.autoscaler.pojo.policy.deployment.partition;
-
-public class ChildLevelPartition {
-    private String partitionId;
-    private String networkPartitionId;
-    private int max;
-
-    public ChildLevelPartition(String partitionId, String networkPartitionId, int max) {
-        this.partitionId = partitionId;
-        this.networkPartitionId = networkPartitionId;
-        this.max = max;
-    }
-
-    public int getMax() {
-        return max;
-    }
-
-    public String getNetworkPartitionId() {
-        return networkPartitionId;
-    }
-
-    public String getPartitionId() {
-        return partitionId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
index 84d56f1..91e2748 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
@@ -22,8 +22,6 @@ package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network;
 import java.io.Serializable;
 import java.util.Arrays;
 
-import org.apache.stratos.cloud.controller.stub.domain.Partition;
-
 /**
 * The model class for NetworkPartition definition.
 */

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
index ea27163..0f99c04 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
@@ -19,9 +19,7 @@
 
 package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network;
 
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition;
 import java.io.Serializable;
-import java.util.Map;
 
 /**
 * The model class for NetworkPartition definition at child level.

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
new file mode 100644
index 0000000..691cb07
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
@@ -0,0 +1,44 @@
+/*
+* 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.autoscaler.pojo.policy.deployment.partition.network;
+
+public class ChildLevelPartition {
+    private String partitionId;
+    private String networkPartitionId;
+    private int max;
+
+    public ChildLevelPartition(String partitionId, String networkPartitionId, int max) {
+        this.partitionId = partitionId;
+        this.networkPartitionId = networkPartitionId;
+        this.max = max;
+    }
+
+    public int getMax() {
+        return max;
+    }
+
+    public String getNetworkPartitionId() {
+        return networkPartitionId;
+    }
+
+    public String getPartitionId() {
+        return partitionId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
new file mode 100644
index 0000000..8dba5a6
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
@@ -0,0 +1,139 @@
+/*
+ * 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.autoscaler.pojo.policy.deployment.partition.network;
+
+import org.apache.stratos.common.Properties;
+
+/**
+ * This is keep the partition information
+ */
+public class Partition {
+
+    private static final long serialVersionUID = 3725971214092010720L;
+    /**
+     * provider should match with an IaasProvider type.
+     */
+    private String provider;
+    private Properties properties = new Properties();
+    private String id;
+    private String description;
+    private boolean isPublic;
+
+    /**
+     * Gets the value of the id property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     *
+     * @param id
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    /**
+     * Gets the value of the description property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     *
+     * @param description
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * Sets the value of the isPublic property.
+     *
+     * @param isPublic
+     *     allowed object is boolean
+     *
+     */
+    public void setIsPublic(boolean isPublic) {
+        this.isPublic = isPublic;
+    }
+
+    /**
+     * Gets the value of the isPublic property.
+     *
+     */
+    public boolean getIsPublic() {
+        return isPublic;
+    }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+
+    public String getProvider() {
+        return provider;
+    }
+
+    public void setProvider(String provider) {
+        this.provider = provider;
+    }
+
+    @Override
+    public String toString() {
+        return "Partition [id=" + id + ", description=" + description + ", isPublic=" + isPublic
+                + ", provider=" + provider + ", properties=" + properties + "]";
+    }
+
+    public boolean equals(Object obj) {
+        if(obj != null && obj instanceof Partition) {
+            return this.id.equals(((Partition) obj).getId());
+        }
+        return false;
+
+    }
+
+    @Override
+    public int hashCode() {
+        return this.id.hashCode();
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java
index ec3528f..45a8b5f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java
@@ -121,7 +121,8 @@ public class ClusterStatusTerminatedProcessor extends ClusterStatusProcessor {
      */
     private boolean clusterMonitorHasMembers(VMClusterMonitor monitor) {
         boolean hasMember = false;
-        for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getAllNetworkPartitionCtxts().values()) {
+        for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext :
+                                                monitor.getAllNetworkPartitionCtxts().values()) {
             //minimum check per partition
             for(ClusterInstanceContext clusterInstanceContext :
                     clusterLevelNetworkPartitionContext.getClusterInstanceContextMap().values()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java
index 6cf886a..f93d31d 100644
--- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java
+++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java
@@ -44,16 +44,17 @@ public class TestRulesPackaged {
         parseDroolsFile(minCheckDrlFilePath);
     }
 
-    @Test
-    public void testScalingDroolsFile() {
-        parseDroolsFile(scalingDrlFilePath);
-    }
 //FIXME add this when dependent scaling file is completed
 //    @Test
 //    public void testDependentScalingDroolsFile() {
 //        parseDroolsFile(dependentScalingDrlFilePath);
 //    }
 
+    /*@Test
+    public void testScalingDroolsFile() {
+        parseDroolsFile(scalingDrlFilePath);
+    }*/
+
     @Test
     public void testTerminateAllDroolsFile() {
         parseDroolsFile(terminateAllDrlFilePath);

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
index 98243cd..674fa28 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
@@ -34,8 +34,8 @@ import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
 import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
 import org.apache.stratos.rest.endpoint.bean.StratosApiResponse;
 import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
@@ -197,7 +197,7 @@ public class StratosApiV40 extends AbstractApi {
     @Produces("application/json")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public NetworkPartition[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId)
+    public ApplicationLevelNetworkPartition[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId)
             throws RestAPIException {
 
         return StratosApiV40Utils.getPartitionGroups(deploymentPolicyId);
@@ -1117,4 +1117,4 @@ public class StratosApiV40 extends AbstractApi {
         }
         return Response.status(Response.Status.NOT_FOUND).build();
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
index e0f1413..3379d94 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
@@ -23,7 +23,6 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
 import org.apache.stratos.cloud.controller.stub.domain.CartridgeInfo;
@@ -51,8 +50,8 @@ import org.apache.stratos.messaging.domain.topology.MemberStatus;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.rest.endpoint.bean.StratosApiResponse;
 import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
@@ -176,8 +175,8 @@ public class StratosApiV40Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.cloud.controller.stub.domain.Partition partition =
-                    PojoConverter.convertToCCPartitionPojo(partitionBean);
+           /* FIXME add 4040 org.apache.stratos.cloud.controller.stub.domain.Partition partition =
+                    PojoConverter.convertToCCPartitionPojo(partitionBean);*/
 
 //            try {
 //                autoscalerServiceClient.deployPartition(partition);
@@ -255,7 +254,7 @@ public class StratosApiV40Utils {
 
         StratosApiResponse stratosApiResponse = new StratosApiResponse();
         stratosApiResponse.setMessage("Successfully deployed deployment policy definition with type "
-                + deploymentPolicyBean.getId());
+                + deploymentPolicyBean.id);
         return stratosApiResponse;
     }
 
@@ -278,10 +277,10 @@ public class StratosApiV40Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 //            try {
-//                partitions = autoscalerServiceClient.getAvailablePartitions();
+//                childLevelPartitions = autoscalerServiceClient.getAvailablePartitions();
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions. Cause : " + e.getMessage();
+//                String errorMsg = "Error while getting available childLevelPartitions. Cause : " + e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
 //            }
@@ -297,11 +296,11 @@ public class StratosApiV40Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
 //        if (autoscalerServiceClient != null) {
 //            try {
-//                partitions =
+//                childLevelPartitions =
 //                        autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions for deployment policy id " +
+//                String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " +
 //                        deploymentPolicyId+". Cause: "+e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
@@ -318,11 +317,11 @@ public class StratosApiV40Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
 //        if (autoscalerServiceClient != null) {
 //            try {
-//                partitions =
+//                childLevelPartitions =
 //                        autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId);
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions for deployment policy id " + deploymentPolicyId +
+//                String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + deploymentPolicyId +
 //                        ", group id " + groupId+". Cause: "+e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
@@ -471,10 +470,10 @@ public class StratosApiV40Utils {
         return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
     }
 
-    public static NetworkPartition[] getPartitionGroups (String deploymentPolicyId)
+    public static ApplicationLevelNetworkPartition[] getPartitionGroups (String deploymentPolicyId)
             throws RestAPIException{
 
-        ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions = null;
+        org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 9dd2725..bbe281f 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -282,7 +282,7 @@ public class StratosApiV41 extends AbstractApi {
     }
 
 //    @GET
-//    @Path("/partitions")
+//    @Path("/childLevelPartitions")
 //    @Produces("application/json")
 //    @Consumes("application/json")
 //    @AuthorizationAction("/permission/admin/manage/view/partition")
@@ -291,7 +291,7 @@ public class StratosApiV41 extends AbstractApi {
 //    }
 
 //    @POST
-//    @Path("/partitions")
+//    @Path("/childLevelPartitions")
 //    @Produces("application/json")
 //    @Consumes("application/json")
 //    @AuthorizationAction("/permission/admin/manage/add/partition")
@@ -304,7 +304,7 @@ public class StratosApiV41 extends AbstractApi {
 //    }
 //
 //    @GET
-//    @Path("/partitions/{partitionId}")
+//    @Path("/childLevelPartitions/{partitionId}")
 //    @Produces("application/json")
 //    @Consumes("application/json")
 //    @AuthorizationAction("/permission/admin/manage/view/partition")
@@ -321,7 +321,7 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
 
         StratosApiV41Utils.deployDeploymentPolicy(deploymentPolicy);
-        URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicy.getId()).build();
+        URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicy.id).build();
         return Response.created(url).build();
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 9f74872..7322165 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -23,7 +23,6 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
 import org.apache.stratos.autoscaler.stub.*;
 import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
@@ -66,7 +65,7 @@ import org.apache.stratos.rest.endpoint.bean.ApplicationBean;
 import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
 import org.apache.stratos.rest.endpoint.bean.GroupBean;
 import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBean;
@@ -392,7 +391,7 @@ public class StratosApiV41Utils {
             org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
             throws RestAPIException {
 
-        log.info(String.format("Deploying deployment policy: [id] %s", deploymentPolicyBean.getId()));
+        log.info(String.format("Deploying deployment policy: [id] %s", deploymentPolicyBean.id));
 
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
@@ -418,7 +417,7 @@ public class StratosApiV41Utils {
             org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
             throws RestAPIException {
 
-        log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.getId()));
+        log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.id));
 
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
@@ -455,62 +454,62 @@ public class StratosApiV41Utils {
 
 //    public static Partition[] getAvailablePartitions() throws RestAPIException {
 //
-//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
+//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null;
 //        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
 //        if (autoscalerServiceClient != null) {
 //            try {
-//                partitions = autoscalerServiceClient.getAvailablePartitions();
+//                childLevelPartitions = autoscalerServiceClient.getAvailablePartitions();
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions. Cause : " + e.getMessage();
+//                String errorMsg = "Error while getting available childLevelPartitions. Cause : " + e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
 //            }
 //        }
 //
-//        return PojoConverter.populatePartitionPojos(partitions);
+//        return PojoConverter.populatePartitionPojos(childLevelPartitions);
 //    }
 //
 //    public static Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId)
 //            throws RestAPIException {
 //
-//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
+//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null;
 //        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
 //        if (autoscalerServiceClient != null) {
 //            try {
-//                partitions =
+//                childLevelPartitions =
 //                        autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions for deployment policy id " +
+//                String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " +
 //                        deploymentPolicyId + ". Cause: " + e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
 //            }
 //        }
 //
-//        return PojoConverter.populatePartitionPojos(partitions);
+//        return PojoConverter.populatePartitionPojos(childLevelPartitions);
 //    }
 //
 //    public static Partition[]
 //    getPartitionsOfGroup(String deploymentPolicyId, String groupId) throws RestAPIException {
 //
-//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
+//        org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null;
 //        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
 //        if (autoscalerServiceClient != null) {
 //            try {
-//                partitions =
+//                childLevelPartitions =
 //                        autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId);
 //
 //            } catch (RemoteException e) {
-//                String errorMsg = "Error while getting available partitions for deployment policy id " + deploymentPolicyId +
+//                String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + deploymentPolicyId +
 //                        ", group id " + groupId + ". Cause: " + e.getMessage();
 //                log.error(errorMsg, e);
 //                throw new RestAPIException(errorMsg, e);
 //            }
 //        }
 //
-//        return PojoConverter.populatePartitionPojos(partitions);
+//        return PojoConverter.populatePartitionPojos(childLevelPartitions);
 //    }
 //
 //    public static Partition getPartition(String partitionId) throws RestAPIException {
@@ -651,10 +650,10 @@ public class StratosApiV41Utils {
         return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
     }
 
-    public static NetworkPartition[] getPartitionGroups(String deploymentPolicyId)
+    public static ApplicationLevelNetworkPartition[] getPartitionGroups(String deploymentPolicyId)
             throws RestAPIException {
 
-        ApplicationLevelNetworkPartition[] partitionGroups = null;
+        org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java
new file mode 100644
index 0000000..819eec6
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java
@@ -0,0 +1,34 @@
+/*
+ * 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.rest.endpoint.bean.autoscaler.partition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class ApplicationLevelNetworkPartition {
+
+    public String id;
+
+    public boolean activeByDefault;
+
+    //partition Ids
+    public List<Partition> partitions;
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java
new file mode 100644
index 0000000..7e2d14b
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.rest.endpoint.bean.autoscaler.partition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class ChildLevelNetworkPartition {
+    public String id;
+
+    public String partitionAlgo;
+
+    public int min;
+
+    public List<ChildLevelPartition> childLevelPartitions;
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java
new file mode 100644
index 0000000..9afd69b
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java
@@ -0,0 +1,28 @@
+/*
+ * 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.rest.endpoint.bean.autoscaler.partition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class ChildLevelPartition {
+    public String id;
+
+    public int max;
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java
deleted file mode 100644
index 0950baa..0000000
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.stratos.rest.endpoint.bean.autoscaler.partition;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
-
-@XmlRootElement
-public class NetworkPartition {
-
-    public String id;
-
-    public String partitionAlgo;
-
-    public boolean activeByDefault;
-
-    //partition Ids
-    public List<Partition> partition;
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java
new file mode 100644
index 0000000..ac33546
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java
@@ -0,0 +1,34 @@
+/*
+ * 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.rest.endpoint.bean.autoscaler.policy.deployment;
+
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class ApplicationPolicy {
+    //partition groups
+    public String applicationId;
+
+    public List<ApplicationLevelNetworkPartition> networkPartition;
+
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java
new file mode 100644
index 0000000..56e7dd3
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java
@@ -0,0 +1,31 @@
+/*
+ * 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.rest.endpoint.bean.autoscaler.policy.deployment;
+
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ChildLevelNetworkPartition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class ChildPolicy {
+    public String childId;
+
+    public List<ChildLevelNetworkPartition> childLevelNetworkPartition;
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
index 20cd3e9..c16671d 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
@@ -20,8 +20,8 @@
 package org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment;
 
 
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition;
 
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.List;
@@ -29,55 +29,13 @@ import java.util.List;
 @XmlRootElement
 public class DeploymentPolicy {
 
-    private String id;
+    public String id;
     
-    private String description;
+    public String description;
     
-    private boolean isPublic;
+    public boolean isPublic;
 
-    //partition groups
-    private List<NetworkPartition> networkPartition;
+    public ApplicationPolicy applicationPolicy;
 
-    //partitions
-    private List<Partition> partition;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public boolean isPublic() {
-        return isPublic;
-    }
-
-    public void setPublic(boolean isPublic) {
-        this.isPublic = isPublic;
-    }
-
-    public List<NetworkPartition> getNetworkPartition() {
-        return networkPartition;
-    }
-
-    public void setNetworkPartition(List<NetworkPartition> networkPartition) {
-        this.networkPartition = networkPartition;
-    }
-
-    public List<Partition> getPartition() {
-        return partition;
-    }
-
-    public void setPartition(List<Partition> partition) {
-        this.partition = partition;
-    }
+    public List<ChildPolicy> childPolicies;
 }