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 <[email protected]> Authored: Sat Oct 11 19:31:18 2014 +0530 Committer: R-Rajkumar <[email protected]> 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();
