You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/10/11 21:04:48 UTC

[03/11] git commit: using separate methods for scale up and down

using separate methods for scale up and down


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

Branch: refs/heads/master
Commit: 42f049ed8b10b57b3f06a41dbce7adfec6e37970
Parents: c04d255
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 19:31:18 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 19:31:18 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/rule/RuleTasksDelegator.java     | 31 +++++++++++++++++---
 1 file changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/42f049ed/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index 1154ac3..e350955 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -234,13 +234,13 @@ public class RuleTasksDelegator {
         }
     }
 
-    public void delegateUpdateContainers(KubernetesClusterContext kubernetesClusterContext,
-                                         int replicas) {
+    public void delegateScaleUpContainers(KubernetesClusterContext kubernetesClusterContext,
+                                         int newReplicasCount) {
         String clusterId = kubernetesClusterContext.getClusterId();
         try {
             CloudControllerClient ccClient = CloudControllerClient.getInstance();
             // getting newly created pods' member contexts
-            MemberContext[] memberContexts = ccClient.updateContainers(clusterId, replicas);
+            MemberContext[] memberContexts = ccClient.updateContainers(clusterId, newReplicasCount);
             if (null != memberContexts) {
                 for (MemberContext memberContext : memberContexts) {
                     if (null != memberContext) {
@@ -263,10 +263,33 @@ public class RuleTasksDelegator {
                 }
             }
         } catch (Exception e) {
-            log.error("Cannot update kubernetes controller ", e);
+            log.error("Scaling up failed, couldn't update kubernetes controller ", e);
         }
     }
     
+    public void delegateScaleDownContainers(KubernetesClusterContext kubernetesClusterContext, 
+    										int newReplicasCount) {
+    	String clusterId = kubernetesClusterContext.getClusterId();
+    	try {
+    		CloudControllerClient ccClient = CloudControllerClient.getInstance();
+    		// getting terminated pods's member contexts
+    		MemberContext[] memberContexts = ccClient.updateContainers(clusterId, newReplicasCount);
+    		if (null != memberContexts) {
+				for (MemberContext memberContext : memberContexts) {
+					if (null != memberContext) {
+						// we are not removing from active/pending list, it will be handled in AS event receiver
+						if (log.isDebugEnabled()) {
+							log.debug(String.format("Scaling down, terminating the member with id %s in cluster %s", 
+									memberContext.getMemberId(), memberContext.getClusterId()));
+						}
+					}
+				}
+			}
+     	} catch (Exception e) {
+    		log.error("Scaling down failed, couldn't update kubernetes controller ", e);
+    	}
+    }
+    
     public void delegateTerminateContainer(KubernetesClusterContext kubernetesClusterContext, String memberId) {
     	try {
     		CloudControllerClient ccClient = CloudControllerClient.getInstance();