Updated Branches: refs/heads/master e11e713e8 -> 838278964
fixing drools test case as it tests the minimum rule Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/83827896 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/83827896 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/83827896 Branch: refs/heads/master Commit: 838278964be63e6b2fd8d00b82b663aed8834545 Parents: e11e713 Author: Nirmal Fernando <[email protected]> Authored: Mon Dec 16 12:06:48 2013 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Mon Dec 16 12:06:57 2013 +0530 ---------------------------------------------------------------------- .../stratos/autoscaler/PartitionContext.java | 4 ++ .../stratos/autoscaler/TestDelegator.java | 20 +++++++++ .../stratos/autoscaler/TestKnowledgeBase.java | 37 ++++++---------- .../resources/test-minimum-autoscaler-rule.drl | 44 ++++++++++++++++---- 4 files changed, 73 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java index a4c1b68..96dc2bd 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java @@ -70,6 +70,10 @@ public class PartitionContext implements Serializable{ private Map<String, MemberStatsContext> memberStatsContexts; + // for the use of tests + public PartitionContext() { + } + public PartitionContext(Partition partition) { this.setPartition(partition); this.minimumMemberCount = partition.getPartitionMin(); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java new file mode 100644 index 0000000..7bf37d5 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestDelegator.java @@ -0,0 +1,20 @@ +package org.apache.stratos.autoscaler; + +/** + * Helper class to keep the state of the consequence of a rule. + * @author nirmal + * + */ +public class TestDelegator { + private static boolean isDelegated; + + public static boolean isDelegated() { + return isDelegated; + } + + public static void setDelegated(boolean isDelegated) { + TestDelegator.isDelegated = isDelegated; + } + + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java index c4fd401..5c4f959 100644 --- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java +++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestKnowledgeBase.java @@ -19,18 +19,18 @@ package org.apache.stratos.autoscaler; -import java.util.ArrayList; -import java.util.List; +import static org.junit.Assert.*; +import java.util.ArrayList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.cloud.controller.pojo.MemberContext; import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.builder.*; import org.drools.io.Resource; import org.drools.io.ResourceFactory; import org.drools.runtime.StatefulKnowledgeSession; -import org.drools.runtime.StatelessKnowledgeSession; import org.junit.Before; import org.junit.Test; @@ -39,7 +39,6 @@ public class TestKnowledgeBase { private String droolsFilePath = "src/test/resources/test-minimum-autoscaler-rule.drl"; private KnowledgeBase kbase; private StatefulKnowledgeSession ksession; - private StatelessKnowledgeSession ksession1; @Before public void setUp() { @@ -68,35 +67,25 @@ public class TestKnowledgeBase { throw new IllegalArgumentException("Knowledge base is null."); } -// ksession1 = kbase.newStatelessKnowledgeSession(); + assertEquals(false, TestDelegator.isDelegated()); + ksession = kbase.newStatefulKnowledgeSession(); - List<String> p = new ArrayList<String>(); - p.add("aa"); - p.add("bb"); -// p.setId("pp"); -// ksession.setGlobal("pa", p); -// ksession.setGlobal("log", log); -// ksession.setGlobal("$manager", PolicyManager.getInstance()); -// ksession.setGlobal("$topology", TopologyManager.getTopology()); -// ksession.setGlobal("$evaluator", this); -// ksession1.execute(p); -// FactHandle handle = ksession.insert(p); + ksession.setGlobal("clusterId", "lb.cluster.1"); + ksession.setGlobal("lbRef", null); + PartitionContext p = new PartitionContext(); + p.setPendingMembers(new ArrayList<MemberContext>()); + p.setMinimumMemberCount(1); ksession.insert(p); ksession.fireAllRules(); -// p = new Partition(); -// p.setId("3"); -// ksession.update(handle, p); -// ksession.fireAllRules(); + try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } -// System.err.println(p.getId()); -// ksession1.execute(p); -// ksession.insert(p); -// ksession.execute(p); + + assertEquals(true, TestDelegator.isDelegated()); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83827896/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl index a5c2fb1..faaf142 100644 --- a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl +++ b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl @@ -19,17 +19,45 @@ package org.apache.stratos.autoscaler.rule; -import function org.apache.stratos.autoscaler.TestKnowledgeBase.get; +import org.apache.stratos.messaging.domain.topology.Service; +import org.apache.stratos.messaging.domain.topology.Cluster; +import org.apache.stratos.autoscaler.AutoscalerContext; +import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.policy.PolicyManager; +import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; +import org.apache.stratos.autoscaler.policy.model.RequestsInFlight; +import org.apache.stratos.autoscaler.policy.model.LoadThresholds; +import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; +import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; +import org.apache.stratos.autoscaler.algorithm.RoundRobin; +import org.apache.stratos.autoscaler.PartitionContext; +import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; +import org.apache.commons.logging.Log; +import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; +import org.apache.stratos.autoscaler.partition.PartitionGroup; +import org.apache.stratos.cloud.controller.deployment.partition.Partition; +import org.apache.stratos.cloud.controller.pojo.MemberContext; +global org.apache.stratos.autoscaler.policy.PolicyManager $manager; +global org.apache.stratos.autoscaler.AutoscalerContext $context; +global org.apache.commons.logging.Log log; +global org.apache.stratos.messaging.domain.topology.Topology $topology; +global java.util.Map partitionCtxts; +global java.lang.String clusterId; +global java.lang.String lbRef; + +import function org.apache.stratos.autoscaler.TestDelegator.setDelegated; + rule "Minimum Rule" dialect "mvel" when - eval(true) + $ctxt : PartitionContext () + eval($ctxt.getCurrentMemberCount() < $ctxt.getMinimumMemberCount()) - then - p = get(); - if(p != null) { - System.out.println(p+ "SSsSS"); - } -end \ No newline at end of file + then + setDelegated(true); + +end
