Updated Branches:
  refs/heads/master 7d0d1e9e5 -> 42c37dbf0

Modificatoins needed for partition algorithm


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

Branch: refs/heads/master
Commit: 42c37dbf048b902873b22fd0e7815bc6f9ccc204
Parents: 7d0d1e9
Author: Lahiru Sandaruwan <[email protected]>
Authored: Thu Dec 12 00:04:25 2013 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Thu Dec 12 00:04:25 2013 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/NetworkPartitionContext.java | 15 +++++++++++++--
 .../autoscaler/algorithm/OneAfterAnother.java       | 14 +++++++-------
 .../stratos/autoscaler/algorithm/RoundRobin.java    | 16 ++++++++--------
 .../stratos/autoscaler/util/AutoscalerUtil.java     |  2 +-
 4 files changed, 29 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/42c37dbf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
index 2c2a53a..a41d332 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
@@ -18,11 +18,13 @@
  */
 package org.apache.stratos.autoscaler;
 
-import java.util.*;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Holds runtime data of a network partition.
- * @author nirmal
  *
  */
 public class NetworkPartitionContext {
@@ -40,6 +42,7 @@ public class NetworkPartitionContext {
     //FIXME this should be populated via PartitionGroups a.k.a. 
NetworkPartitions
     private int minInstanceCount = 1, maxInstanceCount = 1;
 
+    private Partition[] partitions;
 
     //Following information will keep events details
     private float averageRequestsInFlight;
@@ -283,4 +286,12 @@ public class NetworkPartitionContext {
     public void setPartitionAlgorithm(String partitionAlgorithm) {
         this.partitionAlgorithm = partitionAlgorithm;
     }
+
+    public Partition[] getPartitions() {
+        return partitions;
+    }
+
+    public void setPartitions(Partition[] partitions) {
+        this.partitions = partitions;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/42c37dbf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
index 7b0dce3..b933d17 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
@@ -47,14 +47,14 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
     public Partition getNextScaleUpPartition(NetworkPartitionContext 
networkPartitionContext, String clusterId) {
 
        int currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
-       List<?> partitionContexts = 
Arrays.asList(networkPartitionContext.getPartitionCtxts());
-       int noOfPartitions = partitionContexts.size();
+       List<?> partitions = 
Arrays.asList(networkPartitionContext.getPartitions());
+       int noOfPartitions = partitions.size();
        
        for(int i=currentPartitionIndex; i< noOfPartitions; i++)
        {
-            if (partitionContexts.get(currentPartitionIndex) instanceof 
Partition) {
+            if (partitions.get(currentPartitionIndex) instanceof Partition) {
                 currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
-                Partition currentPartition = (Partition) 
partitionContexts.get(currentPartitionIndex);
+                Partition currentPartition = (Partition) 
partitions.get(currentPartitionIndex);
                 String currentPartitionId = currentPartition.getId();
 
                 if 
(networkPartitionContext.partitionCountExists(currentPartitionId)) {
@@ -90,13 +90,13 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
     public Partition getNextScaleDownPartition(NetworkPartitionContext 
networkPartitionContext, String clusterId) {
 
        int currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
-       List<?> partitionContexts = 
Arrays.asList(networkPartitionContext.getPartitionCtxts());
+       List<?> partitions = 
Arrays.asList(networkPartitionContext.getPartitions());
        
        for(int i = currentPartitionIndex; i >= 0; i--)
        {
-            if (partitionContexts.get(currentPartitionIndex) instanceof 
Partition) {
+            if (partitions.get(currentPartitionIndex) instanceof Partition) {
                 currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
-                Partition currentPartition = (Partition) 
partitionContexts.get(currentPartitionIndex);
+                Partition currentPartition = (Partition) 
partitions.get(currentPartitionIndex);
                 String currentPartitionId = currentPartition.getId();
 
                 // has more than minimum instances.

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/42c37dbf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
index 9597c74..55a3178 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
@@ -39,14 +39,14 @@ public class RoundRobin implements AutoscaleAlgorithm{
     
     public Partition getNextScaleUpPartition(NetworkPartitionContext 
networkPartitionContext, String clusterId){
 
-       List<?> partitionContexts = 
Arrays.asList(networkPartitionContext.getPartitionCtxts());
-       int noOfPartitions = partitionContexts.size();
+       List<?> partitions = 
Arrays.asList(networkPartitionContext.getPartitions());
+       int noOfPartitions = partitions.size();
 
        for(int i=0; i < noOfPartitions; i++)
        {
            int currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
-           if (partitionContexts.get(currentPartitionIndex) instanceof 
Partition) {
-                   Partition currentPartition = (Partition) 
partitionContexts.get(currentPartitionIndex);
+           if (partitions.get(currentPartitionIndex) instanceof Partition) {
+                   Partition currentPartition = (Partition) 
partitions.get(currentPartitionIndex);
                String currentPartitionId =  currentPartition.getId();
                
                // point to next partition
@@ -84,8 +84,8 @@ public class RoundRobin implements AutoscaleAlgorithm{
        @Override
     public Partition getNextScaleDownPartition(NetworkPartitionContext 
networkPartitionContext, String clusterId) {
 
-        List<?> partitionContexts = 
Arrays.asList(networkPartitionContext.getPartitionCtxts());
-        int noOfPartitions = partitionContexts.size();
+        List<?> partitions = 
Arrays.asList(networkPartitionContext.getPartitions());
+        int noOfPartitions = partitions.size();
 
         for (int i = 0; i < noOfPartitions; i++) {
             int currentPartitionIndex = 
networkPartitionContext.getCurrentPartitionIndex();
@@ -101,9 +101,9 @@ public class RoundRobin implements AutoscaleAlgorithm{
             // Set next partition as current partition in Autoscaler Context
             
networkPartitionContext.setCurrentPartitionIndex(currentPartitionIndex);
 
-            if (partitionContexts.get(currentPartitionIndex) instanceof 
Partition) {
+            if (partitions.get(currentPartitionIndex) instanceof Partition) {
 
-                Partition currentPartition = (Partition) 
partitionContexts.get(currentPartitionIndex);
+                Partition currentPartition = (Partition) 
partitions.get(currentPartitionIndex);
                 String currentPartitionId = currentPartition.getId();
 
                 if 
(!networkPartitionContext.partitionCountExists(currentPartitionId))

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/42c37dbf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 8791503..8d06141 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -124,7 +124,7 @@ public class AutoscalerUtil {
             NetworkPartitionContext networkPartitionContext
                     = 
PartitionManager.getInstance().getNetworkPartition(partitionGroup.getId());
 
-            for(Partition partition: deploymentPolicy.getAllPartitions()){
+            for(Partition partition: partitionGroup.getPartitions()){
                 PartitionContext partitionContext = new 
PartitionContext(partition);
                 partitionContext.setServiceName(cluster.getServiceName());
                 partitionContext.setProperties(cluster.getProperties());

Reply via email to