Repository: stratos
Updated Branches:
  refs/heads/master 1a395ec83 -> 9f0d671a4


fixing deployment policy parsing for cluster monitor


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

Branch: refs/heads/master
Commit: 9f0d671a4d80bce40ebdb123beb7c3931ea80bbf
Parents: 1a395ec
Author: reka <[email protected]>
Authored: Wed Dec 3 23:12:22 2014 +0530
Committer: reka <[email protected]>
Committed: Wed Dec 3 23:12:36 2014 +0530

----------------------------------------------------------------------
 .../context/cluster/ClusterInstanceContext.java |  3 +-
 .../context/cluster/VMClusterContext.java       | 37 ++++++++++++++++----
 .../partition/ClusterLevelPartitionContext.java |  1 +
 .../monitor/cluster/VMClusterMonitor.java       |  6 ++--
 .../monitor/component/ApplicationMonitor.java   | 26 ++------------
 .../ClusterInstanceCreatedMessageProcessor.java |  3 +-
 6 files changed, 42 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
index 64c52cc..bf6a051 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
@@ -70,7 +70,8 @@ public class ClusterInstanceContext extends InstanceContext {
 
     private String networkPartitionId;
 
-    public ClusterInstanceContext(String clusterInstanceId, String 
partitionAlgo, ChildLevelPartition[] partitions,
+    public ClusterInstanceContext(String clusterInstanceId, String 
partitionAlgo,
+                                  ChildLevelPartition[] partitions,
                                   int min, String networkPartitionId) {
 
         super(clusterInstanceId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
index cf67481..47bd485 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
@@ -124,9 +124,24 @@ public class VMClusterContext extends 
AbstractClusterContext {
             throws PolicyValidationException, PartitionValidationException {
         ClusterLevelNetworkPartitionContext networkPartitionContext = null;
         ClusterInstance clusterInstance = 
cluster.getInstanceContexts(instanceId);
+        ChildPolicy policy = this.deploymentPolicy.
+                getChildPolicy(
+                        AutoscalerUtil.getAliasFromClusterId(clusterId));
         if 
(networkPartitionCtxts.containsKey(clusterInstance.getNetworkPartitionId())) {
             networkPartitionContext = this.networkPartitionCtxts.get(
                     clusterInstance.getNetworkPartitionId());
+        } else {
+            if(policy != null) {
+                ChildLevelNetworkPartition networkPartition = policy.
+                        
getChildLevelNetworkPartition(clusterInstance.getNetworkPartitionId());
+                networkPartitionContext = new 
ClusterLevelNetworkPartitionContext(networkPartition.getId(),
+                        networkPartition.getPartitionAlgo(), 0);
+            } else {
+                //Parent should have the partition specified
+                networkPartitionContext = new 
ClusterLevelNetworkPartitionContext(clusterInstance.getNetworkPartitionId(),
+                        null, 0);
+            }
+
         }
 
         if (clusterInstance.getPartitionId() != null) {
@@ -134,9 +149,6 @@ public class VMClusterContext extends 
AbstractClusterContext {
             networkPartitionContext = addPartition(clusterInstance, cluster, 
networkPartitionContext);
 
         } else {
-            ChildPolicy policy = this.deploymentPolicy.
-                    getChildPolicy(
-                            AutoscalerUtil.getAliasFromClusterId(clusterId));
             networkPartitionContext = parseDeploymentPolicy(clusterInstance, 
cluster,
                     policy, networkPartitionContext);
         }
@@ -200,7 +212,18 @@ public class VMClusterContext extends 
AbstractClusterContext {
         if (clusterInstanceContext == null) {
             clusterInstanceContext = new 
ClusterInstanceContext(instance.getInstanceId(),
                     networkPartition.getPartitionAlgo(),
-                    networkPartition.getChildLevelPartitions(), 
networkPartition.getMin(), networkPartitionId);
+                    networkPartition.getChildLevelPartitions(), 2,
+                    networkPartitionId);
+            try {
+                Application application = ApplicationHolder.getApplications().
+                        getApplication(cluster.getAppId());
+                ClusterDataHolder dataHolder = application.
+                        
getClusterData(AutoscalerUtil.getAliasFromClusterId(clusterId));
+                clusterInstanceContext.setMinMembers(2); 
//dataHolder.getMinInstances());
+                clusterInstanceContext.setMaxMembers(2); 
//dataHolder.getMaxInstances());
+            } finally {
+                ApplicationHolder.releaseReadLock();
+            }
         }
 
         for (ChildLevelPartition partition : 
networkPartition.getChildLevelPartitions()) {
@@ -224,6 +247,8 @@ public class VMClusterContext extends 
AbstractClusterContext {
             }
         }
 
+        
clusterLevelNetworkPartitionContext.addClusterInstanceContext(clusterInstanceContext);
+
         if (log.isInfoEnabled()) {
             log.info(String.format("Network partition context has been added: 
" +
                     "[network partition] %s", 
clusterLevelNetworkPartitionContext.getId()));
@@ -280,8 +305,8 @@ public class VMClusterContext extends 
AbstractClusterContext {
             Application application = ApplicationHolder.getApplications().
                     getApplication(cluster.getAppId());
             ClusterDataHolder dataHolder = 
application.getClusterData(AutoscalerUtil.getAliasFromClusterId(clusterId));
-            clusterInstanceContext.setMinMembers(dataHolder.getMinInstances());
-            clusterInstanceContext.setMaxMembers(dataHolder.getMaxInstances());
+            clusterInstanceContext.setMinMembers(2); 
//dataHolder.getMinInstances());
+            clusterInstanceContext.setMaxMembers(2); 
//dataHolder.getMaxInstances());
         } finally {
             ApplicationHolder.releaseReadLock();
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
index ed88117..e9c3cff 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
@@ -84,6 +84,7 @@ public class ClusterLevelPartitionContext extends 
PartitionContext implements Se
         super(memberExpiryTime);
         this.activeMembers = new ArrayList<MemberContext>();
         this.terminationPendingMembers = new ArrayList<MemberContext>();
+        this.pendingMembers = new ArrayList<MemberContext>();
     }
     
     public ClusterLevelPartitionContext(ChildLevelPartition 
childLevelPartition, Partition partition, int max) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/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 7910d43..0dabfe9 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
@@ -79,7 +79,7 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
         
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE);
         
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.VM_SCALE_CHECK_DROOL_FILE);
         
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.VM_MIN_CHECK_DROOL_FILE);
-        
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);
+        
//autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);
 
         this.obsoleteCheckKnowledgeSession = 
autoscalerRuleEvaluator.getStatefulSession(
                 StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE);
@@ -87,8 +87,8 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
                 StratosConstants.VM_SCALE_CHECK_DROOL_FILE);
         this.minCheckKnowledgeSession = 
autoscalerRuleEvaluator.getStatefulSession(
                 StratosConstants.VM_MIN_CHECK_DROOL_FILE);
-        this.dependentScaleCheckKnowledgeSession = 
autoscalerRuleEvaluator.getStatefulSession(
-                StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);
+        /*this.dependentScaleCheckKnowledgeSession = 
autoscalerRuleEvaluator.getStatefulSession(
+                StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);*/
     }
 
     private static void terminateMember(String memberId) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/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 262b34a..4a8ae19 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
@@ -55,8 +55,6 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
 
     //network partition contexts
     private Map<String, ApplicationLevelNetworkPartitionContext> 
networkPartitionCtxts;
-    //application instance id map
-    private Map<String, ApplicationInstance> applicationInstanceIdMap;
     //Flag to set whether application is terminating
     private boolean isTerminating;
 
@@ -67,7 +65,6 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         //setting the appId for the application
         this.appId = application.getUniqueIdentifier();
         networkPartitionCtxts = new HashMap<String, 
ApplicationLevelNetworkPartitionContext>();
-        setApplicationInstanceIdMap(new HashMap<String, 
ApplicationInstance>());
     }
 
     /**
@@ -111,7 +108,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
      * @param status the status
      */
     public void setStatus(ApplicationStatus status, String instanceId) {
-        this.applicationInstanceIdMap.get(instanceId).setStatus(status);
+        
((ApplicationInstance)this.instanceIdToInstanceMap.get(instanceId)).setStatus(status);
 
         //notify the children about the state change
         try {
@@ -220,7 +217,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
                     ApplicationInstance instance = new 
ApplicationInstance(appId, instanceId);
                     instance.setStatus(ApplicationStatus.Created);
                     instance.setNetworkPartitionId(networkPartition.getId());
-                    this.applicationInstanceIdMap.put(instanceId, instance);
+                    this.instanceIdToInstanceMap.put(instanceId, instance);
 
                     this.networkPartitionCtxts.put(context.getId(), context);
 
@@ -266,7 +263,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
 
                         ApplicationInstance instance = new 
ApplicationInstance(appId, instanceId);
                         instance.setStatus(ApplicationStatus.Created);
-                        this.applicationInstanceIdMap.put(instanceId, 
instance);
+                        this.instanceIdToInstanceMap.put(instanceId, instance);
 
                         burstNPFound = true;
                     }
@@ -318,23 +315,6 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         
this.networkPartitionCtxts.put(applicationLevelNetworkPartitionContext.getId(), 
applicationLevelNetworkPartitionContext);
     }
 
-    public Map<String, ApplicationInstance> getApplicationInstanceIdMap() {
-        return applicationInstanceIdMap;
-    }
-
-    public void setApplicationInstanceIdMap(Map<String, ApplicationInstance> 
applicationInstanceIdMap) {
-        this.applicationInstanceIdMap = applicationInstanceIdMap;
-    }
-
-    public void addApplicationInstance(ApplicationInstance instance) {
-        this.applicationInstanceIdMap.put(instance.getInstanceId(), instance);
-
-    }
-
-    public ApplicationInstance getApplicationInstance(String instanceId) {
-        return this.applicationInstanceIdMap.get(instanceId);
-    }
-
     public boolean isTerminating() {
         return isTerminating;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f0d671a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java
index cb195c5..a0bf735 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java
@@ -118,7 +118,8 @@ public class ClusterInstanceCreatedMessageProcessor extends 
MessageProcessor {
             ClusterInstance context = new ClusterInstance(event.getAlias(),
                                                                         
event.getClusterId(),
                                                                         
event.getInstanceId());
-            //context.setStatus(ClusterStatus.Created);
+            context.setNetworkPartitionId(event.getNetworkPartitionId());
+            context.setPartitionId(event.getPartitionId());
             cluster.addInstanceContext(event.getInstanceId(), context);
         }
         // Notify event listeners

Reply via email to