You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/16 07:37:20 UTC
git commit: fixing drools test case as it tests the minimum rule
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 <ni...@apache.org>
Authored: Mon Dec 16 12:06:48 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
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