Repository: stratos Updated Branches: refs/heads/master 76fdcfcbb -> 1a395ec83
Adding cluster instance context and setting global variables for 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/1a395ec8 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/1a395ec8 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/1a395ec8 Branch: refs/heads/master Commit: 1a395ec83a4f9e91db5aad40ced69457b6bc8589 Parents: 76fdcfc Author: Lahiru Sandaruwan <[email protected]> Authored: Wed Dec 3 23:01:58 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Wed Dec 3 23:01:58 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/monitor/cluster/VMClusterMonitor.java | 12 +++++------- .../src/main/conf/drools/dependent-scaling.drl | 4 ++++ 2 files changed, 9 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/1a395ec8/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 9e8ff93..7910d43 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 @@ -373,23 +373,21 @@ public class VMClusterMonitor extends AbstractClusterMonitor { VMClusterContext vmClusterContext = (VMClusterContext) clusterContext; String instanceId = scalingEvent.getInstanceId(); - ClusterInstanceContext clusterLevelNetworkPartitionContext = + ClusterInstanceContext clusterInstanceContext = getClusterInstanceContext(scalingEvent.getNetworkPartitionId(), instanceId); //TODO get min instance count from instance context - float requiredInstanceCount = 0;/* = clusterLevelNetworkPartitionContext.getMinInstanceCount() * scalingFactorBasedOnDependencies;*/ + float requiredInstanceCount = clusterInstanceContext.getMinInstanceCount() * scalingFactorBasedOnDependencies; int roundedRequiredInstanceCount = getRoundedInstanceCount(requiredInstanceCount, vmClusterContext.getAutoscalePolicy().getInstanceRoundingFactor()); - clusterLevelNetworkPartitionContext.setRequiredInstanceCountBasedOnDependencies(roundedRequiredInstanceCount); + clusterInstanceContext.setRequiredInstanceCountBasedOnDependencies(roundedRequiredInstanceCount); getDependentScaleCheckKnowledgeSession().setGlobal("clusterId", getClusterId()); - getDependentScaleCheckKnowledgeSession().setGlobal("scalingFactor", scalingFactorBasedOnDependencies); - getDependentScaleCheckKnowledgeSession().setGlobal("instanceRoundingFactor", - vmClusterContext.getAutoscalePolicy().getInstanceRoundingFactor()); + getDependentScaleCheckKnowledgeSession().setGlobal("roundedRequiredInstanceCount", roundedRequiredInstanceCount); dependentScaleCheckFactHandle = AutoscalerRuleEvaluator.evaluate(getScaleCheckKnowledgeSession() - , scaleCheckFactHandle, clusterLevelNetworkPartitionContext); + , scaleCheckFactHandle, clusterInstanceContext); } http://git-wip-us.apache.org/repos/asf/stratos/blob/1a395ec8/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 da87ac5..92fc981 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 @@ -19,13 +19,17 @@ package org.apache.stratos.autoscaler.rule; +import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; global org.apache.stratos.autoscaler.rule.RuleLog log; +global java.lang.String clusterId; +global Integer roundedRequiredInstanceCount; rule "Dependent Scaling Rule" dialect "mvel" when + clusterInstanceContext : ClusterInstanceContext () then
