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

stratos git commit: Changing partition context map to a list in GroupLevelNetworkPartitionContext

Repository: stratos
Updated Branches:
  refs/heads/master ec3561606 -> 4bfd66583


Changing partition context map to a list in GroupLevelNetworkPartitionContext


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

Branch: refs/heads/master
Commit: 4bfd665833b9f84ef1ed610d7576478f80c3ee83
Parents: ec35616
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Dec 1 16:50:38 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Dec 1 16:50:38 2014 +0530

----------------------------------------------------------------------
 .../GroupLevelNetworkPartitionContext.java      | 37 +++++++++++++-------
 1 file changed, 25 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4bfd6658/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
index a9f7f56..2248a68 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/GroupLevelNetworkPartitionContext.java
@@ -20,13 +20,12 @@ 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.partition.ClusterLevelPartitionContext;
 import org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 
 import java.io.Serializable;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Holds runtime data of a network partition.
@@ -50,7 +49,7 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
     private int currentPartitionIndex;
 
     //partitions of this network partition
-    private final Map<String, GroupLevelPartitionContext> partitionCtxts;
+    private final List<GroupLevelPartitionContext> partitionCtxts;
 
     public GroupLevelNetworkPartitionContext(String id, String partitionAlgo, Partition[] partitions) {
         this.id = id;
@@ -60,7 +59,7 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
         } else {
             this.partitions = Arrays.copyOf(partitions, partitions.length);
         }
-        partitionCtxts = new HashMap<String, GroupLevelPartitionContext>();
+        partitionCtxts = new ArrayList<GroupLevelPartitionContext>();
         for (Partition partition : partitions) {
             minInstanceCount += partition.getPartitionMin();
             maxInstanceCount += partition.getPartitionMax();
@@ -135,16 +134,24 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
         return id;
     }
 
-    public Map<String, GroupLevelPartitionContext> getPartitionCtxts() {
+    public List<GroupLevelPartitionContext> getPartitionCtxts() {
+
         return partitionCtxts;
     }
 
     public GroupLevelPartitionContext getPartitionCtxt(String partitionId) {
-        return partitionCtxts.get(partitionId);
+
+
+        for(GroupLevelPartitionContext partitionContext : partitionCtxts){
+            if(partitionContext.getPartitionId().equals(partitionId)){
+                return partitionContext;
+            }
+        }
+        return null;
     }
 
     public void addPartitionContext(GroupLevelPartitionContext partitionContext) {
-        partitionCtxts.put(partitionContext.getPartitionId(), partitionContext);
+        partitionCtxts.add(partitionContext);
     }
 
     public String getPartitionAlgorithm() {
@@ -156,15 +163,21 @@ public class GroupLevelNetworkPartitionContext extends NetworkPartitionContext i
     }
 
     public int getNonTerminatedMemberCountOfPartition(String partitionId) {
-        if (partitionCtxts.containsKey(partitionId)) {
-            return getPartitionCtxt(partitionId).getNonTerminatedInstanceCount();
+
+        for(GroupLevelPartitionContext partitionContext : partitionCtxts){
+            if(partitionContext.getPartitionId().equals(partitionId)){
+                return partitionContext.getNonTerminatedInstanceCount();
+            }
         }
         return 0;
     }
 
     public int getActiveMemberCount(String currentPartitionId) {
-        if (partitionCtxts.containsKey(currentPartitionId)) {
-            return getPartitionCtxt(currentPartitionId).getActiveInstanceCount();
+
+        for(GroupLevelPartitionContext partitionContext : partitionCtxts){
+            if(partitionContext.getPartitionId().equals(currentPartitionId)){
+                return partitionContext.getActiveInstanceCount();
+            }
         }
         return 0;
     }