Repository: stratos Updated Branches: refs/heads/master fe7ee8454 -> 269cad9e0
Updating minimum check to run against cluster instance and select partition Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c3784042 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c3784042 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c3784042 Branch: refs/heads/master Commit: c3784042f3c0d3393c1e2c3026a511f4c7fdf6b3 Parents: fe7ee84 Author: Lahiru Sandaruwan <[email protected]> Authored: Tue Dec 2 15:37:07 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Tue Dec 2 15:37:07 2014 +0530 ---------------------------------------------------------------------- .../src/main/conf/drools/mincheck.drl | 40 ++++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/c3784042/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl index 234b81a..13bf794 100755 --- a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl +++ b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl @@ -39,31 +39,39 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.NetworkPartition; import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; +import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; global org.apache.stratos.autoscaler.rule.RuleLog log; global org.apache.stratos.autoscaler.pojo.policy.PolicyManager $manager; global org.apache.stratos.autoscaler.context.AutoscalerContext $context; -global org.apache.stratos.autoscaler.rule.RuleTasksDelegator $delegator; -global org.apache.stratos.messaging.domain.topology.Topology $topology; +global org.apache.stratos.autoscaler.rule.RuleTasksDelegator delegator; global java.util.Map partitionCtxts; global java.lang.String clusterId; -global java.lang.String instanceId; global java.lang.Boolean isPrimary; global Integer primaryMemberCount; +global java.lang.String algorithmName; rule "Minimum Rule" dialect "mvel" - when - $ctxt : ClusterLevelPartitionContext () - eval(log.debug("Running minimum rule: [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId())) - eval(log.debug("[min-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Non terminated member count: " + $ctxt.getNonTerminatedMemberCount())) - eval(log.debug("[min-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Minimum member count: " + $ctxt.getMinimumMemberCount())) - eval ( (isPrimary && (primaryMemberCount < $ctxt.getMinimumMemberCount() )) || ( !isPrimary && ($ctxt.getNonTerminatedMemberCount() < $ctxt.getMinimumMemberCount() )) ) - then - if (isPrimary){ - log.debug("[min-check] true [primary] true [primary member count] " + primaryMemberCount); - } else{ - log.debug("[min-check] true [primary] false"); - } - $delegator.delegateSpawn($ctxt, clusterId, instanceId, isPrimary); + when + clusterInstanceContext : ClusterInstanceContext () + + autoscaleAlgorithm : AutoscaleAlgorithm() from delegator.getAutoscaleAlgorithm(algorithmName) + + eval(log.debug("Running minimum rule: [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId())) + eval(log.debug("[min-check] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId() + " Non terminated member count: " + clusterInstanceContext.getNonTerminatedMemberCount())) + eval(log.debug("[min-check] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId() + " Minimum member count: " + clusterInstanceContext.getMinInstanceCount())) + + eval ( (isPrimary && (primaryMemberCount < clusterInstanceContext.getMinInstanceCount() )) || ( !isPrimary && (clusterInstanceContext.getNonTerminatedMemberCount() < clusterInstanceContext.getMinInstanceCount() )) ) + + then + ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray()); + + if (isPrimary){ + log.debug("[min-check] true [primary] true [primary member count] " + primaryMemberCount); + } else{ + log.debug("[min-check] true [primary] false"); + } + delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary); + end
