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 <[email protected]> Authored: Fri Dec 5 01:31:30 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> 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
