Fix cluster instance context and cluster context

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

Branch: refs/heads/master
Commit: a8ee3393afa8622c2cbe183fca325e7215985492
Parents: 16c4976
Author: Lahiru Sandaruwan <[email protected]>
Authored: Mon Dec 1 00:41:39 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Mon Dec 1 00:41:39 2014 +0530

----------------------------------------------------------------------
 .../context/cluster/ClusterInstanceContext.java       | 14 +++++++++++++-
 .../autoscaler/context/cluster/VMClusterContext.java  |  9 +++++----
 2 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a8ee3393/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 f183755..4d1818e 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
@@ -21,6 +21,7 @@ package org.apache.stratos.autoscaler.context.cluster;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
+import org.apache.stratos.autoscaler.context.partition.PartitionContext;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.LoadAverage;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.MemoryConsumption;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.RequestsInFlight;
@@ -69,15 +70,19 @@ public class ClusterInstanceContext {
     private int requiredInstanceCountBasedOnStats;
     private int requiredInstanceCountBasedOnDependencies;
 
+    private int min;
+
 
     //details required for partition selection algorithms
     private int currentPartitionIndex;
 
     // Map<PartitionId, Partition Context>
     protected Map<String, ClusterLevelPartitionContext> partitionCtxts;
-    public ClusterInstanceContext(String clusterInstanceId, String 
partitionAlgo, ChildLevelPartition[] partitions) {
+    public ClusterInstanceContext(String clusterInstanceId, String 
partitionAlgo, ChildLevelPartition[] partitions,
+                                  int min) {
 
         this.id = clusterInstanceId;
+        this.min = min;
         partitionCtxts = new HashMap<String, ClusterLevelPartitionContext>();
         this.partitionAlgorithm = partitionAlgo;
         //partitionCtxts = new HashMap<String, ClusterLevelPartitionContext>();
@@ -96,6 +101,10 @@ public class ClusterInstanceContext {
     public Map<String, ClusterLevelPartitionContext> getPartitionCtxts(){
         return partitionCtxts;
     }
+    public PartitionContext[] getPartitionCtxtsAsAnArray(){
+
+        return (PartitionContext[])getPartitionCtxts().values().toArray();
+    }
 
     public ClusterLevelPartitionContext getNetworkPartitionCtxt(String 
PartitionId) {
         return partitionCtxts.get(PartitionId);
@@ -421,4 +430,7 @@ public class ClusterInstanceContext {
     }
 
 
+    public int getMin() {
+        return min;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a8ee3393/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 d1b4c31..39303dd 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
@@ -175,14 +175,14 @@ public class VMClusterContext extends 
AbstractClusterContext {
 
         if (clusterLevelNetworkPartitionContext == null) {
             clusterLevelNetworkPartitionContext = new 
ClusterLevelNetworkPartitionContext(
-                    networkPartitionId);
+                    networkPartitionId, networkPartition.getPartitionAlgo(), 
networkPartition.getMin());
         }
         ClusterInstanceContext clusterInstanceContext = 
clusterLevelNetworkPartitionContext.
                 getClusterInstanceContext(instance.getInstanceId());
         if (clusterInstanceContext == null) {
             clusterInstanceContext = new 
ClusterInstanceContext(instance.getInstanceId(),
                     networkPartition.getPartitionAlgo(),
-                    networkPartition.getChildLevelPartitions());
+                    networkPartition.getChildLevelPartitions(), 
networkPartition.getMin());
         }
 
         for (ChildLevelPartition partition : 
networkPartition.getChildLevelPartitions()) {
@@ -243,7 +243,8 @@ public class VMClusterContext extends 
AbstractClusterContext {
         CloudControllerClient.getInstance().validatePartition(partition1);
         if (clusterLevelNetworkPartitionContext == null) {
             clusterLevelNetworkPartitionContext =
-                    new 
ClusterLevelNetworkPartitionContext(clusterInstance.getNetworkPartitionId());
+                    new 
ClusterLevelNetworkPartitionContext(clusterInstance.getNetworkPartitionId()
+                            , networkPartition.getPartitionAlgo(), 
networkPartition.getMin());
         }
         //FIXME to have correct member expiry time
         ClusterLevelPartitionContext clusterLevelPartitionContext =
@@ -259,7 +260,7 @@ public class VMClusterContext extends 
AbstractClusterContext {
         if (clusterInstanceContext == null) {
             clusterInstanceContext = new 
ClusterInstanceContext(clusterInstance.getInstanceId(),
                     networkPartition.getPartitionAlgo(),
-                    networkPartition.getChildLevelPartitions());
+                    networkPartition.getChildLevelPartitions(), 
networkPartition.getMin());
         }
         clusterInstanceContext.addPartitionCtxt(clusterLevelPartitionContext);
         
clusterLevelNetworkPartitionContext.addClusterInstanceContext(clusterInstanceContext);

Reply via email to