Merging parent and cluster level networkPartitionContext to 
networkPartitionContext


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

Branch: refs/heads/master
Commit: f1e5488e59cb74d36e7657e013e1b8abae5f1da8
Parents: 0f2b3c7
Author: reka <[email protected]>
Authored: Mon Jul 27 15:15:56 2015 +0530
Committer: reka <[email protected]>
Committed: Wed Jul 29 16:11:07 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  11 +-
 .../context/cluster/ClusterContext.java         |  34 +-
 .../ClusterLevelNetworkPartitionContext.java    |  92 ----
 .../network/NetworkPartitionContext.java        | 328 +++++++++++++-
 .../ParentLevelNetworkPartitionContext.java     | 437 -------------------
 .../monitor/cluster/ClusterMonitor.java         |  23 +-
 .../monitor/component/ApplicationMonitor.java   |  22 +-
 .../monitor/component/GroupMonitor.java         |  56 ++-
 .../component/ParentComponentMonitor.java       |   5 +-
 .../autoscaler/rule/RuleTasksDelegator.java     |   5 +-
 .../services/impl/AutoscalerServiceImpl.java    |  13 +-
 .../cluster/ClusterStatusActiveProcessor.java   |   4 +-
 .../cluster/ClusterStatusInactiveProcessor.java |   4 +-
 .../ClusterStatusTerminatedProcessor.java       |   4 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |   8 +-
 15 files changed, 411 insertions(+), 635 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index 5b5ec90..686e158 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -25,7 +25,6 @@ import 
org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext
 import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext;
 import org.apache.stratos.autoscaler.client.AutoscalerCloudControllerClient;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.Monitor;
@@ -428,8 +427,8 @@ public class ApplicationBuilder {
                             monitor1.destroy();
                         }
                     }
-                    
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext
 networkPartitionContext =
-                            
(org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext)
 monitor.
+                    
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext 
networkPartitionContext =
+                            
(org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext)
 monitor.
                                     
getNetworkPartitionContext(groupInstance.getNetworkPartitionId());
                     networkPartitionContext.removeInstanceContext(instanceId);
                     if (groupInstance.getPartitionId() != null) {
@@ -659,7 +658,7 @@ public class ApplicationBuilder {
         ApplicationMonitor applicationMonitor = 
AutoscalerContext.getInstance().getAppMonitor(appId);
 
         if (applicationMonitor != null) {
-            ParentLevelNetworkPartitionContext context = 
(ParentLevelNetworkPartitionContext)
+            NetworkPartitionContext context = (NetworkPartitionContext)
                     
applicationMonitor.getNetworkPartitionContext(networkPartitionId);
             if (status == ApplicationStatus.Active) {
                 if (log.isDebugEnabled()) {
@@ -700,8 +699,8 @@ public class ApplicationBuilder {
                                            String instanceId, String 
parentInstanceId) {
         GroupMonitor monitor = getGroupMonitor(appId, groupId);
         if (monitor != null) {
-            
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext
 context
-                    = 
(org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext)
 monitor.getNetworkPartitionContext(networkPartitionId);
+            
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext 
context
+                    = 
(org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext)
 monitor.getNetworkPartitionContext(networkPartitionId);
             if (status == GroupStatus.Active) {
                 if (log.isDebugEnabled()) {
                     log.debug("Moving pending group instance to active list in 
[group] " + groupId

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
index f7f2fc6..235b7b7 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.applications.ApplicationHolder;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
+import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.exception.AutoScalerException;
 import 
org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
 import 
org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
@@ -56,7 +56,7 @@ public class ClusterContext extends AbstractClusterContext {
     private static final Log log = LogFactory.getLog(ClusterContext.class);
 
     // Map<NetworkpartitionId, Network Partition Context>
-    protected Map<String, ClusterLevelNetworkPartitionContext> 
networkPartitionCtxts;
+    protected Map<String, NetworkPartitionContext> networkPartitionCtxts;
 
     private String autoscalingPolicyId;
 
@@ -66,12 +66,12 @@ public class ClusterContext extends AbstractClusterContext {
                           boolean hasScalingDependents, String 
deploymentPolicyId) {
 
         super(clusterId, serviceId);
-        this.networkPartitionCtxts = new ConcurrentHashMap<String, 
ClusterLevelNetworkPartitionContext>();
+        this.networkPartitionCtxts = new ConcurrentHashMap<String, 
NetworkPartitionContext>();
         this.autoscalingPolicyId = autoscalingPolicyId;
         this.deploymentPolicyId = deploymentPolicyId;
     }
 
-    public Map<String, ClusterLevelNetworkPartitionContext> 
getNetworkPartitionCtxts() {
+    public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() {
         return networkPartitionCtxts;
     }
 
@@ -79,11 +79,11 @@ public class ClusterContext extends AbstractClusterContext {
         return 
PolicyManager.getInstance().getAutoscalePolicy(autoscalingPolicyId);
     }
 
-    public ClusterLevelNetworkPartitionContext getNetworkPartitionCtxt(String 
networkPartitionId) {
+    public NetworkPartitionContext getNetworkPartitionCtxt(String 
networkPartitionId) {
         return networkPartitionCtxts.get(networkPartitionId);
     }
 
-    public void setPartitionCtxt(Map<String, 
ClusterLevelNetworkPartitionContext> partitionCtxt) {
+    public void setPartitionCtxt(Map<String, NetworkPartitionContext> 
partitionCtxt) {
         this.networkPartitionCtxts = partitionCtxt;
     }
 
@@ -91,15 +91,15 @@ public class ClusterContext extends AbstractClusterContext {
         return networkPartitionCtxts.containsKey(partitionId);
     }
 
-    public void addNetworkPartitionCtxt(ClusterLevelNetworkPartitionContext 
ctxt) {
+    public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) {
         this.networkPartitionCtxts.put(ctxt.getId(), ctxt);
     }
 
-    public ClusterLevelNetworkPartitionContext getPartitionCtxt(String id) {
+    public NetworkPartitionContext getPartitionCtxt(String id) {
         return this.networkPartitionCtxts.get(id);
     }
 
-    public ClusterLevelNetworkPartitionContext getNetworkPartitionCtxt(Member 
member) {
+    public NetworkPartitionContext getNetworkPartitionCtxt(Member member) {
 
         String networkPartitionId = member.getNetworkPartitionId();
         if (networkPartitionCtxts.containsKey(networkPartitionId)) {
@@ -112,7 +112,7 @@ public class ClusterContext extends AbstractClusterContext {
     public void addInstanceContext(String instanceId, Cluster cluster, boolean 
hasScalingDependents,
                                    boolean groupScalingEnabledSubtree)
             throws PolicyValidationException, PartitionValidationException {
-        ClusterLevelNetworkPartitionContext networkPartitionContext = null;
+        NetworkPartitionContext networkPartitionContext = null;
         ClusterInstance clusterInstance = 
cluster.getInstanceContexts(instanceId);
 
         String deploymentPolicyName = 
AutoscalerUtil.getDeploymentPolicyIdByAlias(cluster.getAppId(),
@@ -137,11 +137,11 @@ public class ClusterContext extends 
AbstractClusterContext {
 
             if (networkPartition == null) {
                 //Parent should have the partition specified
-                networkPartitionContext = new 
ClusterLevelNetworkPartitionContext(
+                networkPartitionContext = new NetworkPartitionContext(
                         clusterInstance.getNetworkPartitionId());
             } else {
-                networkPartitionContext = new 
ClusterLevelNetworkPartitionContext(networkPartition.getId(),
-                        networkPartition.getPartitionAlgo(), 0);
+                networkPartitionContext = new 
NetworkPartitionContext(networkPartition.getId(),
+                        networkPartition.getPartitionAlgo());
             }
         }
 
@@ -167,10 +167,10 @@ public class ClusterContext extends 
AbstractClusterContext {
 
     }
 
-    private ClusterLevelNetworkPartitionContext parseDeploymentPolicy(
+    private NetworkPartitionContext parseDeploymentPolicy(
             ClusterInstance clusterInstance,
             Cluster cluster,
-            ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext,
+            NetworkPartitionContext clusterLevelNetworkPartitionContext,
             boolean hasGroupScalingDependent, boolean 
groupScalingEnabledSubtree)
             throws PolicyValidationException, PartitionValidationException {
 
@@ -224,10 +224,10 @@ public class ClusterContext extends 
AbstractClusterContext {
         return clusterLevelNetworkPartitionContext;
     }
 
-    private ClusterLevelNetworkPartitionContext addPartition(
+    private NetworkPartitionContext addPartition(
             ClusterInstance clusterInstance,
             Cluster cluster,
-            ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext,
+            NetworkPartitionContext clusterLevelNetworkPartitionContext,
             PartitionRef partition,
             boolean hasScalingDependents, boolean groupScalingEnabledSubtree)
             throws PolicyValidationException, PartitionValidationException {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java
deleted file mode 100644
index 6ea75fe..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java
+++ /dev/null
@@ -1,92 +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.autoscaler.context.partition.network;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.Serializable;
-
-/**
- * Holds runtime data of a network partition.
- */
-public class ClusterLevelNetworkPartitionContext extends 
NetworkPartitionContext implements Serializable {
-
-    private static final Log log = 
LogFactory.getLog(ClusterLevelNetworkPartitionContext.class);
-    private static final long serialVersionUID = 572769304374110159L;
-
-    private String partitionAlgorithm;
-    private int min;
-
-    public ClusterLevelNetworkPartitionContext(String id, String 
partitionAlgorithm, int min) {
-        super(id);
-        this.partitionAlgorithm = partitionAlgorithm;
-        this.min = min;
-
-    }
-
-    public ClusterLevelNetworkPartitionContext(String id) {
-        super(id);
-    }
-
-
-    public int hashCode() {
-
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((this.getId() == null) ? 0 : 
this.getId().hashCode());
-        return result;
-
-    }
-
-    public boolean equals(final Object obj) {
-
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (!(obj instanceof ClusterLevelNetworkPartitionContext)) {
-            return false;
-        }
-        final ClusterLevelNetworkPartitionContext other = 
(ClusterLevelNetworkPartitionContext) obj;
-        if (this.getId() == null) {
-            if (other.getId() != null) {
-                return false;
-            }
-        } else if (!this.getId().equals(other.getId())) {
-            return false;
-        }
-        return true;
-    }
-
-
-    public String getId() {
-        return super.getId();
-    }
-
-    public int getMin() {
-        return min;
-    }
-
-    public String getPartitionAlgorithm() {
-        return partitionAlgorithm;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
index 4335f01..b92032e 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java
@@ -21,6 +21,7 @@ package 
org.apache.stratos.autoscaler.context.partition.network;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.context.InstanceContext;
+import 
org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext;
 
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -28,18 +29,325 @@ import java.util.concurrent.ConcurrentHashMap;
 /**
  * This will keep track of network partition level information.
  */
-public abstract class NetworkPartitionContext {
+public class NetworkPartitionContext {
     private static final Log log = 
LogFactory.getLog(NetworkPartitionContext.class);
     //id of the network partition context
-    protected final String id;
+    private String id;
     //group instances kept inside a partition
-    protected Map<String, InstanceContext> instanceIdToInstanceContextMap;
-    private int pendingMembersFailureCount = 0;
+    private Map<String, InstanceContext> instanceIdToInstanceContextMap;
+    //network partition level min and max
+    private int minInstanceCount = 0, maxInstanceCount = 0;
+    //active instances
+    private List<InstanceContext> activeInstances;
+    //pending instances
+    private List<InstanceContext> pendingInstances;
+    //terminating pending instances
+    private List<InstanceContext> terminatingPending;
+    //partition algorithm
+    private String partitionAlgorithm;
+    //partition min
+    private int min;
 
-    protected NetworkPartitionContext(String id) {
+    //Group level partition contexts
+    private List<GroupLevelPartitionContext> partitionContexts;
+
+    public NetworkPartitionContext(String id, String partitionAlgo) {
+        this.id = id;
+        this.partitionAlgorithm = partitionAlgo;
+        partitionContexts = new ArrayList<GroupLevelPartitionContext>();
+        pendingInstances = new ArrayList<InstanceContext>();
+        activeInstances = new ArrayList<InstanceContext>();
+        terminatingPending = new ArrayList<InstanceContext>();
+
+    }
+
+    public NetworkPartitionContext(String id) {
         this.id = id;
-        instanceIdToInstanceContextMap = new ConcurrentHashMap<String, 
InstanceContext>();
+        partitionContexts = new ArrayList<GroupLevelPartitionContext>();
+        pendingInstances = new ArrayList<InstanceContext>();
+        activeInstances = new ArrayList<InstanceContext>();
+        terminatingPending = new ArrayList<InstanceContext>();
+    }
+
+
+    public int getMinInstanceCount() {
+        return minInstanceCount;
+    }
+
+    public void setMinInstanceCount(int minInstanceCount) {
+        this.minInstanceCount = minInstanceCount;
+    }
+
+    public int getMaxInstanceCount() {
+        return maxInstanceCount;
+    }
+
+    public void setMaxInstanceCount(int maxInstanceCount) {
+        this.maxInstanceCount = maxInstanceCount;
+    }
+
+    public int hashCode() {
+
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((id == null) ? 0 : id.hashCode());
+        return result;
+
+    }
+
+    public boolean equals(final Object obj) {
 
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        return "NetworkPartitionContext [id=" + id + "partitionAlgorithm=" + 
partitionAlgorithm + ", minInstanceCount=" +
+                minInstanceCount + ", maxInstanceCount=" + maxInstanceCount + 
"]";
+    }
+
+
+    public String getPartitionAlgorithm() {
+        return partitionAlgorithm;
+    }
+
+    public List<InstanceContext> getInstanceIdToInstanceContextMap(String 
parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+        for(InstanceContext instanceContext : 
instanceIdToInstanceContextMap.values()) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts;
+    }
+
+    public List<GroupLevelPartitionContext> getPartitionCtxts() {
+
+        return partitionContexts;
+    }
+
+    public GroupLevelPartitionContext getPartitionCtxt(String partitionId) {
+
+        for (GroupLevelPartitionContext partitionContext : partitionContexts) {
+            if (partitionContext.getPartitionId().equals(partitionId)) {
+                return partitionContext;
+            }
+        }
+        return null;
+    }
+
+    public void addPartitionContext(GroupLevelPartitionContext 
partitionContext) {
+        partitionContexts.add(partitionContext);
+    }
+
+
+    public GroupLevelPartitionContext getPartitionContextById(String 
partitionId) {
+        for (GroupLevelPartitionContext partitionContext : partitionContexts) {
+            if (partitionContext.getPartitionId().equals(partitionId)) {
+                return partitionContext;
+            }
+        }
+        return null;
+    }
+
+    public List<InstanceContext> getActiveInstances(String parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+        for(InstanceContext instanceContext : activeInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts;
+    }
+
+    public List<InstanceContext> getPendingInstances(String parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+        for(InstanceContext instanceContext : pendingInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts;
+    }
+
+    public void addPendingInstance(InstanceContext context) {
+        this.pendingInstances.add(context);
+    }
+
+    public int getPendingInstancesCount() {
+        return this.pendingInstances.size();
+    }
+
+    public int getPendingInstancesCount(String parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+        for(InstanceContext instanceContext : pendingInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts.size();
+    }
+
+
+    public int getActiveInstancesCount() {
+        return this.activeInstances.size();
+    }
+
+    public int getActiveInstancesCount(String parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+        for(InstanceContext instanceContext : activeInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts.size();
+    }
+
+    public InstanceContext getActiveInstance(String instanceId) {
+        for (InstanceContext instanceContext : activeInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+    public InstanceContext getPendingInstance(String instanceId) {
+        for (InstanceContext instanceContext : pendingInstances) {
+            if (instanceId.equals(instanceContext.getId())) {
+                return instanceContext;
+            }
+        }
+        return null;
+    }
+
+
+    public void movePendingInstanceToActiveInstances(String instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = 
pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.activeInstances.add(pendingInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed 
and added to the " +
+                                "activated instance list. [Instance Id] %s", 
instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void moveActiveInstanceToTerminationPendingInstances(String 
instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (activeInstances) {
+            Iterator<InstanceContext> iterator = 
activeInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext activeInstance = iterator.next();
+                if (activeInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(activeInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(activeInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Active instance is removed 
and added to the " +
+                                "termination pending instance list. [Instance 
Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public void movePendingInstanceToTerminationPendingInstances(String 
instanceId) {
+        if (instanceId == null) {
+            return;
+        }
+        synchronized (pendingInstances) {
+            Iterator<InstanceContext> iterator = 
pendingInstances.listIterator();
+            while (iterator.hasNext()) {
+                InstanceContext pendingInstance = iterator.next();
+                if (pendingInstance == null) {
+                    iterator.remove();
+                    continue;
+                }
+                if (instanceId.equals(pendingInstance.getId())) {
+                    // member is activated
+                    // remove from pending list
+                    iterator.remove();
+                    // add to the activated list
+                    this.terminatingPending.add(pendingInstance);
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Pending instance is removed 
and added to the " +
+                                "termination pending instance list. [Instance 
Id] %s", instanceId));
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    public int getNonTerminatedInstancesCount() {
+        return this.activeInstances.size() + this.pendingInstances.size();
+    }
+
+    public int getNonTerminatedInstancesCount(String parentInstanceId) {
+        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
+
+        for(InstanceContext instanceContext : activeInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+
+        for(InstanceContext instanceContext : pendingInstances) {
+            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
+                instanceContexts.add(instanceContext);
+            }
+        }
+        return instanceContexts.size();
+    }
+
+    public boolean removeTerminationPendingInstance(String instanceId) {
+        if (id == null) {
+            return false;
+        }
+        synchronized (pendingInstances) {
+            for (Iterator<InstanceContext> iterator = 
pendingInstances.iterator(); iterator.hasNext(); ) {
+                InstanceContext pendingInstance = iterator.next();
+                if (id.equals(pendingInstance.getId())) {
+                    iterator.remove();
+                    return true;
+                }
+
+            }
+        }
+        return false;
     }
 
     public String getId() {
@@ -70,4 +378,12 @@ public abstract class NetworkPartitionContext {
     public boolean containsInstanceContext(String instanceId) {
         return this.instanceIdToInstanceContextMap.containsKey(instanceId);
     }
+
+    public int getMin() {
+        return min;
+    }
+
+    public void setMin(int min) {
+        this.min = min;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java
deleted file mode 100644
index 3367e7a..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java
+++ /dev/null
@@ -1,437 +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.autoscaler.context.partition.network;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.context.InstanceContext;
-import 
org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Holds runtime data of a network partition.
- */
-public class ParentLevelNetworkPartitionContext extends 
NetworkPartitionContext implements Serializable {
-    private static final Log log = 
LogFactory.getLog(ParentLevelNetworkPartitionContext.class);
-    private int scaleDownRequestsCount = 0;
-
-    private int minInstanceCount = 0, maxInstanceCount = 0;
-    private int requiredInstanceCountBasedOnStats;
-    private int requiredInstanceCountBasedOnDependencies;
-
-    //active instances
-    private List<InstanceContext> activeInstances;
-    //pending instances
-    private List<InstanceContext> pendingInstances;
-    //terminating pending instances
-    private List<InstanceContext> terminatingPending;
-    private String partitionAlgorithm;
-
-    //Group level partition contexts
-    private List<GroupLevelPartitionContext> partitionContexts;
-
-    //details required for partition selection algorithms
-    private int currentPartitionIndex;
-
-
-    public ParentLevelNetworkPartitionContext(String id, String partitionAlgo) 
{
-        super(id);
-        this.partitionAlgorithm = partitionAlgo;
-        partitionContexts = new ArrayList<GroupLevelPartitionContext>();
-        requiredInstanceCountBasedOnStats = minInstanceCount;
-        requiredInstanceCountBasedOnDependencies = minInstanceCount;
-        pendingInstances = new ArrayList<InstanceContext>();
-        activeInstances = new ArrayList<InstanceContext>();
-        terminatingPending = new ArrayList<InstanceContext>();
-
-    }
-
-    public ParentLevelNetworkPartitionContext(String id) {
-        super(id);
-        partitionContexts = new ArrayList<GroupLevelPartitionContext>();
-        requiredInstanceCountBasedOnStats = minInstanceCount;
-        requiredInstanceCountBasedOnDependencies = minInstanceCount;
-        pendingInstances = new ArrayList<InstanceContext>();
-        activeInstances = new ArrayList<InstanceContext>();
-        terminatingPending = new ArrayList<InstanceContext>();
-    }
-
-
-    public int getMinInstanceCount() {
-        return minInstanceCount;
-    }
-
-    public void setMinInstanceCount(int minInstanceCount) {
-        this.minInstanceCount = minInstanceCount;
-    }
-
-    public int getMaxInstanceCount() {
-        return maxInstanceCount;
-    }
-
-    public void setMaxInstanceCount(int maxInstanceCount) {
-        this.maxInstanceCount = maxInstanceCount;
-    }
-
-    public int hashCode() {
-
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((super.getId() == null) ? 0 : 
super.getId().hashCode());
-        return result;
-
-    }
-
-    public boolean equals(final Object obj) {
-
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (!(obj instanceof ParentLevelNetworkPartitionContext)) {
-            return false;
-        }
-        final ParentLevelNetworkPartitionContext other = 
(ParentLevelNetworkPartitionContext) obj;
-        if (super.getId() == null) {
-            if (super.getId() != null) {
-                return false;
-            }
-        } else if (!super.getId().equals(super.getId())) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        return "NetworkPartitionContext [id=" + super.getId() + 
"partitionAlgorithm=" + partitionAlgorithm + ", minInstanceCount=" +
-                minInstanceCount + ", maxInstanceCount=" + maxInstanceCount + 
"]";
-    }
-
-    public int getCurrentPartitionIndex() {
-        return currentPartitionIndex;
-    }
-
-    public void setCurrentPartitionIndex(int currentPartitionIndex) {
-        this.currentPartitionIndex = currentPartitionIndex;
-    }
-
-    public String getId() {
-        return super.getId();
-    }
-
-
-    public String getPartitionAlgorithm() {
-        return partitionAlgorithm;
-    }
-
-    public int getScaleDownRequestsCount() {
-        return scaleDownRequestsCount;
-    }
-
-    public void resetScaleDownRequestsCount() {
-        this.scaleDownRequestsCount = 0;
-    }
-
-    public void increaseScaleDownRequestsCount() {
-        this.scaleDownRequestsCount += 1;
-    }
-
-    public float getRequiredInstanceCountBasedOnStats() {
-        return requiredInstanceCountBasedOnStats;
-    }
-
-    public void setRequiredInstanceCountBasedOnStats(int 
requiredInstanceCountBasedOnStats) {
-        this.requiredInstanceCountBasedOnStats = 
requiredInstanceCountBasedOnStats;
-    }
-
-    public List<InstanceContext> getInstanceIdToInstanceContextMap(String 
parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-        for(InstanceContext instanceContext : 
instanceIdToInstanceContextMap.values()) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts;
-    }
-
-    public int getRequiredInstanceCountBasedOnDependencies() {
-        return requiredInstanceCountBasedOnDependencies;
-    }
-
-    public void setRequiredInstanceCountBasedOnDependencies(int 
requiredInstanceCountBasedOnDependencies) {
-        this.requiredInstanceCountBasedOnDependencies = 
requiredInstanceCountBasedOnDependencies;
-    }
-
-    public List<GroupLevelPartitionContext> getPartitionCtxts() {
-
-        return partitionContexts;
-    }
-
-    public GroupLevelPartitionContext getPartitionCtxt(String partitionId) {
-
-        for (GroupLevelPartitionContext partitionContext : partitionContexts) {
-            if (partitionContext.getPartitionId().equals(partitionId)) {
-                return partitionContext;
-            }
-        }
-        return null;
-    }
-
-    public void addPartitionContext(GroupLevelPartitionContext 
partitionContext) {
-        partitionContexts.add(partitionContext);
-    }
-
-
-    public GroupLevelPartitionContext getPartitionContextById(String 
partitionId) {
-        for (GroupLevelPartitionContext partitionContext : partitionContexts) {
-            if (partitionContext.getPartitionId().equals(partitionId)) {
-                return partitionContext;
-            }
-        }
-        return null;
-    }
-
-    public List<InstanceContext> getActiveInstances() {
-        return activeInstances;
-    }
-
-    public List<InstanceContext> getActiveInstances(String parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-        for(InstanceContext instanceContext : activeInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts;
-    }
-
-    public void setActiveInstances(List<InstanceContext> activeInstances) {
-        this.activeInstances = activeInstances;
-    }
-
-    public List<InstanceContext> getPendingInstances() {
-        return pendingInstances;
-    }
-
-    public List<InstanceContext> getPendingInstances(String parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-        for(InstanceContext instanceContext : pendingInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts;
-    }
-
-    public void setPendingInstances(List<InstanceContext> pendingInstances) {
-        this.pendingInstances = pendingInstances;
-    }
-
-    public void addPendingInstance(InstanceContext context) {
-        this.pendingInstances.add(context);
-    }
-
-    public int getPendingInstancesCount() {
-        return this.pendingInstances.size();
-    }
-
-    public int getPendingInstancesCount(String parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-        for(InstanceContext instanceContext : pendingInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts.size();
-    }
-
-
-    public int getActiveInstancesCount() {
-        return this.activeInstances.size();
-    }
-
-    public int getActiveInstancesCount(String parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-        for(InstanceContext instanceContext : activeInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts.size();
-    }
-
-    public InstanceContext getActiveInstance(String instanceId) {
-        for (InstanceContext instanceContext : activeInstances) {
-            if (instanceId.equals(instanceContext.getId())) {
-                return instanceContext;
-            }
-        }
-        return null;
-    }
-
-    public InstanceContext getPendingInstance(String instanceId) {
-        for (InstanceContext instanceContext : pendingInstances) {
-            if (instanceId.equals(instanceContext.getId())) {
-                return instanceContext;
-            }
-        }
-        return null;
-    }
-
-
-    public void movePendingInstanceToActiveInstances(String instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (pendingInstances) {
-            Iterator<InstanceContext> iterator = 
pendingInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext pendingInstance = iterator.next();
-                if (pendingInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(pendingInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.activeInstances.add(pendingInstance);
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Pending instance is removed 
and added to the " +
-                                "activated instance list. [Instance Id] %s", 
instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public void moveActiveInstanceToTerminationPendingInstances(String 
instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (activeInstances) {
-            Iterator<InstanceContext> iterator = 
activeInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext activeInstance = iterator.next();
-                if (activeInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(activeInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.terminatingPending.add(activeInstance);
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Active instance is removed 
and added to the " +
-                                "termination pending instance list. [Instance 
Id] %s", instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public void movePendingInstanceToTerminationPendingInstances(String 
instanceId) {
-        if (instanceId == null) {
-            return;
-        }
-        synchronized (pendingInstances) {
-            Iterator<InstanceContext> iterator = 
pendingInstances.listIterator();
-            while (iterator.hasNext()) {
-                InstanceContext pendingInstance = iterator.next();
-                if (pendingInstance == null) {
-                    iterator.remove();
-                    continue;
-                }
-                if (instanceId.equals(pendingInstance.getId())) {
-                    // member is activated
-                    // remove from pending list
-                    iterator.remove();
-                    // add to the activated list
-                    this.terminatingPending.add(pendingInstance);
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Pending instance is removed 
and added to the " +
-                                "termination pending instance list. [Instance 
Id] %s", instanceId));
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    public int getNonTerminatedInstancesCount() {
-        return this.activeInstances.size() + this.pendingInstances.size();
-    }
-
-    public int getNonTerminatedInstancesCount(String parentInstanceId) {
-        List<InstanceContext> instanceContexts = new 
ArrayList<InstanceContext>();
-
-        for(InstanceContext instanceContext : activeInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-
-        for(InstanceContext instanceContext : pendingInstances) {
-            if(instanceContext.getParentInstanceId().equals(parentInstanceId)) 
{
-                instanceContexts.add(instanceContext);
-            }
-        }
-        return instanceContexts.size();
-    }
-
-    public List<InstanceContext> getTerminatingPending() {
-        return terminatingPending;
-    }
-
-    public void setTerminatingPending(List<InstanceContext> 
terminatingPending) {
-        this.terminatingPending = terminatingPending;
-    }
-
-    public boolean removeTerminationPendingInstance(String instanceId) {
-        if (id == null) {
-            return false;
-        }
-        synchronized (pendingInstances) {
-            for (Iterator<InstanceContext> iterator = 
pendingInstances.iterator(); iterator.hasNext(); ) {
-                InstanceContext pendingInstance = iterator.next();
-                if (id.equals(pendingInstance.getId())) {
-                    iterator.remove();
-                    return true;
-                }
-
-            }
-        }
-        return false;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 4303f26..b9b6050 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -29,7 +29,6 @@ import 
org.apache.stratos.autoscaler.context.cluster.ClusterContextFactory;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import 
org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher;
@@ -332,7 +331,7 @@ public class ClusterMonitor extends Monitor {
     public synchronized void monitor() {
 
         try {
-            for (ClusterLevelNetworkPartitionContext networkPartitionContext : 
getNetworkPartitionCtxts()) {
+            for (NetworkPartitionContext networkPartitionContext : 
getNetworkPartitionCtxts()) {
 
                 final Collection<InstanceContext> clusterInstanceContexts = 
networkPartitionContext.
                         getInstanceIdToInstanceContextMap().values();
@@ -825,7 +824,7 @@ public class ClusterMonitor extends Monitor {
                     clusterId, clusterInstanceId, networkPartitionId, value));
         }
         if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) {
-            ClusterLevelNetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
+            NetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
             if (null != networkPartitionContext) {
                 int totalActiveMemberCount = 0;
                 for (InstanceContext clusterInstanceContext :
@@ -880,7 +879,7 @@ public class ClusterMonitor extends Monitor {
         }
 
         if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) {
-            ClusterLevelNetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
+            NetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
             if (null != networkPartitionContext) {
                 int totalActiveMemberCount = 0;
                 for (InstanceContext clusterInstanceContext : 
networkPartitionContext
@@ -933,7 +932,7 @@ public class ClusterMonitor extends Monitor {
         }
 
         if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) {
-            ClusterLevelNetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
+            NetworkPartitionContext networkPartitionContext = 
getNetworkPartitionContext(networkPartitionId);
             if (null != networkPartitionContext) {
                 int totalActiveMemberCount = 0;
                 for (InstanceContext clusterInstanceContext : 
networkPartitionContext
@@ -1482,18 +1481,18 @@ public class ClusterMonitor extends Monitor {
     }
 
 
-    public Map<String, ClusterLevelNetworkPartitionContext> 
getAllNetworkPartitionCtxts() {
+    public Map<String, NetworkPartitionContext> getAllNetworkPartitionCtxts() {
         return (this.clusterContext).getNetworkPartitionCtxts();
     }
 
     public ClusterInstanceContext getClusterInstanceContext(String 
networkPartitionId, String instanceId) {
         Map<String,
-                ClusterLevelNetworkPartitionContext> 
clusterLevelNetworkPartitionContextMap =
+                NetworkPartitionContext> 
clusterLevelNetworkPartitionContextMap =
                 (this.clusterContext).getNetworkPartitionCtxts();
         if (StringUtils.isBlank(networkPartitionId)) {
             throw new RuntimeException("Network partition id is null");
         }
-        ClusterLevelNetworkPartitionContext networkPartitionContext =
+        NetworkPartitionContext networkPartitionContext =
                 clusterLevelNetworkPartitionContextMap.get(networkPartitionId);
         if (networkPartitionContext == null) {
             throw new RuntimeException("Network partition context not found: 
[network-partition-id] " +
@@ -1503,14 +1502,14 @@ public class ClusterMonitor extends Monitor {
         return (ClusterInstanceContext) 
networkPartitionContext.getInstanceContext(instanceId);
     }
 
-    public ClusterLevelNetworkPartitionContext 
getNetworkPartitionContext(String networkPartitionId) {
+    public NetworkPartitionContext getNetworkPartitionContext(String 
networkPartitionId) {
         Map<String,
-                ClusterLevelNetworkPartitionContext> 
clusterLevelNetworkPartitionContextMap =
+                NetworkPartitionContext> 
clusterLevelNetworkPartitionContextMap =
                 (this.clusterContext).getNetworkPartitionCtxts();
         if (StringUtils.isBlank(networkPartitionId)) {
             throw new RuntimeException("Network partition id is null");
         }
-        ClusterLevelNetworkPartitionContext networkPartitionContext =
+        NetworkPartitionContext networkPartitionContext =
                 clusterLevelNetworkPartitionContextMap.get(networkPartitionId);
         if (networkPartitionContext == null) {
             throw new RuntimeException("Network partition context not found: 
[network-partition-id] " +
@@ -1520,7 +1519,7 @@ public class ClusterMonitor extends Monitor {
         return networkPartitionContext;
     }
 
-    public Collection<ClusterLevelNetworkPartitionContext> 
getNetworkPartitionCtxts() {
+    public Collection<NetworkPartitionContext> getNetworkPartitionCtxts() {
         return (this.clusterContext).getNetworkPartitionCtxts().values();
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index 1f815cd..af00873 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -30,7 +30,6 @@ import 
org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.context.InstanceContext;
 import 
org.apache.stratos.autoscaler.context.application.ApplicationInstanceContext;
 import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
 import 
org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
 import 
org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
@@ -48,7 +47,6 @@ import 
org.apache.stratos.messaging.domain.application.Application;
 import org.apache.stratos.messaging.domain.application.ApplicationStatus;
 import org.apache.stratos.messaging.domain.application.GroupStatus;
 import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
-import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
 
@@ -169,7 +167,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
 
     private void handleScalingMaxOut(InstanceContext instanceContext,
                                      NetworkPartitionContext 
networkPartitionContext) {
-        if (((ParentLevelNetworkPartitionContext) 
networkPartitionContext).getPendingInstancesCount() == 0) {
+        if (((NetworkPartitionContext) 
networkPartitionContext).getPendingInstancesCount() == 0) {
             //handling the application bursting only when there are no pending 
instances found
             try {
                 if (log.isInfoEnabled()) {
@@ -311,8 +309,8 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
                 log.info("Detected a newly updated [network-partition] " + 
networkPartitionId +
                         " for [application] " + appId + ". Hence new 
application instance " +
                         "creation is going to start now!");
-                ParentLevelNetworkPartitionContext context =
-                        new 
ParentLevelNetworkPartitionContext(networkPartitionId);
+                NetworkPartitionContext context =
+                        new NetworkPartitionContext(networkPartitionId);
                 //If application instances found in the ApplicationsTopology,
                 // then have to add them first before creating new one
                 ApplicationInstance appInstance = (ApplicationInstance) 
application.
@@ -547,8 +545,8 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
             }
 
             for (String networkPartitionIds : nextNetworkPartitions) {
-                ParentLevelNetworkPartitionContext context =
-                        new 
ParentLevelNetworkPartitionContext(networkPartitionIds);
+                NetworkPartitionContext context =
+                        new NetworkPartitionContext(networkPartitionIds);
                 //If application instances found in the ApplicationsTopology,
                 // then have to add them first before creating new one
                 ApplicationInstance appInstance = (ApplicationInstance) 
application.
@@ -575,8 +573,8 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
             Map<String, ApplicationInstance> instanceMap = 
application.getInstanceIdToInstanceContextMap();
             for (ApplicationInstance instance : instanceMap.values()) {
                 if (!instanceIds.contains(instance.getInstanceId())) {
-                    ParentLevelNetworkPartitionContext context =
-                            new 
ParentLevelNetworkPartitionContext(instance.getNetworkPartitionId());
+                    NetworkPartitionContext context =
+                            new 
NetworkPartitionContext(instance.getNetworkPartitionId());
                     //If application instances found in the 
ApplicationsTopology,
                     // then have to add them first before creating new one
                     ApplicationInstance appInstance = (ApplicationInstance) 
application.
@@ -610,7 +608,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
      * @return instance Id
      */
     private String handleApplicationInstanceCreation(Application application,
-                                                     
ParentLevelNetworkPartitionContext context,
+                                                     NetworkPartitionContext 
context,
                                                      ApplicationInstance 
instanceExist) {
         ApplicationInstance instance;
         ApplicationInstanceContext instanceContext;
@@ -703,8 +701,8 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         for (String networkPartitionId : nextNetworkPartitions) {
             if 
(!this.getNetworkPartitionContextsMap().containsKey(networkPartitionId)) {
                 String instanceId;
-                ParentLevelNetworkPartitionContext context = new
-                        ParentLevelNetworkPartitionContext(networkPartitionId);
+                NetworkPartitionContext context = new
+                        NetworkPartitionContext(networkPartitionId);
 
                 ApplicationInstance appInstance = (ApplicationInstance) 
application.
                         getInstanceByNetworkPartitionId(context.getId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 9224997..ee519a6 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -22,7 +22,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.algorithms.PartitionAlgorithm;
 import org.apache.stratos.autoscaler.applications.ApplicationHolder;
-import 
org.apache.stratos.autoscaler.applications.dependency.context.ApplicationChildContext;
 import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.context.InstanceContext;
@@ -30,7 +29,6 @@ import 
org.apache.stratos.autoscaler.context.group.GroupInstanceContext;
 import 
org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext;
 import org.apache.stratos.autoscaler.context.partition.PartitionContext;
 import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
 import 
org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException;
 import 
org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
@@ -156,8 +154,8 @@ public class GroupMonitor extends ParentComponentMonitor {
                         }
                     }
 
-                    ParentLevelNetworkPartitionContext 
parentNetworkPartitionContext
-                            = (ParentLevelNetworkPartitionContext) 
networkPartitionContext;
+                    NetworkPartitionContext parentNetworkPartitionContext
+                            = (NetworkPartitionContext) 
networkPartitionContext;
                     Collection<Instance> parentInstances = 
parent.getInstances();
 
                     for (Instance parentInstance : parentInstances) {
@@ -180,7 +178,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                                         //keep on scale-up/scale-down only if 
the application is active
                                         ApplicationMonitor appMonitor = 
AutoscalerContext.getInstance().
                                                 getAppMonitor(appId);
-                                        int activeAppInstances = 
((ParentLevelNetworkPartitionContext) appMonitor.
+                                        int activeAppInstances = 
((NetworkPartitionContext) appMonitor.
                                                 
getNetworkPartitionContext(parentNetworkPartitionContext.getId())).
                                                 getActiveInstancesCount();
                                         if (activeAppInstances > 0) {
@@ -200,7 +198,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                             if (activeInstances > maxInstances) {
                                 int instancesToBeTerminated = activeInstances 
- maxInstances;
                                 List<InstanceContext> contexts =
-                                        ((ParentLevelNetworkPartitionContext) 
networkPartitionContext).
+                                        ((NetworkPartitionContext) 
networkPartitionContext).
                                                 
getInstanceIdToInstanceContextMap(parentInstance.getInstanceId());
                                 List<InstanceContext> contextList = new 
ArrayList<InstanceContext>(contexts);
                                 for (int i = 0; i < instancesToBeTerminated; 
i++) {
@@ -265,8 +263,8 @@ public class GroupMonitor extends ParentComponentMonitor {
         // if it is a force scale-down
         if (allChildrenScaleDown || forceScaleDown) {
             if (hasScalingDependents) {
-                ParentLevelNetworkPartitionContext 
parentLevelNetworkPartitionContext
-                        = (ParentLevelNetworkPartitionContext) 
nwPartitionContext;
+                NetworkPartitionContext parentLevelNetworkPartitionContext
+                        = (NetworkPartitionContext) nwPartitionContext;
                 if 
(parentLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
                         
parentLevelNetworkPartitionContext.getMinInstanceCount()) {
                     //Will scale down based on dependent manner
@@ -286,8 +284,8 @@ public class GroupMonitor extends ParentComponentMonitor {
 
             } else {
                 if (groupScalingEnabled) {
-                    ParentLevelNetworkPartitionContext 
parentLevelNetworkPartitionContext
-                            = (ParentLevelNetworkPartitionContext) 
nwPartitionContext;
+                    NetworkPartitionContext parentLevelNetworkPartitionContext
+                            = (NetworkPartitionContext) nwPartitionContext;
                     if 
(parentLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
                             
parentLevelNetworkPartitionContext.getMinInstanceCount()) {
                         //send terminating to the specific group instance in 
the scale down
@@ -316,7 +314,7 @@ public class GroupMonitor extends ParentComponentMonitor {
     private void createGroupInstanceOnScaling(final NetworkPartitionContext 
networkPartitionContext,
                                               final String parentInstanceId) {
         if (groupScalingEnabled) {
-            if (((ParentLevelNetworkPartitionContext) networkPartitionContext).
+            if (((NetworkPartitionContext) networkPartitionContext).
                     getPendingInstancesCount(parentInstanceId) == 0) {
                 //one of the child is loaded and max out.
                 // Hence creating new group instance
@@ -373,15 +371,15 @@ public class GroupMonitor extends ParentComponentMonitor {
             log.debug("This [Group] " + id + " [scale-up] dependencies. " +
                     "Hence notifying the [parent] " + parent.getId());
         }
-        ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext
-                = (ParentLevelNetworkPartitionContext) networkPartitionContext;
+        NetworkPartitionContext parentLevelNetworkPartitionContext
+                = (NetworkPartitionContext) networkPartitionContext;
         //notifying the parent when scale dependents found
         int maxInstances = 
parentLevelNetworkPartitionContext.getMaxInstanceCount();
         if (groupScalingEnabled && maxInstances > 
parentLevelNetworkPartitionContext.
                 getNonTerminatedInstancesCount()) {
             //increase group by one more instance and calculate the factor for 
the group scaling
             // and notify parent to scale all the dependent in parallel with 
this factor
-            float minInstances = ((ParentLevelNetworkPartitionContext)
+            float minInstances = ((NetworkPartitionContext)
                     networkPartitionContext).getMinInstanceCount();
 
             float factor = (minInstances + 1) / minInstances;
@@ -611,8 +609,8 @@ public class GroupMonitor extends ParentComponentMonitor {
                 get(networkPartitionId);
 
         float factor = scalingEvent.getFactor();
-        ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext
-                = (ParentLevelNetworkPartitionContext) networkPartitionContext;
+        NetworkPartitionContext parentLevelNetworkPartitionContext
+                = (NetworkPartitionContext) networkPartitionContext;
         int currentInstances = parentLevelNetworkPartitionContext.
                 getNonTerminatedInstancesCount(parentInstanceId);
         float requiredInstances = factor * 
parentLevelNetworkPartitionContext.getMinInstanceCount();
@@ -684,16 +682,16 @@ public class GroupMonitor extends ParentComponentMonitor {
      * @param parentInstanceContext the parent instance context
      * @return the group level network partition context
      */
-    private ParentLevelNetworkPartitionContext 
getGroupLevelNetworkPartitionContext(String groupAlias,
+    private NetworkPartitionContext 
getGroupLevelNetworkPartitionContext(String groupAlias,
                                                                                
     String appId,
                                                                                
     Instance parentInstanceContext) {
-        ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext;
+        NetworkPartitionContext parentLevelNetworkPartitionContext;
         String deploymentPolicyId = 
AutoscalerUtil.getDeploymentPolicyIdByAlias(appId, groupAlias);
         DeploymentPolicy deploymentPolicy = 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId);
 
         String networkPartitionId = 
parentInstanceContext.getNetworkPartitionId();
         if 
(this.getNetworkPartitionContextsMap().containsKey(networkPartitionId)) {
-            parentLevelNetworkPartitionContext = 
(ParentLevelNetworkPartitionContext) this.getNetworkPartitionContextsMap().
+            parentLevelNetworkPartitionContext = (NetworkPartitionContext) 
this.getNetworkPartitionContextsMap().
                     get(networkPartitionId);
         } else {
             if (deploymentPolicy != null) {
@@ -706,16 +704,16 @@ public class GroupMonitor extends ParentComponentMonitor {
                 }
 
                 if (networkPartition != null) {
-                    parentLevelNetworkPartitionContext = new 
ParentLevelNetworkPartitionContext(
+                    parentLevelNetworkPartitionContext = new 
NetworkPartitionContext(
                             networkPartitionId,
                             networkPartition.getPartitionAlgo());
                 } else {
-                    parentLevelNetworkPartitionContext = new 
ParentLevelNetworkPartitionContext(
+                    parentLevelNetworkPartitionContext = new 
NetworkPartitionContext(
                             networkPartitionId);
                 }
 
             } else {
-                parentLevelNetworkPartitionContext = new 
ParentLevelNetworkPartitionContext(
+                parentLevelNetworkPartitionContext = new 
NetworkPartitionContext(
                         networkPartitionId);
             }
             if (log.isInfoEnabled()) {
@@ -736,7 +734,7 @@ public class GroupMonitor extends ParentComponentMonitor {
      * @param groupAlias              alias of the group
      */
     private void addPartitionContext(Instance parentInstanceContext,
-                                     ParentLevelNetworkPartitionContext 
networkPartitionContext, String groupAlias) {
+                                     NetworkPartitionContext 
networkPartitionContext, String groupAlias) {
 
         String networkPartitionId = 
parentInstanceContext.getNetworkPartitionId();
 
@@ -799,7 +797,7 @@ public class GroupMonitor extends ParentComponentMonitor {
      */
     private String createGroupInstanceAndAddToMonitor(Group group, Instance 
parentInstanceContext,
                                                       PartitionContext 
partitionContext,
-                                                      
ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext,
+                                                      NetworkPartitionContext 
parentLevelNetworkPartitionContext,
                                                       GroupInstance 
groupInstance) {
 
         String partitionId = null;
@@ -856,7 +854,7 @@ public class GroupMonitor extends ParentComponentMonitor {
             Instance parentInstanceContext = 
getParentInstanceContext(parentInstanceId);
 
             // Get existing or create new GroupLevelNetworkPartitionContext
-            ParentLevelNetworkPartitionContext 
parentLevelNetworkPartitionContext =
+            NetworkPartitionContext parentLevelNetworkPartitionContext =
                     
getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(),
                             this.appId, parentInstanceContext);
             //adding the partitionContext to the network partition context
@@ -921,7 +919,7 @@ public class GroupMonitor extends ParentComponentMonitor {
      * @return the partition-context
      */
     private PartitionContext getPartitionContext(
-            ParentLevelNetworkPartitionContext 
parentLevelNetworkPartitionContext,
+            NetworkPartitionContext parentLevelNetworkPartitionContext,
             String parentPartitionId) {
         PartitionContext partitionContext = null;
         // Get partitionContext to create instance in
@@ -962,7 +960,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                 " in order to satisfy the demand on scaling for " +
                 "[parent-instance] " + parentInstanceId);
         // Get existing or create new GroupLevelNetworkPartitionContext
-        ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext =
+        NetworkPartitionContext parentLevelNetworkPartitionContext =
                 
getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(),
                         this.appId, parentInstanceContext);
         //adding the partitionContext to the network partition context
@@ -1061,7 +1059,7 @@ public class GroupMonitor extends ParentComponentMonitor {
      *
      * @param parentLevelNetworkPartitionContext the group level network 
partition context
      */
-    public void addNetworkPartitionContext(ParentLevelNetworkPartitionContext
+    public void addNetworkPartitionContext(NetworkPartitionContext
                                                    
parentLevelNetworkPartitionContext) {
         
this.getNetworkPartitionContextsMap().put(parentLevelNetworkPartitionContext.getId(),
                 parentLevelNetworkPartitionContext);
@@ -1087,7 +1085,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                 + id + " upon termination of an group instance for 
[parent-instance] "
                 + parentInstanceId);
         // Get existing or create new GroupLevelNetworkPartitionContext
-        ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext =
+        NetworkPartitionContext parentLevelNetworkPartitionContext =
                 
getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(),
                         this.appId, parentInstanceContext);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index ef61fa2..e033f93 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -29,7 +29,6 @@ import 
org.apache.stratos.autoscaler.applications.dependency.DependencyTree;
 import 
org.apache.stratos.autoscaler.applications.dependency.context.ApplicationChildContext;
 import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
 import org.apache.stratos.autoscaler.context.InstanceContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import 
org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
@@ -671,8 +670,8 @@ public abstract class ParentComponentMonitor extends 
Monitor {
         }
 
         if (!groupInstances.isEmpty()) {
-            ParentLevelNetworkPartitionContext networkPartitionContext =
-                    (ParentLevelNetworkPartitionContext) ((GroupMonitor) 
monitor).
+            NetworkPartitionContext networkPartitionContext =
+                    (NetworkPartitionContext) ((GroupMonitor) monitor).
                             
getNetworkPartitionContextsMap().get(networkPartitionId);
             int minInstances = networkPartitionContext.getMinInstanceCount();
             //if terminated all the instances in this instances map should be 
in terminated state

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index 51443a1..87d71a7 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -32,11 +32,10 @@ import 
org.apache.stratos.autoscaler.context.cluster.ClusterContext;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
 import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
+import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher;
 import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
-import org.apache.stratos.common.client.CloudControllerServiceClient;
 import org.apache.stratos.common.constants.StratosConstants;
 
 /**
@@ -186,7 +185,7 @@ public class RuleTasksDelegator {
             int minimumCountOfNetworkPartition;
             ClusterMonitor clusterMonitor = 
AutoscalerContext.getInstance().getClusterMonitor(clusterId);
             ClusterContext clusterContext = clusterMonitor.getClusterContext();
-            ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext =
+            NetworkPartitionContext clusterLevelNetworkPartitionContext =
                     clusterContext.getNetworkPartitionCtxt(nwPartitionId);
             ClusterInstanceContext clusterInstanceContext =
                     (ClusterInstanceContext) 
clusterLevelNetworkPartitionContext.

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index 9e52e61..c3bb2c7 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -25,7 +25,6 @@ import 
org.apache.stratos.autoscaler.algorithms.networkpartition.NetworkPartitio
 import org.apache.stratos.autoscaler.applications.ApplicationHolder;
 import org.apache.stratos.autoscaler.applications.parser.ApplicationParser;
 import 
org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser;
-import org.apache.stratos.autoscaler.applications.pojo.*;
 import 
org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext;
 import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext;
 import 
org.apache.stratos.autoscaler.applications.pojo.ArtifactRepositoryContext;
@@ -39,7 +38,7 @@ import 
org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.context.InstanceContext;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
+import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.exception.*;
 import 
org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException;
@@ -57,7 +56,6 @@ import 
org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.autoscaler.registry.RegistryManager;
 import org.apache.stratos.autoscaler.services.AutoscalerService;
-import org.apache.stratos.autoscaler.stub.pojo.*;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
 import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidPartitionExceptionException;
@@ -1132,7 +1130,7 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
             //Following if statement checks the relevant clusters for the 
updated deployment policy
             if 
(deploymentPolicy.getDeploymentPolicyID().equals(clusterMonitor.getDeploymentPolicyId()))
 {
                 for (NetworkPartitionRef networkPartition : 
deploymentPolicy.getNetworkPartitionRefs()) {
-                    ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext
+                    NetworkPartitionContext clusterLevelNetworkPartitionContext
                             = 
clusterMonitor.getClusterContext().getNetworkPartitionCtxt(networkPartition.getId());
                     if(clusterLevelNetworkPartitionContext != null) {
                         try {
@@ -1165,7 +1163,7 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
         }
     }
 
-    private void 
removeOldPartitionsFromClusterMonitor(ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext,
+    private void removeOldPartitionsFromClusterMonitor(NetworkPartitionContext 
clusterLevelNetworkPartitionContext,
                                                        NetworkPartitionRef 
networkPartition) {
 
         for (InstanceContext instanceContext : 
clusterLevelNetworkPartitionContext.getInstanceIdToInstanceContextMap().values())
 {
@@ -1197,7 +1195,7 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
         }
     }
 
-    private void 
addNewPartitionsToClusterMonitor(ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext,
+    private void addNewPartitionsToClusterMonitor(NetworkPartitionContext 
clusterLevelNetworkPartitionContext,
                                                   NetworkPartitionRef 
networkPartitionRef, String deploymentPolicyID,
                                                   String cartridgeType) throws 
RemoteException,
             CloudControllerServiceInvalidPartitionExceptionException,
@@ -1207,7 +1205,8 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
         for (PartitionRef partition : networkPartitionRef.getPartitionRefs()) {
 
             //Iterating through instances
-            for (InstanceContext instanceContext : 
clusterLevelNetworkPartitionContext.getInstanceIdToInstanceContextMap().values())
 {
+            for (InstanceContext instanceContext : 
clusterLevelNetworkPartitionContext.
+                    getInstanceIdToInstanceContextMap().values()) {
 
                 ClusterInstanceContext clusterInstanceContext = 
(ClusterInstanceContext) instanceContext;
                 if (null == 
clusterInstanceContext.getPartitionCtxt(partition.getId())) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
index 978f742..a8521d5 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
@@ -22,7 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
+import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
 import org.apache.stratos.autoscaler.status.processor.StatusProcessor;
@@ -64,7 +64,7 @@ public class ClusterStatusActiveProcessor extends 
ClusterStatusProcessor {
         ClusterMonitor monitor = AutoscalerContext.getInstance().
                 getClusterMonitor(clusterId);
         boolean clusterActive = false;
-        for (ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext :
+        for (NetworkPartitionContext clusterLevelNetworkPartitionContext :
                 monitor.getNetworkPartitionCtxts()) {
             //minimum check per partition
             ClusterInstanceContext instanceContext =

http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java
index 7d7a2e8..10b84fa 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java
@@ -22,7 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
-import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
+import 
org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
 import org.apache.stratos.autoscaler.status.processor.StatusProcessor;
@@ -85,7 +85,7 @@ public class ClusterStatusInactiveProcessor extends 
ClusterStatusProcessor {
 
     private boolean getClusterInactive(String instanceId, ClusterMonitor 
monitor) {
         boolean clusterInactive = false;
-        for (ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext :
+        for (NetworkPartitionContext clusterLevelNetworkPartitionContext :
                 monitor.getAllNetworkPartitionCtxts().values()) {
             ClusterInstanceContext instanceContext =
                     (ClusterInstanceContext) 
clusterLevelNetworkPartitionContext.

Reply via email to