You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/12/04 20:59:52 UTC

stratos git commit: Implementing when logic in dependent-scaling.drl

Repository: stratos
Updated Branches:
  refs/heads/master 002ddac2a -> 22315f65e


Implementing when logic in dependent-scaling.drl


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

Branch: refs/heads/master
Commit: 22315f65e8ca53b00ec2ae771fc7a1ffdf9d8dfe
Parents: 002ddac
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Dec 5 01:31:30 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Fri Dec 5 01:31:36 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/monitor/cluster/VMClusterMonitor.java        | 1 +
 .../distribution/src/main/conf/drools/dependent-scaling.drl | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/22315f65/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 618800f..4fb2457 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -377,6 +377,7 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
 
         getDependentScaleCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
         getDependentScaleCheckKnowledgeSession().setGlobal("roundedRequiredInstanceCount", roundedRequiredInstanceCount);
+        getDependentScaleCheckKnowledgeSession().setGlobal("algorithmName", clusterInstanceContext.getPartitionAlgorithm());
 
         dependentScaleCheckFactHandle = AutoscalerRuleEvaluator.evaluate(getScaleCheckKnowledgeSession()
                 , scaleCheckFactHandle, clusterInstanceContext);

http://git-wip-us.apache.org/repos/asf/stratos/blob/22315f65/products/stratos/modules/distribution/src/main/conf/drools/dependent-scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/dependent-scaling.drl b/products/stratos/modules/distribution/src/main/conf/drools/dependent-scaling.drl
index 791a238..6bf9904 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/dependent-scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/dependent-scaling.drl
@@ -20,17 +20,24 @@
 package org.apache.stratos.autoscaler.rule;
 
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;
+import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
 
 global org.apache.stratos.autoscaler.rule.RuleLog log;
 global java.lang.String clusterId;
 global Integer roundedRequiredInstanceCount;
 global org.apache.stratos.autoscaler.rule.RuleTasksDelegator delegator;
+global java.lang.String algorithmName;
 
 rule "Dependent Scaling Rule"
 dialect "mvel"
 	when
 
-       clusterInstanceContext : ClusterInstanceContext ()
+        clusterInstanceContext : ClusterInstanceContext ()
+        autoscaleAlgorithm : AutoscaleAlgorithm() from  delegator.getAutoscaleAlgorithm(algorithmName)
+
+        eval(log.debug("Running dependent scaling rule: [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId()))
+        scaleUp : Boolean() from (clusterInstanceContext.getNonTerminatedMemberCount() < roundedRequiredInstanceCount )
+        scaleDown : Boolean() from (clusterInstanceContext.getNonTerminatedMemberCount() > roundedRequiredInstanceCount )
 
 	then