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:46 UTC

[01/11] git commit: not scaling down if active replicas are less than required replicas

Repository: stratos
Updated Branches:
  refs/heads/master a6f4efe6b -> b299559d1


not scaling down if active replicas are less than required replicas


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

Branch: refs/heads/master
Commit: bbdc7cf258ca0ec996fd2ed13ed34651b53170e6
Parents: f2252b7
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 19:29:28 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 19:29:28 2014 +0530

----------------------------------------------------------------------
 .../src/main/conf/container-mincheck.drl        | 15 ++---
 .../src/main/conf/container-scaling.drl         | 62 ++++++++++++--------
 2 files changed, 44 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/bbdc7cf2/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl b/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
index 9798852..f87a556 100644
--- a/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
@@ -35,16 +35,16 @@ dialect "mvel"
            nonTerminatedReplicas : Integer() from $kubernetesClusterContext.getNonTerminatedMemberCount()
            isServiceClusterCreated : Boolean() from $kubernetesClusterContext.isServiceClusterCreated()
 	   
-           eval(log.debug("Running minimum rule: [kub-cluster] " +kubernetesClusterId + " [cluster] " + clusterId))
-           eval(log.debug("[min-check] " + " [cluster] : " + clusterId + " [Replicas] nonTerminated : " + nonTerminatedReplicas))
-	   eval(log.debug("[min-check] " + " [cluster] : " + clusterId + " [Replicas] minReplicas : " + minReplicas))
+           eval(log.info("Running minimum rule: [kub-cluster] " + kubernetesClusterId + " [cluster] " + clusterId))
+           eval(log.info("[min-check] " + " [cluster] : " + clusterId + " [Replicas] nonTerminated : " + nonTerminatedReplicas))
+	   eval(log.info("[min-check] " + " [cluster] : " + clusterId + " [Replicas] minReplicas : " + minReplicas))
 	   eval(nonTerminatedReplicas < minReplicas)
        then
            if (isServiceClusterCreated) {
              // we suceeded calling startContainer() once, can't call it again
               log.info("[min-check] Decided to scale-up : [cluster] : " + clusterId);
- 	      log.info("[min-check] " + " [cluster] : " + clusterId + " ; min-rule not satisfied, expanding cluster to minReplicas : " + minReplicas);
-              $delegator.delegateUpdateContainers($kubernetesClusterContext, minReplicas);
+ 	      log.info("[min-check] " + " [cluster] : " + clusterId + " ; min-rule not satisfied, scaling up to minReplicas : " + minReplicas);
+              $delegator.delegateScaleUpContainers($kubernetesClusterContext, minReplicas);
 	   } else {
              // we should call startContainer
               log.info("[min-check] Decided to create the cluster : [cluster] : " + clusterId);
@@ -60,12 +60,13 @@ dialect "mvel"
            kubernetesClusterId : String() from $kubernetesClusterContext.getKubernetesClusterID()
            obsoleteReplicas : Integer() from $kubernetesClusterContext.getObsoletedMembers().size()
 
-           eval(log.debug("Running obsolete containers rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
-           eval(log.debug("[obsolete-check] " + "[cluster] : " + clusterId + " [Replicas] obsoleteReplicas : " + obsoleteReplicas))
+           eval(log.info("Running obsolete containers rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
+           eval(log.info("[obsolete-check] " + "[cluster] : " + clusterId + " [Replicas] obsoleteReplicas : " + obsoleteReplicas))
            eval($kubernetesClusterContext.getObsoletedMembers().keySet().size() > 0)
            memberId : String() from $kubernetesClusterContext.getObsoletedMembers().keySet()
            eval(log.debug("[obsolete-check] [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId + " Member id : " + memberId))
         then
+           log.info("[obsolete-check] Terminating the obsolete member with id : " + memberId + " in the cluster : " + clusterId);
            $delegator.delegateTerminateContainer($kubernetesClusterContext, memberId);
 end
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/bbdc7cf2/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
index 46d9aeb..1aec0b0 100644
--- a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
@@ -31,7 +31,7 @@ global java.lang.Boolean rifReset;
 global java.lang.Boolean mcReset;
 global java.lang.Boolean laReset;
 
-rule "Scaling Rule"
+rule "Containers Scaling Rule"
 dialect "mvel"
 	when
         $kubernetesClusterContext : KubernetesClusterContext ()
@@ -39,8 +39,9 @@ dialect "mvel"
 	minReplicas : Integer() from $kubernetesClusterContext.getMinReplicas()
         maxReplicas : Integer() from $kubernetesClusterContext.getMaxReplicas()
         nonTerminatedReplicas : Integer() from $kubernetesClusterContext.getNonTerminatedMemberCount()
+        activeReplicas : Integer() from $kubernetesClusterContext.getActiveMemberCount()
 
-        eval(log.debug("Running scaling rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
+        eval(log.info("Running scaling rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
 	
 	$loadThresholds : LoadThresholds() from  autoscalePolicy.getLoadThresholds()
 
@@ -72,16 +73,17 @@ dialect "mvel"
         scaleUpForMc : Boolean() from (mcReset && (mcPredictedValue > mcUpperLimit))
         scaleUpForLa : Boolean() from (laReset && (laPredictedValue > laUpperLimit))
 
-	scaleDownForRif : Boolean() from (rifReset && (rifPredictedValue < rifLowerLimit))
-        scaleDownForMc : Boolean() from (mcReset && (mcPredictedValue < mcLowerLimit)) 
-        scaleDownForLa : Boolean() from (laReset && (laPredictedValue < laLowerLimit))
+	scaleDownForRif : Boolean() from (rifPredictedValue < rifUpperLimit)
+        scaleDownForMc : Boolean() from (mcReset && (mcPredictedValue < mcUpperLimit)) 
+        scaleDownForLa : Boolean() from (laReset && (laPredictedValue < laUpperLimit))
 
         scaleUp : Boolean() from (scaleUpForRif || scaleUpForMc || scaleUpForLa)
-        scaleDown : Boolean() from (scaleDownForRif && scaleDownForMc &&  scaleDownForLa)
+        scaleDown : Boolean() from (scaleDownForRif && scaleDownForMc && scaleDownForLa)
 
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [Replicas] nonTerminated : " + nonTerminatedReplicas))
-	eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [Replicas] minReplicas : " + minReplicas))
-	eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [Replicas] maxReplicas : " + maxReplicas))
+	eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [Replicas] minReplicas : " + minReplicas))
+	eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [Replicas] maxReplicas : " + maxReplicas))
+	eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [Replicas] nonTerminated : " + nonTerminatedReplicas))
+	eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [Replicas] activeReplicas : " + activeReplicas))
 
         eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [RequestInFlight] resetted ? : " + rifReset))
         eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [RequestInFlight] predicted value : " + rifPredictedValue))
@@ -89,17 +91,17 @@ dialect "mvel"
         eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [RequestInFlight] lower limit : " + rifLowerLimit))
 
 	eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] resetted ? : " + mcReset))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] predicted value : " + mcPredictedValue))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] upper limit : " + mcUpperLimit))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] lower limit : " + mcLowerLimit))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] predicted value : " + mcPredictedValue))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] upper limit : " + mcUpperLimit))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [MemoryConsumption] lower limit : " + mcLowerLimit))
 
 	eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] resetted ? : " + laReset))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] predicted value : " + laPredictedValue))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] upper limit : " + laUpperLimit))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] lower limit : " + laLowerLimit))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] predicted value : " + laPredictedValue))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] upper limit : " + laUpperLimit))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " [LoadAverage] lower limit : " + laLowerLimit))
 
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " scale-up action : " + scaleUp))
-        eval(log.debug("[scaling] " + " [cluster] : " + clusterId + " scale-down action : " + scaleDown))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " scale-up action : " + scaleUp))
+        eval(log.info("[scaling] " + " [cluster] : " + clusterId + " scale-down action : " + scaleDown))
 
 	then
         if (scaleUp) {
@@ -139,23 +141,31 @@ dialect "mvel"
             if (requiredReplicas > nonTerminatedReplicas) {
               log.info("[scaling] Decided to scale-up : [cluster] : " + clusterId);
  	      log.info("[scaling-up] " + " [cluster] : " + clusterId + " valid number of replicas to expand : " + requiredReplicas);
-	      $delegator.delegateUpdateContainers($kubernetesClusterContext, requiredReplicas);
+	      $delegator.delegateScaleUpContainers($kubernetesClusterContext, requiredReplicas);
             }
             //shrink the cluster
             if (requiredReplicas < nonTerminatedReplicas) {
-              log.info("[scaling] Decided to scale-down : [cluster] : " + clusterId);
- 	      log.info("[scaling-down] " + " [cluster] : " + clusterId + " valid number of replicas to shrink : " + requiredReplicas);
-	      $delegator.delegateUpdateContainers($kubernetesClusterContext, requiredReplicas);
+              if (requiredReplicas < activeReplicas) {
+                log.info("[scaling] Decided to scale-down : [cluster] : " + clusterId);
+ 	        log.info("[scaling-down] " + " [cluster] : " + clusterId + " valid number of replicas to shrink : " + requiredReplicas);
+	        $delegator.delegateScaleDownContainers($kubernetesClusterContext, requiredReplicas);
+              } else {
+	        log.info("[scaling] " + " [cluster] : " + clusterId + " Even if requiredReplicas < nonTerminatedReplicas, still requiredReplicas >= activeReplicas ; hence not scaling down ");
+              }
             }
             if (requiredReplicas == nonTerminatedReplicas) {
- 	      log.info("[scaling] " + " [cluster] : " + clusterId + "non terminated replicas and predicted replicas are same");
+ 	      log.info("[scaling] " + " [cluster] : " + clusterId + " Non terminated replicas and predicted replicas are same");
             }
             
         } else if (scaleDown) {
-            log.info("[scaling] Decided to scale-down [cluster] : " + clusterId);
-            log.info("[scaling-down] " + " [cluster] : " + clusterId + " shrink the cluster to minReplicas : " + minReplicas);
-            //shrink the cluster to minReplicas
-            $delegator.delegateUpdateContainers($kubernetesClusterContext, minReplicas);
+            if (activeReplicas > minReplicas) {
+              log.info("[scaling] Decided to scale-down [cluster] : " + clusterId);
+              log.info("[scaling-down] " + " [cluster] : " + clusterId + " shrink the cluster to minReplicas : " + minReplicas);
+              //shrink the cluster to minReplicas
+              $delegator.delegateScaleDownContainers($kubernetesClusterContext, minReplicas);
+            } else {
+	      log.info("[scaling] " + " [cluster] : " + clusterId + " Even if all predicted stats < upperLimit, activeReplicas == minReplicas ; hence not scaling down ");
+            }
         } else {
             log.info("[scaling] No decision made to either scale up or down ... ");
         }


[11/11] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/stratos

Posted by ra...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/stratos


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

Branch: refs/heads/master
Commit: b299559d1c09cac05d38a826ef7e515fa5ad03f3
Parents: e9f2087 a6f4efe
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sun Oct 12 00:34:07 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sun Oct 12 00:34:07 2014 +0530

----------------------------------------------------------------------
 .../java/org/apache/stratos/cli/RestClient.java |   26 +-
 .../stratos/cli/RestCommandLineService.java     | 1346 +++++-------------
 .../apache/stratos/cli/StratosApplication.java  |    4 +-
 .../cli/commands/ActivateTenantCommand.java     |    2 +-
 .../DescribeCartridgeSubscriptionCommand.java   |   95 ++
 .../DescribeDeploymentPolicyCommand.java        |    2 +-
 .../commands/ListAutoscalePolicyCommand.java    |    3 +-
 .../ListCartridgeSubscriptionsCommand.java      |   84 +-
 .../cli/commands/ListCartridgesCommand.java     |    3 +-
 .../cli/commands/ListDeployServiceCommand.java  |    2 +-
 .../commands/ListDeploymentPolicyCommand.java   |    1 -
 .../ListSubscribedCartridgesCommand.java        |  120 --
 .../cli/commands/SubscribeCartridgeCommand.java |   42 +-
 .../stratos/cli/commands/SyncCommand.java       |    6 +-
 .../stratos/cli/exception/ErrorWrapper.java     |    4 +-
 .../rest/endpoint/services/ServiceUtils.java    |    7 +-
 .../cartridge-agent/agent.conf                  |    2 +
 .../cartridge-agent/agent.py                    |    7 +-
 .../config/cartridgeagentconfiguration.py       |   17 +-
 .../modules/datapublisher/logpublisher.py       |   15 +-
 .../modules/event/topology/events.py            |   25 +-
 .../extensions/abstractextensionhandler.py      |    3 +
 .../extensions/defaultextensionhandler.py       |   85 +-
 .../modules/healthstatspublisher/healthstats.py |   12 +-
 .../publisher/cartridgeagentpublisher.py        |    2 +-
 .../modules/topology/topologycontext.py         |    2 +
 .../modules/util/cartridgeagentutils.py         |    4 +-
 .../modules/util/extensionutils.py              |    2 +-
 28 files changed, 720 insertions(+), 1203 deletions(-)
----------------------------------------------------------------------



[02/11] git commit: cleaning member list on cluster removed event

Posted by ra...@apache.org.
cleaning member list on cluster removed event


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

Branch: refs/heads/master
Commit: c04d25580f89bc4501dc445445bd5d16d301f931
Parents: bbdc7cf
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 19:30:20 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 19:30:20 2014 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/monitor/KubernetesClusterMonitor.java    | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/c04d2558/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
index 9375a8e..cf5243b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
@@ -428,7 +428,10 @@ public abstract class KubernetesClusterMonitor extends AbstractClusterMonitor {
     @Override
     public void handleClusterRemovedEvent(
             ClusterRemovedEvent clusterRemovedEvent) {
-
+    	getKubernetesClusterCtxt().getPendingMembers().clear();
+    	getKubernetesClusterCtxt().getActiveMembers().clear();
+    	getKubernetesClusterCtxt().getTerminationPendingMembers().clear();
+    	getKubernetesClusterCtxt().getObsoletedMembers().clear();
     }
 
     public KubernetesClusterContext getKubernetesClusterCtxt() {


[05/11] git commit: populating member contexts after restarting

Posted by ra...@apache.org.
populating member contexts after restarting


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

Branch: refs/heads/master
Commit: a90a6e918594c88f7415787f59df33965c0f800b
Parents: a1969d5
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 21:46:47 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 21:46:47 2014 +0530

----------------------------------------------------------------------
 .../apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a90a6e91/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
index 856958d..8514aed 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
@@ -391,6 +391,10 @@ public class ClusterMonitorFactory {
                        || MemberStatus.Starting.equals(member.getStatus())) {
                 dockerClusterMonitor.getKubernetesClusterCtxt().addPendingMember(memberContext);
             }
+            kubernetesClusterCtxt.addMemberStatsContext(new MemberStatsContext(memberId));
+            if (log.isInfoEnabled()) {
+                log.info(String.format("Member stat context has been added: [member] %s", memberId));
+            }
         }
 
         // find lb reference type


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

Posted by ra...@apache.org.
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();


[08/11] git commit: setting isClusterCreated to true if there is atleast one member in the ropoloy when restarting stratos

Posted by ra...@apache.org.
setting isClusterCreated to true if there is atleast one member in the ropoloy when restarting stratos


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

Branch: refs/heads/master
Commit: cd2bf5307bf0c58ff7f80fe4b43023106395a830
Parents: 5a928c9
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 23:23:57 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 23:23:57 2014 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/monitor/ClusterMonitorFactory.java      | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/cd2bf530/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
index 8514aed..9724690 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitorFactory.java
@@ -384,7 +384,11 @@ public class ClusterMonitorFactory {
             MemberContext memberContext = new MemberContext();
             memberContext.setMemberId(memberId);
             memberContext.setClusterId(clusterId);
-
+            
+            // if there is at least one member in the topology, that means service has been created already
+            // this is to avoid calling startContainer() method again
+            kubernetesClusterCtxt.setServiceClusterCreated(true);
+            
             if (MemberStatus.Activated.equals(member.getStatus())) {
                 dockerClusterMonitor.getKubernetesClusterCtxt().addActiveMember(memberContext);
             } else if (MemberStatus.Created.equals(member.getStatus())


[09/11] git commit: handling member fault event for container

Posted by ra...@apache.org.
handling member fault event for container


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

Branch: refs/heads/master
Commit: 78113d2ee2749f0527b77375decf982295c87ab8
Parents: cd2bf53
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 23:24:30 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 23:24:30 2014 +0530

----------------------------------------------------------------------
 .../monitor/KubernetesClusterMonitor.java       | 62 +++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/78113d2e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
index cf5243b..c6f709c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
@@ -22,8 +22,13 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.KubernetesClusterContext;
 import org.apache.stratos.autoscaler.MemberStatsContext;
+import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
+import org.apache.stratos.autoscaler.exception.TerminationException;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.Member;
+import org.apache.stratos.messaging.domain.topology.Service;
 import org.apache.stratos.messaging.event.health.stat.AverageLoadAverageEvent;
 import org.apache.stratos.messaging.event.health.stat.AverageMemoryConsumptionEvent;
 import org.apache.stratos.messaging.event.health.stat.AverageRequestsInFlightEvent;
@@ -46,6 +51,7 @@ import org.apache.stratos.messaging.event.topology.MemberMaintenanceModeEvent;
 import org.apache.stratos.messaging.event.topology.MemberReadyToShutdownEvent;
 import org.apache.stratos.messaging.event.topology.MemberStartedEvent;
 import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
 /*
  * Every kubernetes cluster monitor should extend this class
@@ -350,8 +356,46 @@ public abstract class KubernetesClusterMonitor extends AbstractClusterMonitor {
 
     @Override
     public void handleMemberFaultEvent(MemberFaultEvent memberFaultEvent) {
-
     	// kill the container
+        String memberId = memberFaultEvent.getMemberId();
+        Member member = getMemberByMemberId(memberId);
+        if (null == member) {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("Member not found in the Topology: [member] %s", memberId));
+            }
+            return;
+        }
+        if (!member.isActive()) {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("Member activated event has not received for the member %s. "
+                                        + "Therefore ignoring" + " the member fault health stat", memberId));
+            }
+            return;
+        }
+        
+        if (!getKubernetesClusterCtxt().activeMemberExist(memberId)) {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("Could not find the active member in kubernetes cluster context, "
+                                        + "[member] %s ", memberId));
+            }
+            return;
+        }
+        // terminate the faulty member
+        CloudControllerClient ccClient = CloudControllerClient.getInstance();
+        try {
+            ccClient.terminateContainer(memberId);
+            // remove from active member list
+            getKubernetesClusterCtxt().removeActiveMemberById(memberId);
+            if (log.isInfoEnabled()) {
+                String clusterId = memberFaultEvent.getClusterId();
+                String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
+				log.info(String.format("Faulty member is terminated and removed from the active members list: "
+                                       + "[member] %s [kub-cluster] %s [cluster] %s ", memberId, kubernetesClusterID, clusterId));
+            }
+        } catch (TerminationException e) {
+            String msg = "Cannot delete a container " + e.getLocalizedMessage();
+            log.error(msg, e);
+        }
     }
 
     @Override
@@ -450,4 +494,20 @@ public abstract class KubernetesClusterMonitor extends AbstractClusterMonitor {
     public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) {
         this.autoscalePolicy = autoscalePolicy;
     }
+    
+    private Member getMemberByMemberId(String memberId) {
+        try {
+            TopologyManager.acquireReadLock();
+            for (Service service : TopologyManager.getTopology().getServices()) {
+                for (Cluster cluster : service.getClusters()) {
+                    if (cluster.memberExists(memberId)) {
+                        return cluster.getMember(memberId);
+                    }
+                }
+            }
+            return null;
+        } finally {
+            TopologyManager.releaseReadLock();
+        }
+    }
 }


[04/11] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/stratos

Posted by ra...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/stratos


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

Branch: refs/heads/master
Commit: a1969d57ad4144bc69b719ea9addc3b4e81e8064
Parents: 42f049e 2c3e152
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 19:31:35 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 19:31:35 2014 +0530

----------------------------------------------------------------------
 .../apache/stratos/cli/CommandLineService.java  |   12 +-
 .../java/org/apache/stratos/cli/RestClient.java |    6 +-
 .../stratos/cli/RestCommandLineService.java     |  125 +-
 .../apache/stratos/cli/StratosApplication.java  |   30 +-
 .../cli/commands/ActivateTenantCommand.java     |    4 +-
 .../cli/commands/AddDomainMappingCommand.java   |    6 +-
 .../stratos/cli/commands/AddTenantCommand.java  |    8 +-
 .../stratos/cli/commands/AddUserCommand.java    |    8 +-
 .../cli/commands/AutoscalePolicyCommand.java    |   66 -
 .../AutoscalingPolicyDeploymentCommand.java     |  138 --
 .../commands/CartridgeDeploymentCommand.java    |  140 --
 .../cli/commands/DeactivateTenantCommand.java   |    4 +-
 .../cli/commands/DeleteTenantCommand.java       |    4 +-
 .../stratos/cli/commands/DeleteUserCommand.java |    4 +-
 .../DeployAutoscalingPolicyCommand.java         |  138 ++
 .../cli/commands/DeployCartridgeCommand.java    |  140 ++
 .../commands/DeployDeploymentPolicyCommand.java |  138 ++
 .../commands/DeployKubernetesGroupCommand.java  |   16 +-
 .../commands/DeployKubernetesHostCommand.java   |   16 +-
 .../cli/commands/DeployPartitionCommand.java    |  138 ++
 .../cli/commands/DeployServiceCommand.java      |  139 ++
 .../DeployServiceDeploymentCommand.java         |  139 --
 .../cli/commands/DeploymentPolicyCommand.java   |   66 -
 .../DeploymentPolicyDeploymentCommand.java      |  138 --
 .../DescribeAutoScalingPolicyCommand.java       |    4 +-
 .../cli/commands/DescribeCartridgeCommand.java  |    4 +-
 .../DescribeDeploymentPolicyCommand.java        |    4 +-
 .../cli/commands/DescribePartitionCommand.java  |    4 +-
 .../stratos/cli/commands/ExitCommand.java       |    9 +-
 .../stratos/cli/commands/HelpCommand.java       |    6 +-
 .../stratos/cli/commands/InfoCommand.java       |    4 +-
 .../stratos/cli/commands/ListAllTenants.java    |    4 +-
 .../stratos/cli/commands/ListAllUsers.java      |    4 +-
 .../commands/ListAutoscalePolicyCommand.java    |   66 +
 .../ListCartridgeSubscriptionsCommand.java      |   95 ++
 .../cli/commands/ListCartridgesCommand.java     |    4 +-
 .../cli/commands/ListDeployServiceCommand.java  |    4 +-
 .../commands/ListDeploymentPolicyCommand.java   |   66 +
 .../commands/ListKubernetesGroupsCommand.java   |    4 +-
 .../commands/ListKubernetesHostsCommand.java    |    4 +-
 .../stratos/cli/commands/ListMemberCommand.java |   10 +-
 .../cli/commands/ListPartitionCommand.java      |   65 +
 .../ListSubscribedCartridgesCommand.java        |   10 +-
 .../stratos/cli/commands/PartitionCommand.java  |   65 -
 .../commands/PartitionDeploymentCommand.java    |  138 --
 .../stratos/cli/commands/PoliciesCommand.java   |   71 -
 .../commands/RemoveDomainMappingCommand.java    |   75 -
 .../cli/commands/SubscribeCartridgeCommand.java |  307 ++++
 .../stratos/cli/commands/SubscribeCommand.java  |  358 -----
 .../SubscribedCartridgeInfoCommand.java         |  101 --
 .../stratos/cli/commands/SyncCommand.java       |   13 +-
 .../UnDeployKubernetesGroupCommand.java         |    6 +-
 .../UndeployCartridgeDefinitionCommand.java     |    4 +-
 .../commands/UndeployKubernetesHostCommand.java |    4 +-
 .../UndeployServiceDefinitionCommand.java       |    4 +-
 .../cli/commands/UnsubscribeCommand.java        |   10 +-
 .../apache/stratos/cli/utils/CliConstants.java  |    4 +-
 .../org/apache/stratos/cli/utils/CliUtils.java  |  147 ++
 .../stratos/cli/utils/CommandLineUtils.java     |  147 --
 .../stratos/kubernetes/client/model/Pod.java    |   23 +
 tools/python-cartridge-agent/__init__.py        |    0
 .../cartridge-agent/__init__.py                 |   16 +
 .../cartridge-agent/agent.conf                  |   60 +
 .../cartridge-agent/agent.properties            |   47 -
 .../cartridge-agent/agent.py                    |  573 +++----
 .../cartridge-agent/agent.sh                    |    8 -
 .../cartridge-agent/agent1.py                   |   15 -
 .../cartridge-agent/extensionhandler.py         |   44 -
 .../cartridge-agent/extensionhandler.pyc        |  Bin 1987 -> 0 bytes
 .../cartridge-agent/logging.ini                 |   52 +
 .../cartridge-agent/modules/__init__.py         |   16 +
 .../cartridge-agent/modules/__init__.pyc        |  Bin 0 -> 194 bytes
 .../modules/artifactmgt/__init__.py             |   17 +
 .../modules/artifactmgt/git/__init__.py         |   17 +
 .../modules/artifactmgt/git/agentgithandler.py  |  501 ++++++
 .../modules/artifactmgt/git/gitrepository.py    |   51 +
 .../artifactmgt/repositoryinformation.py        |   37 +
 .../cartridge-agent/modules/config/__init__.py  |   17 +
 .../cartridge-agent/modules/config/__init__.pyc |  Bin 0 -> 254 bytes
 .../config/cartridgeagentconfiguration.py       |  343 ++++
 .../config/cartridgeagentconfiguration.pyc      |  Bin 0 -> 17633 bytes
 .../modules/databridge/__init__.py              |   17 +
 .../cartridge-agent/modules/databridge/agent.py |  187 +++
 .../modules/databridge/thrift/__init__.py       |   17 +
 .../databridge/thrift/gen/Data/__init__.py      |    1 +
 .../databridge/thrift/gen/Data/constants.py     |    8 +
 .../databridge/thrift/gen/Data/ttypes.py        |  320 ++++
 .../databridge/thrift/gen/Exception/__init__.py |    1 +
 .../thrift/gen/Exception/constants.py           |    8 +
 .../databridge/thrift/gen/Exception/ttypes.py   |  473 ++++++
 .../ThriftEventTransmissionService-remote       |  117 ++
 .../ThriftEventTransmissionService.py           | 1143 +++++++++++++
 .../ThriftEventTransmissionService/__init__.py  |    1 +
 .../ThriftEventTransmissionService/constants.py |    8 +
 .../ThriftEventTransmissionService/ttypes.py    |   21 +
 .../ThriftSecureEventTransmissionService-remote |  131 ++
 .../ThriftSecureEventTransmissionService.py     | 1495 ++++++++++++++++++
 .../__init__.py                                 |    1 +
 .../constants.py                                |    8 +
 .../ttypes.py                                   |   21 +
 .../modules/databridge/thrift/gen/__init__.py   |    0
 .../modules/databridge/thrift/publisher.py      |  111 ++
 .../modules/databridge/thrift/thrift/TSCons.py  |   35 +
 .../databridge/thrift/thrift/TSerialization.py  |   38 +
 .../databridge/thrift/thrift/TTornado.py        |  153 ++
 .../modules/databridge/thrift/thrift/Thrift.py  |  170 ++
 .../databridge/thrift/thrift/__init__.py        |   20 +
 .../databridge/thrift/thrift/protocol/TBase.py  |   81 +
 .../thrift/thrift/protocol/TBinaryProtocol.py   |  261 +++
 .../thrift/thrift/protocol/TCompactProtocol.py  |  405 +++++
 .../thrift/thrift/protocol/TJSONProtocol.py     |  552 +++++++
 .../thrift/thrift/protocol/TProtocol.py         |  406 +++++
 .../thrift/thrift/protocol/__init__.py          |   20 +
 .../thrift/thrift/protocol/fastbinary.c         | 1219 ++++++++++++++
 .../thrift/thrift/server/THttpServer.py         |   87 +
 .../thrift/thrift/server/TNonblockingServer.py  |  346 ++++
 .../thrift/thrift/server/TProcessPoolServer.py  |  118 ++
 .../databridge/thrift/thrift/server/TServer.py  |  269 ++++
 .../databridge/thrift/thrift/server/__init__.py |   20 +
 .../thrift/thrift/transport/THttpClient.py      |  147 ++
 .../thrift/thrift/transport/TSSLSocket.py       |  214 +++
 .../thrift/thrift/transport/TSocket.py          |  176 +++
 .../thrift/thrift/transport/TTransport.py       |  330 ++++
 .../thrift/thrift/transport/TTwisted.py         |  221 +++
 .../thrift/thrift/transport/TZlibTransport.py   |  249 +++
 .../thrift/thrift/transport/__init__.py         |   20 +
 .../modules/datapublisher/__init__.py           |   18 +
 .../modules/datapublisher/exception/__init__.py |   17 +
 .../exception/datapublisherexception.py         |   33 +
 .../modules/datapublisher/logpublisher.py       |  274 ++++
 .../cartridge-agent/modules/event/__init__.py   |    0
 .../modules/event/instance/__init__.py          |   16 +
 .../modules/event/instance/notifier/__init__.py |   17 +
 .../modules/event/instance/notifier/events.py   |   76 +
 .../modules/event/instance/status/__init__.py   |   17 +
 .../modules/event/instance/status/events.py     |   98 ++
 .../modules/event/tenant/__init__.py            |   16 +
 .../modules/event/tenant/events.py              |  147 ++
 .../modules/event/topology/__init__.py          |   17 +
 .../modules/event/topology/events.py            |  233 +++
 .../modules/exception/__init__.py               |   16 +
 .../modules/exception/__init__.pyc              |  Bin 0 -> 256 bytes
 .../exception/parameternotfoundexception.py     |   35 +
 .../exception/parameternotfoundexception.pyc    |  Bin 0 -> 1133 bytes
 .../modules/extensions/__init__.py              |   16 +
 .../extensions/abstractextensionhandler.py      |   75 +
 .../extensions/defaultextensionhandler.py       |  762 +++++++++
 .../modules/healthstatspublisher/__init__.py    |   16 +
 .../abstracthealthstatisticspublisher.py        |   62 +
 .../modules/healthstatspublisher/healthstats.py |  235 +++
 .../modules/publisher/__init__.py               |   16 +
 .../publisher/cartridgeagentpublisher.py        |  164 ++
 .../modules/subscriber/__init__.py              |   17 +
 .../modules/subscriber/eventsubscriber.py       |   96 ++
 .../cartridge-agent/modules/tenant/__init__.py  |   16 +
 .../modules/tenant/tenantcontext.py             |  184 +++
 .../modules/topology/__init__.py                |   16 +
 .../modules/topology/topologycontext.py         |  452 ++++++
 .../cartridge-agent/modules/util/__init__.py    |   16 +
 .../cartridge-agent/modules/util/__init__.pyc   |  Bin 0 -> 297 bytes
 .../modules/util/asyncscheduledtask.py          |   50 +
 .../modules/util/cartridgeagentconstants.py     |  135 ++
 .../modules/util/cartridgeagentconstants.pyc    |  Bin 0 -> 3917 bytes
 .../modules/util/cartridgeagentutils.py         |  165 ++
 .../modules/util/cartridgeagentutils.pyc        |  Bin 0 -> 3924 bytes
 .../modules/util/extensionutils.py              |  494 ++++++
 .../cartridge-agent/modules/util/log.py         |   55 +
 .../cartridge-agent/readme.txt                  |    2 -
 .../cartridge-agent/script.sh                   |    0
 .../cartridge-agent/util.py                     |   22 -
 .../cartridge-agent/util.pyc                    |  Bin 762 -> 0 bytes
 171 files changed, 16791 insertions(+), 2236 deletions(-)
----------------------------------------------------------------------



[07/11] git commit: changing logging message

Posted by ra...@apache.org.
changing logging message


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

Branch: refs/heads/master
Commit: 5a928c9afae89e81ccdf1f7438e3c8cb7a5ef856
Parents: 673a0eb
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 22:02:09 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 22:02:09 2014 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5a928c9a/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 e350955..e35c9cb 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
@@ -279,7 +279,7 @@ public class RuleTasksDelegator {
 					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", 
+							log.debug(String.format("Scaling down, terminated the member with id %s in cluster %s", 
 									memberContext.getMemberId(), memberContext.getClusterId()));
 						}
 					}


[10/11] git commit: removing /# from HEALTH_STAT_TOPIC constant

Posted by ra...@apache.org.
removing /# from HEALTH_STAT_TOPIC constant


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

Branch: refs/heads/master
Commit: e9f2087ac73e4c7cbae445e35ef14c5aab49725d
Parents: 78113d2
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 23:25:35 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 23:25:35 2014 +0530

----------------------------------------------------------------------
 .../src/main/java/org/apache/stratos/messaging/util/Constants.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e9f2087a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java
index 2089a63..78fd0be 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/util/Constants.java
@@ -21,7 +21,7 @@ package org.apache.stratos.messaging.util;
 public class Constants {
 	/* Message broker topic names */
 	public static final String TOPOLOGY_TOPIC = "topology/#";
-	public static final String HEALTH_STAT_TOPIC = "summarized-health-stats/#";
+	public static final String HEALTH_STAT_TOPIC = "summarized-health-stats";
 	public static final String INSTANCE_STATUS_TOPIC = "instance/status/#";
 	public static final String INSTANCE_NOTIFIER_TOPIC = "instance/notifier/#";
 	public static final String PING_TOPIC = "ping";


[06/11] git commit: fixing a typo in drools logging

Posted by ra...@apache.org.
fixing a typo in drools logging


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

Branch: refs/heads/master
Commit: 673a0ebb1f5c5a1eb087d3f52b3c4a8789b0dbb6
Parents: a90a6e9
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sat Oct 11 21:47:27 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sat Oct 11 21:47:27 2014 +0530

----------------------------------------------------------------------
 .../modules/distribution/src/main/conf/container-scaling.drl       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/673a0ebb/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
index 1aec0b0..c5d4272 100644
--- a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
@@ -164,7 +164,7 @@ dialect "mvel"
               //shrink the cluster to minReplicas
               $delegator.delegateScaleDownContainers($kubernetesClusterContext, minReplicas);
             } else {
-	      log.info("[scaling] " + " [cluster] : " + clusterId + " Even if all predicted stats < upperLimit, activeReplicas == minReplicas ; hence not scaling down ");
+	      log.info("[scaling] " + " [cluster] : " + clusterId + " Even if all predicted stats < upperLimit, still activeReplicas <= minReplicas ; hence not scaling down ");
             }
         } else {
             log.info("[scaling] No decision made to either scale up or down ... ");