Updating clustor monitors to use new cluster contexts

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

Branch: refs/heads/master
Commit: 02a65b3d266ab172e4036bae65a5952103632bb7
Parents: e603f74
Author: Lahiru Sandaruwan <[email protected]>
Authored: Sun Nov 9 12:45:18 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Sun Nov 9 12:45:18 2014 +0530

----------------------------------------------------------------------
 .../monitor/cluster/AbstractClusterMonitor.java | 41 ++++-----
 .../monitor/cluster/ClusterMonitorFactory.java  | 74 ++++++++-------
 .../cluster/KubernetesClusterMonitor.java       | 14 +--
 .../KubernetesServiceClusterMonitor.java        | 21 +++--
 .../monitor/cluster/VMClusterMonitor.java       | 97 ++++++--------------
 .../monitor/cluster/VMLbClusterMonitor.java     | 18 ++--
 .../cluster/VMServiceClusterMonitor.java        | 29 +++---
 7 files changed, 124 insertions(+), 170 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
index 755931c..8b4f107 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
@@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.AbstractClusterContext;
 import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
 import org.apache.stratos.autoscaler.monitor.Monitor;
 import org.apache.stratos.autoscaler.monitor.MonitorStatusEventBuilder;
@@ -62,12 +63,10 @@ import org.drools.runtime.rule.FactHandle;
  * Every cluster monitor, which are monitoring a cluster, should extend this 
class.
  */
 public abstract class AbstractClusterMonitor extends Monitor implements 
Runnable {
-       
+
        private static final Log log = 
LogFactory.getLog(AbstractClusterMonitor.class);
 
     private String clusterId;
-    private String serviceId;
-    private String appId;
     private ClusterStatus status;
     private int monitoringIntervalMilliseconds;
 
@@ -83,15 +82,17 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     protected boolean hasFaultyMember = false;
     protected boolean stop = false;
 
+    protected AbstractClusterContext clusterContext;
+
     private final ScheduledExecutorService scheduler = 
Executors.newScheduledThreadPool(1);
 
-    protected AbstractClusterMonitor(String clusterId, String serviceId,
-                                     AutoscalerRuleEvaluator 
autoscalerRuleEvaluator) {
+    protected AbstractClusterMonitor(String clusterId, AutoscalerRuleEvaluator 
autoscalerRuleEvaluator,
+                                     AbstractClusterContext 
abstractClusterContext) {
 
         super();
         this.clusterId = clusterId;
-        this.serviceId = serviceId;
         this.autoscalerRuleEvaluator = autoscalerRuleEvaluator;
+        this.clusterContext = abstractClusterContext;
         this.obsoleteCheckKnowledgeSession = 
autoscalerRuleEvaluator.getObsoleteCheckStatefulSession();
         this.scaleCheckKnowledgeSession = 
autoscalerRuleEvaluator.getScaleCheckStatefulSession();
         this.minCheckKnowledgeSession = 
autoscalerRuleEvaluator.getMinCheckStatefulSession();
@@ -177,7 +178,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     public abstract void handleClusterRemovedEvent(ClusterRemovedEvent 
clusterRemovedEvent);
 
     public abstract void handleDynamicUpdates(Properties properties) throws 
InvalidArgumentException;
-    
+
     @Override
     public int hashCode() {
        final int prime = 31;
@@ -185,7 +186,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
        result = prime * result + ((this.clusterId == null) ? 0 : 
this.clusterId.hashCode());
        return result;
     }
-    
+
     @Override
     public boolean equals(final Object obj) {
        if (this == obj) {
@@ -245,14 +246,6 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
         //}
 
     }
-    
-    public String getServiceId() {
-        return serviceId;
-    }
-
-    public void setServiceId(String serviceId) {
-        this.serviceId = serviceId;
-    }
 
     public int getMonitorIntervalMilliseconds() {
         return monitoringIntervalMilliseconds;
@@ -269,11 +262,11 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     public void setMinCheckFactHandle(FactHandle minCheckFactHandle) {
         this.minCheckFactHandle = minCheckFactHandle;
     }
-    
+
     public FactHandle getObsoleteCheckFactHandle() {
         return obsoleteCheckFactHandle;
     }
-    
+
     public void setObsoleteCheckFactHandle(FactHandle obsoleteCheckFactHandle) 
{
         this.obsoleteCheckFactHandle = obsoleteCheckFactHandle;
     }
@@ -281,7 +274,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     public FactHandle getScaleCheckFactHandle() {
         return scaleCheckFactHandle;
     }
-    
+
     public void setScaleCheckFactHandle(FactHandle scaleCheckFactHandle) {
         this.scaleCheckFactHandle = scaleCheckFactHandle;
     }
@@ -294,7 +287,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
             StatefulKnowledgeSession minCheckKnowledgeSession) {
         this.minCheckKnowledgeSession = minCheckKnowledgeSession;
     }
-    
+
     public StatefulKnowledgeSession getObsoleteCheckKnowledgeSession() {
         return obsoleteCheckKnowledgeSession;
     }
@@ -329,7 +322,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
             AutoscalerRuleEvaluator autoscalerRuleEvaluator) {
         this.autoscalerRuleEvaluator = autoscalerRuleEvaluator;
     }
-    
+
     public String getAppId() {
        return this.appId;
     }
@@ -368,7 +361,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     }
 
     public abstract void terminateAllMembers();
-    
+
     public boolean isStop() {
         return stop;
     }
@@ -376,4 +369,8 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
     public void setStop(boolean stop) {
         this.stop = stop;
     }
+
+    public String getServiceId(){
+        return clusterContext.getServiceId();
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java
index 19b49f2..8911458 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java
@@ -41,6 +41,7 @@ import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
 import org.apache.stratos.messaging.util.Constants;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
 
@@ -88,7 +89,7 @@ public class ClusterMonitorFactory {
             log.debug("Autoscaler policy name: " + autoscalePolicyName);
         }
 
-        AutoscalePolicy policy =
+        AutoscalePolicy autoscalePolicy =
                 PolicyManager.getInstance()
                         .getAutoscalePolicy(autoscalePolicyName);
         DeploymentPolicy deploymentPolicy =
@@ -112,14 +113,12 @@ public class ClusterMonitorFactory {
 
         
CloudControllerClient.getInstance().validateDeploymentPolicy(cluster.getServiceName(),
 deploymentPolicy);
 
-        VMServiceClusterMonitor clusterMonitor =
-                new VMServiceClusterMonitor(cluster.getClusterId(),
-                        cluster.getServiceName(),
-                        deploymentPolicy, policy);
+        Map<String, NetworkPartitionContext> networkPartitionContextMap = new 
HashMap<String, NetworkPartitionContext>();
 
         for (PartitionGroup partitionGroup : 
deploymentPolicy.getPartitionGroups()) {
 
-            NetworkPartitionContext networkPartitionContext = new 
NetworkPartitionContext(partitionGroup.getId(),
+            String networkPartitionId = partitionGroup.getId();
+            NetworkPartitionContext networkPartitionContext = new 
NetworkPartitionContext(networkPartitionId,
                     partitionGroup.getPartitionAlgo(),
                     partitionGroup.getPartitions());
 
@@ -173,7 +172,7 @@ public class ClusterMonitorFactory {
                 }
             }
 
-            clusterMonitor.addNetworkPartitionCtxt(networkPartitionContext);
+            networkPartitionContextMap.put(networkPartitionId, 
networkPartitionContext);
             if (log.isInfoEnabled()) {
                 log.info(String.format("Network partition context has been 
added: [network partition] %s",
                         networkPartitionContext.getId()));
@@ -181,6 +180,11 @@ public class ClusterMonitorFactory {
         }
 
 
+        VMServiceClusterContext clusterContext =
+                new VMServiceClusterContext(cluster.getClusterId(), 
cluster.getServiceName(), autoscalePolicy,
+                        deploymentPolicy, networkPartitionContextMap);
+        VMServiceClusterMonitor clusterMonitor = new 
VMServiceClusterMonitor(cluster.getClusterId(),
+                clusterContext);
         // find lb reference type
         java.util.Properties props = cluster.getProperties();
 
@@ -232,7 +236,7 @@ public class ClusterMonitorFactory {
             log.debug("Autoscaler policy name: " + autoscalePolicyName);
         }
 
-        AutoscalePolicy policy =
+        AutoscalePolicy autoscalePolicy =
                 PolicyManager.getInstance()
                         .getAutoscalePolicy(autoscalePolicyName);
         DeploymentPolicy deploymentPolicy =
@@ -246,17 +250,16 @@ public class ClusterMonitorFactory {
         }
 
         String clusterId = cluster.getClusterId();
-        VMLbClusterMonitor clusterMonitor =
-                new VMLbClusterMonitor(clusterId,
-                        cluster.getServiceName(),
-                        deploymentPolicy, policy);
-        clusterMonitor.setStatus(ClusterStatus.Created);
+
+        Map<String, NetworkPartitionContext> networkPartitionContextMap = new 
HashMap<String, NetworkPartitionContext>();
+
         // partition group = network partition context
         for (PartitionGroup partitionGroup : 
deploymentPolicy.getPartitionGroups()) {
 
+            String networkPartitionId = partitionGroup.getId();
             NetworkPartitionLbHolder networkPartitionLbHolder =
                     PartitionManager.getInstance()
-                            
.getNetworkPartitionLbHolder(partitionGroup.getId());
+                            .getNetworkPartitionLbHolder(networkPartitionId);
 //                                                              
PartitionManager.getInstance()
 //                                                                             
 .getNetworkPartitionLbHolder(partitionGroup.getId());
             // FIXME pick a random partition
@@ -265,10 +268,10 @@ public class ClusterMonitorFactory {
             PartitionContext partitionContext = new 
PartitionContext(partition);
             partitionContext.setServiceName(cluster.getServiceName());
             partitionContext.setProperties(cluster.getProperties());
-            partitionContext.setNetworkPartitionId(partitionGroup.getId());
+            partitionContext.setNetworkPartitionId(networkPartitionId);
             partitionContext.setMinimumMemberCount(1);//Here it hard codes the 
minimum value as one for LB cartridge partitions
 
-            NetworkPartitionContext networkPartitionContext = new 
NetworkPartitionContext(partitionGroup.getId(),
+            NetworkPartitionContext networkPartitionContext = new 
NetworkPartitionContext(networkPartitionId,
                     partitionGroup.getPartitionAlgo(),
                     partitionGroup.getPartitions());
             for (Member member : cluster.getMembers()) {
@@ -335,9 +338,17 @@ public class ClusterMonitorFactory {
                 }
             }
 
-            clusterMonitor.addNetworkPartitionCtxt(networkPartitionContext);
+            networkPartitionContextMap.put(networkPartitionId, 
networkPartitionContext);
         }
 
+        VMClusterContext clusterContext = new VMClusterContext(clusterId, 
cluster.getServiceName(), autoscalePolicy,
+                deploymentPolicy, networkPartitionContextMap);
+
+        VMLbClusterMonitor clusterMonitor =
+                new VMLbClusterMonitor(clusterId,
+                        cluster.getServiceName(), clusterContext);
+        clusterMonitor.setStatus(ClusterStatus.Created);
+
         log.info("VMLbClusterMonitor created: " + clusterMonitor.toString());
         return clusterMonitor;
     }
@@ -354,6 +365,10 @@ public class ClusterMonitorFactory {
         }
 
         String autoscalePolicyName = cluster.getAutoscalePolicyName();
+
+        AutoscalePolicy autoscalePolicy =
+                PolicyManager.getInstance()
+                        .getAutoscalePolicy(autoscalePolicyName);
         if (log.isDebugEnabled()) {
             log.debug("Autoscaling policy name: " + autoscalePolicyName);
         }
@@ -373,28 +388,25 @@ public class ClusterMonitorFactory {
             log.error(message);
             throw new RuntimeException(message);
         }
-
-        String kubernetesHostClusterID = 
properties.getProperty(StratosConstants.KUBERNETES_CLUSTER_ID);
-        KubernetesClusterContext kubernetesClusterCtxt = new 
KubernetesClusterContext(kubernetesHostClusterID,
-                cluster.getClusterId());
-
         String minReplicasProperty = 
properties.getProperty(StratosConstants.KUBERNETES_MIN_REPLICAS);
+        int minReplicas = 0;
         if (minReplicasProperty != null && !minReplicasProperty.isEmpty()) {
-            int minReplicas = Integer.parseInt(minReplicasProperty);
-            kubernetesClusterCtxt.setMinReplicas(minReplicas);
+            minReplicas = Integer.parseInt(minReplicasProperty);
         }
 
+        int maxReplicas = 0;
         String maxReplicasProperty = 
properties.getProperty(StratosConstants.KUBERNETES_MAX_REPLICAS);
         if (maxReplicasProperty != null && !maxReplicasProperty.isEmpty()) {
-            int maxReplicas = Integer.parseInt(maxReplicasProperty);
-            kubernetesClusterCtxt.setMaxReplicas(maxReplicas);
+            maxReplicas = Integer.parseInt(maxReplicasProperty);
         }
 
-        KubernetesServiceClusterMonitor dockerClusterMonitor = new 
KubernetesServiceClusterMonitor(
-                kubernetesClusterCtxt,
-                cluster.getClusterId(),
-                cluster.getServiceName(),
-                policy.getId());
+        String kubernetesHostClusterID = 
properties.getProperty(StratosConstants.KUBERNETES_CLUSTER_ID);
+        KubernetesClusterContext kubernetesClusterCtxt = new 
KubernetesClusterContext(kubernetesHostClusterID,
+                cluster.getClusterId(), cluster.getServiceName(),  
autoscalePolicy, minReplicas, maxReplicas);
+
+
+        KubernetesServiceClusterMonitor dockerClusterMonitor = new 
KubernetesServiceClusterMonitor(cluster.getClusterId()
+                , kubernetesClusterCtxt);
 
         //populate the members after restarting        
         for (Member member : cluster.getMembers()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
index b42791c..5fb84c9 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
@@ -62,16 +62,13 @@ public abstract class KubernetesClusterMonitor extends 
AbstractClusterMonitor {
     private static final Log log = 
LogFactory.getLog(KubernetesClusterMonitor.class);
 
     private KubernetesClusterContext kubernetesClusterCtxt;
-    protected String autoscalePolicyId;
 
-    protected KubernetesClusterMonitor(String clusterId, String serviceId,
-                                       KubernetesClusterContext 
kubernetesClusterContext,
+    protected KubernetesClusterMonitor(String clusterId,
                                        AutoscalerRuleEvaluator 
autoscalerRuleEvaluator,
-                                       String autoscalePolicyId) {
+                                       KubernetesClusterContext 
kubernetesClusterContext) {
 
-        super(clusterId, serviceId, autoscalerRuleEvaluator);
+        super(clusterId, autoscalerRuleEvaluator, kubernetesClusterContext);
         this.kubernetesClusterCtxt = kubernetesClusterContext;
-        this.autoscalePolicyId = autoscalePolicyId;
     }
 
     @Override
@@ -373,7 +370,7 @@ public abstract class KubernetesClusterMonitor extends 
AbstractClusterMonitor {
             }
             return;
         }
-        
+
         if (!getKubernetesClusterCtxt().activeMemberExist(memberId)) {
             if (log.isDebugEnabled()) {
                 log.debug(String.format("Could not find the active member in 
kubernetes cluster context, "
@@ -488,9 +485,6 @@ public abstract class KubernetesClusterMonitor extends 
AbstractClusterMonitor {
         this.kubernetesClusterCtxt = kubernetesClusterCtxt;
     }
 
-    public AutoscalePolicy getAutoscalePolicy() {
-        return 
PolicyManager.getInstance().getAutoscalePolicy(autoscalePolicyId);
-    }
 
     private Member getMemberByMemberId(String memberId) {
         try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
index af4b09e..4944b47 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
@@ -26,6 +26,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.KubernetesClusterContext;
 import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
+import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.stratos.autoscaler.util.AutoScalerConstants;
 import org.apache.stratos.autoscaler.util.ConfUtil;
@@ -43,15 +44,13 @@ public final class KubernetesServiceClusterMonitor extends 
KubernetesClusterMoni
 
     private String lbReferenceType;
 
-    public KubernetesServiceClusterMonitor(KubernetesClusterContext 
kubernetesClusterCtxt,
-                                           String serviceClusterID, String 
serviceId,
-                                           String autoscalePolicyId) {
-        super(serviceClusterID, serviceId, kubernetesClusterCtxt,
+    public KubernetesServiceClusterMonitor(String clusterId, 
KubernetesClusterContext kubernetesClusterCtxt) {
+        super(clusterId,
                        new AutoscalerRuleEvaluator(
                       StratosConstants.CONTAINER_MIN_CHECK_DROOL_FILE,
                       StratosConstants.CONTAINER_OBSOLETE_CHECK_DROOL_FILE,
                       StratosConstants.CONTAINER_SCALE_CHECK_DROOL_FILE),
-              autoscalePolicyId);
+              kubernetesClusterCtxt);
         readConfigurations();
     }
 
@@ -116,7 +115,12 @@ public final class KubernetesServiceClusterMonitor extends 
KubernetesClusterMoni
         }
     }
 
-       private void minCheck() {
+    private AutoscalePolicy getAutoscalePolicy() {
+        KubernetesClusterContext kubernetesClusterContext = 
(KubernetesClusterContext) clusterContext;
+        return kubernetesClusterContext.getAutoscalePolicy();
+    }
+
+    private void minCheck() {
                getMinCheckKnowledgeSession().setGlobal("clusterId", 
getClusterId());
                String kubernetesClusterID = 
getKubernetesClusterCtxt().getKubernetesClusterID();
         if (log.isDebugEnabled()) {
@@ -127,7 +131,7 @@ public final class KubernetesServiceClusterMonitor extends 
KubernetesClusterMoni
                                getMinCheckKnowledgeSession(), 
minCheckFactHandle,
                                getKubernetesClusterCtxt());
        }
-       
+
        private void obsoleteCheck() {
                getMinCheckKnowledgeSession().setGlobal("clusterId", 
getClusterId());
                String kubernetesClusterID = 
getKubernetesClusterCtxt().getKubernetesClusterID();
@@ -166,8 +170,7 @@ public final class KubernetesServiceClusterMonitor extends 
KubernetesClusterMoni
     public String toString() {
         return "KubernetesServiceClusterMonitor "
                + "[ kubernetesHostClusterId=" + 
getKubernetesClusterCtxt().getKubernetesClusterID()
-               + ", clusterId=" + getClusterId()
-               + ", serviceId=" + getServiceId() + "]";
+               + ", clusterId=" + getClusterId() + "]";
     }
 
     public String getLbReferenceType() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 97f3da6..3df547c 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -22,10 +22,7 @@ import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
-import org.apache.stratos.autoscaler.MemberStatsContext;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
-import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.*;
 import org.apache.stratos.autoscaler.client.CloudControllerClient;
 import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
 import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
@@ -55,19 +52,9 @@ import 
org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 abstract public class VMClusterMonitor extends AbstractClusterMonitor {
 
     private static final Log log = LogFactory.getLog(VMClusterMonitor.class);
-    // Map<NetworkpartitionId, Network Partition Context>
-    protected Map<String, NetworkPartitionContext> networkPartitionCtxts;
-    protected DeploymentPolicy deploymentPolicy;
-    protected AutoscalePolicy autoscalePolicy;
-
-    protected VMClusterMonitor(String clusterId, String serviceId,
-                               AutoscalerRuleEvaluator autoscalerRuleEvaluator,
-                               DeploymentPolicy deploymentPolicy, 
AutoscalePolicy autoscalePolicy,
-                               Map<String, NetworkPartitionContext> 
networkPartitionCtxts) {
-        super(clusterId, serviceId, autoscalerRuleEvaluator);
-        this.deploymentPolicy = deploymentPolicy;
-        this.autoscalePolicy = autoscalePolicy;
-        this.networkPartitionCtxts = networkPartitionCtxts;
+    protected VMClusterMonitor(String clusterId, AutoscalerRuleEvaluator 
autoscalerRuleEvaluator,
+                               VMClusterContext vmClusterContext) {
+        super(clusterId, autoscalerRuleEvaluator, vmClusterContext);
     }
 
     @Override
@@ -573,10 +560,10 @@ abstract public class VMClusterMonitor extends 
AbstractClusterMonitor {
             ClusterRemovedEvent clusterRemovedEvent) {
 
     }
-    
+
     @Override
     public void handleDynamicUpdates(Properties properties) throws 
InvalidArgumentException {
-        
+
     }
 
     private String getNetworkPartitionIdByMemberId(String memberId) {
@@ -606,17 +593,6 @@ abstract public class VMClusterMonitor extends 
AbstractClusterMonitor {
         }
     }
 
-    public NetworkPartitionContext getNetworkPartitionCtxt(Member member) {
-        log.info("***** getNetworkPartitionCtxt " + 
member.getNetworkPartitionId());
-        String networkPartitionId = member.getNetworkPartitionId();
-        if (networkPartitionCtxts.containsKey(networkPartitionId)) {
-            log.info("returnnig network partition context " + 
networkPartitionCtxts.get(networkPartitionId));
-            return networkPartitionCtxts.get(networkPartitionId);
-        }
-        log.info("returning null getNetworkPartitionCtxt");
-        return null;
-    }
-
     public String getPartitionOfMember(String memberId) {
         for (Service service : TopologyManager.getTopology().getServices()) {
             for (Cluster cluster : service.getClusters()) {
@@ -628,53 +604,13 @@ abstract public class VMClusterMonitor extends 
AbstractClusterMonitor {
         return null;
     }
 
-    public DeploymentPolicy getDeploymentPolicy() {
-        return deploymentPolicy;
-    }
-
-    public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
-        this.deploymentPolicy = deploymentPolicy;
-    }
-
-    public AutoscalePolicy getAutoscalePolicy() {
-        return autoscalePolicy;
-    }
-
-    public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) {
-        this.autoscalePolicy = autoscalePolicy;
-    }
-
-    public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() {
-        return networkPartitionCtxts;
-    }
-
-    public NetworkPartitionContext getNetworkPartitionCtxt(String 
networkPartitionId) {
-        return networkPartitionCtxts.get(networkPartitionId);
-    }
-
-    public void setPartitionCtxt(Map<String, NetworkPartitionContext> 
partitionCtxt) {
-        this.networkPartitionCtxts = partitionCtxt;
-    }
-
-    public boolean partitionCtxtAvailable(String partitionId) {
-        return networkPartitionCtxts.containsKey(partitionId);
-    }
-
-    public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) {
-        this.networkPartitionCtxts.put(ctxt.getId(), ctxt);
-    }
-
-    public NetworkPartitionContext getPartitionCtxt(String id) {
-        return this.networkPartitionCtxts.get(id);
-    }
-
     @Override
     public void terminateAllMembers() {
 
         Thread memberTerminator = new Thread(new Runnable(){
             public void run(){
 
-                for (NetworkPartitionContext networkPartitionContext : 
networkPartitionCtxts.values()) {
+                for (NetworkPartitionContext networkPartitionContext : 
getNetworkPartitionCtxts().values()) {
                     for (PartitionContext partitionContext : 
networkPartitionContext.getPartitionCtxts().values()) {
                         //if (log.isDebugEnabled()) {
                         log.info("Starting to terminate all members in Network 
Partition [ " +
@@ -711,6 +647,23 @@ abstract public class VMClusterMonitor extends 
AbstractClusterMonitor {
         memberTerminator.start();
     }
 
+    public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() {
+
+        VMClusterContext vmClusterContext = (VMClusterContext) clusterContext;
+        return vmClusterContext.getNetworkPartitionCtxts();
+    }
+    protected NetworkPartitionContext getNetworkPartitionCtxt(String id) {
+
+        VMClusterContext vmClusterContext = (VMClusterContext) clusterContext;
+        return vmClusterContext.getNetworkPartitionCtxt(id);
+    }
+
+    protected NetworkPartitionContext getNetworkPartitionCtxt(Member member) {
+
+        VMClusterContext vmClusterContext = (VMClusterContext) clusterContext;
+        return vmClusterContext.getNetworkPartitionCtxt(member);
+    }
+
     private static void terminateMember (String memberId) {
         try {
             CloudControllerClient.getInstance().terminate(memberId);
@@ -719,4 +672,6 @@ abstract public class VMClusterMonitor extends 
AbstractClusterMonitor {
             log.error("Unable to terminate member [member id ] " + memberId, 
e);
         }
     }
+
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
index b9abc50..fff4a52 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
@@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.VMClusterContext;
 import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
@@ -47,15 +48,10 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
 
     private static final Log log = LogFactory.getLog(VMLbClusterMonitor.class);
 
-    public VMLbClusterMonitor(String clusterId, String serviceId, 
DeploymentPolicy deploymentPolicy,
-                              AutoscalePolicy autoscalePolicy) {
-        super(clusterId, serviceId,
-              new AutoscalerRuleEvaluator(
-                      StratosConstants.VM_MIN_CHECK_DROOL_FILE,
-                      StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE,
-                      StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
-              deploymentPolicy, autoscalePolicy,
-              new ConcurrentHashMap<String, NetworkPartitionContext>());
+    public VMLbClusterMonitor(String clusterId, String serviceId, 
VMClusterContext vmClusterContext) {
+        super(clusterId, new AutoscalerRuleEvaluator( 
StratosConstants.VM_MIN_CHECK_DROOL_FILE,
+                StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE, 
StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
+                vmClusterContext);
         readConfigurations();
     }
 
@@ -88,7 +84,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
     @Override
     protected void monitor() {
         // TODO make this concurrent
-        for (NetworkPartitionContext networkPartitionContext : 
networkPartitionCtxts.values()) {
+        for (NetworkPartitionContext networkPartitionContext : 
getNetworkPartitionCtxts().values()) {
 
             // minimum check per partition
             for (PartitionContext partitionContext : 
networkPartitionContext.getPartitionCtxts()
@@ -173,7 +169,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
 
     @Override
     public String toString() {
-        return "VMLbClusterMonitor [clusterId=" + getClusterId() + ", 
serviceId=" + getServiceId() + "]";
+        return "VMLbClusterMonitor [clusterId=" + getClusterId() + "]";
     }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/02a65b3d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
index 4a4926b..57b5850 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
@@ -27,6 +27,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.VMServiceClusterContext;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
@@ -53,18 +54,15 @@ public class VMServiceClusterMonitor extends 
VMClusterMonitor {
     private String lbReferenceType;
     private boolean hasPrimary;
 
-    public VMServiceClusterMonitor(String clusterId, String serviceId,
-                                   DeploymentPolicy deploymentPolicy,
-                                   AutoscalePolicy autoscalePolicy) {
-        super(clusterId, serviceId, new AutoscalerRuleEvaluator(
-                         StratosConstants.VM_MIN_CHECK_DROOL_FILE, 
-                         StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE, 
-                         StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
-              deploymentPolicy, autoscalePolicy,
-              new ConcurrentHashMap<String, NetworkPartitionContext>());
+    public VMServiceClusterMonitor(String clusterId, VMServiceClusterContext 
vmServiceClusterContext) {
+        super(clusterId, new AutoscalerRuleEvaluator(
+                         StratosConstants.VM_MIN_CHECK_DROOL_FILE,
+                         StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE,
+                         StratosConstants.VM_SCALE_CHECK_DROOL_FILE), 
vmServiceClusterContext
+              );
         readConfigurations();
     }
-    
+
 //TODO why this method?
 //    private static void terminateMember(String memberId) {
 //        try {
@@ -103,7 +101,7 @@ public class VMServiceClusterMonitor extends 
VMClusterMonitor {
 
 
     }
-    
+
 //TODO why this method?
 //    @Override
 //    public void terminateAllMembers() {
@@ -170,7 +168,7 @@ public class VMServiceClusterMonitor extends 
VMClusterMonitor {
     public void monitor() {
         //TODO make this concurrent
 
-        for (NetworkPartitionContext networkPartitionContext : 
networkPartitionCtxts.values()) {
+        for (NetworkPartitionContext networkPartitionContext : 
getNetworkPartitionCtxts().values()) {
             // store primary members in the network partition context
             List<String> primaryMemberListInNetworkPartition = new 
ArrayList<String>();
             //minimum check per partition
@@ -202,8 +200,8 @@ public class VMServiceClusterMonitor extends 
VMClusterMonitor {
 
                 minCheckFactHandle = 
AutoscalerRuleEvaluator.evaluateMinCheck(getMinCheckKnowledgeSession()
                         , minCheckFactHandle, partitionContext);
-                
-                obsoleteCheckFactHandle = 
AutoscalerRuleEvaluator.evaluateObsoleteCheck(getObsoleteCheckKnowledgeSession(),
 
+
+                obsoleteCheckFactHandle = 
AutoscalerRuleEvaluator.evaluateObsoleteCheck(getObsoleteCheckKnowledgeSession(),
                                obsoleteCheckFactHandle, partitionContext);
 
                 //checking the status of the cluster
@@ -273,8 +271,7 @@ public class VMServiceClusterMonitor extends 
VMClusterMonitor {
 
     @Override
     public String toString() {
-        return "VMServiceClusterMonitor [clusterId=" + getClusterId() + ", 
serviceId=" + getServiceId() +
-               ", deploymentPolicy=" + deploymentPolicy + ", autoscalePolicy=" 
+ autoscalePolicy +
+        return "VMServiceClusterMonitor [clusterId=" + getClusterId() +
                ", lbReferenceType=" + lbReferenceType +
                ", hasPrimary=" + hasPrimary + " ]";
     }

Reply via email to