Adding required instance count

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

Branch: refs/heads/master
Commit: 70044149d5dbd32cd29f194efe23af25f124e434
Parents: 95e72a3
Author: Lahiru Sandaruwan <[email protected]>
Authored: Sun Nov 9 16:34:46 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Sun Nov 9 16:34:46 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/KubernetesClusterContext.java     |  9 +++++++++
 .../autoscaler/NetworkPartitionContext.java      | 19 ++++++++++++++++---
 2 files changed, 25 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/70044149/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
index 8b9cc94..a843fba 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/KubernetesClusterContext.java
@@ -52,6 +52,7 @@ public class KubernetesClusterContext extends 
AbstractClusterContext {
     private int minReplicas;
     private int maxReplicas;
     private int currentReplicas;
+    private float RequiredReplicas;
 
     private AutoscalePolicy autoscalePolicy;
 
@@ -308,6 +309,14 @@ public class KubernetesClusterContext extends 
AbstractClusterContext {
         return autoscalePolicy;
     }
 
+    public float getRequiredReplicas() {
+        return RequiredReplicas;
+    }
+
+    public void setRequiredReplicas(float requiredReplicas) {
+        RequiredReplicas = requiredReplicas;
+    }
+
     private class PendingMemberWatcher implements Runnable {
         private KubernetesClusterContext ctxt;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/70044149/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 1c92256..2b978ed 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
@@ -43,6 +43,10 @@ public class NetworkPartitionContext implements Serializable{
     private float averageRequestsServedPerInstance;
     private float requestsServedPerInstance;
 
+    private int minInstanceCount = 0, maxInstanceCount = 0;
+    private float  requiredInstanceCount;
+
+
     private final String partitionAlgorithm;
 
     //boolean values to keep whether the requests in flight parameters are 
reset or not
@@ -56,9 +60,6 @@ public class NetworkPartitionContext implements Serializable{
     //boolean values to keep whether average requests served per instance 
parameters are reset or not
     private boolean averageRequestServedPerInstanceReset= false;
 
-    //FIXME this should be populated via PartitionGroups a.k.a. 
NetworkPartitions
-    private int minInstanceCount = 1, maxInstanceCount = 1;
-
     private final Partition[] partitions;
 
     //Following information will keep events details
@@ -86,6 +87,11 @@ public class NetworkPartitionContext implements Serializable{
         requestsInFlight = new RequestsInFlight();
         loadAverage = new LoadAverage();
         memoryConsumption = new MemoryConsumption();
+        for(Partition partition : partitions){
+            minInstanceCount += partition.getPartitionMin();
+            maxInstanceCount += partition.getPartitionMax();
+        }
+        requiredInstanceCount = minInstanceCount;
 
     }
 
@@ -396,4 +402,11 @@ public class NetworkPartitionContext implements 
Serializable{
         this.scaleDownRequestsCount += 1;
     }
 
+    public float getRequiredInstanceCount() {
+        return requiredInstanceCount;
+    }
+
+    public void setRequiredInstanceCount(int requiredInstanceCount) {
+        this.requiredInstanceCount = requiredInstanceCount;
+    }
 }
\ No newline at end of file

Reply via email to