You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/01/06 14:13:26 UTC
git commit: Rules management code for terminate all rule
Updated Branches:
refs/heads/master 04a16d02f -> ec0c9a7ff
Rules management code for terminate all 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/ec0c9a7f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/ec0c9a7f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/ec0c9a7f
Branch: refs/heads/master
Commit: ec0c9a7ff2e6462fa661fca0995d3b57637cfa01
Parents: 04a16d0
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Jan 6 18:48:03 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Jan 6 18:48:03 2014 +0530
----------------------------------------------------------------------
.../rule/AutoscalerRuleEvaluator.java | 31 ++++++++++++++++++++
1 file changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ec0c9a7f/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 21eedd5..21ab342 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -45,9 +45,11 @@ public class AutoscalerRuleEvaluator {
private static final String DRL_FILE_NAME = "mincheck.drl";
private static final String SCALING_DRL_FILE_NAME = "scaling.drl";
+ private static final String TERMINATE_ALL_DRL_FILE_NAME = "terminateall.drl";
private static KnowledgeBase minCheckKbase;
private static KnowledgeBase scaleCheckKbase;
+ private static KnowledgeBase terminateAllKbase;
public AutoscalerRuleEvaluator(){
@@ -62,6 +64,11 @@ public class AutoscalerRuleEvaluator {
if (log.isDebugEnabled()) {
log.debug("Scale check rule is parsed successfully");
}
+ terminateAllKbase = readKnowledgeBase(TERMINATE_ALL_DRL_FILE_NAME);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Terminate all rule is parsed successfully");
+ }
}
@@ -101,6 +108,24 @@ public class AutoscalerRuleEvaluator {
+ public static FactHandle evaluateTerminateAll(StatefulKnowledgeSession ksession, FactHandle handle, Object obj) {
+
+ if (handle == null) {
+
+ ksession.setGlobal("$delegator", new RuleTasksDelegator());
+ handle = ksession.insert(obj);
+ } else {
+ ksession.update(handle, obj);
+ }
+ ksession.fireAllRules();
+ if(log.isDebugEnabled()){
+ log.debug(String.format("Terminate all check executed for : %s ", obj));
+ }
+ return handle;
+ }
+
+
+
public StatefulKnowledgeSession getMinCheckStatefulSession() {
StatefulKnowledgeSession ksession;
ksession = minCheckKbase.newStatefulKnowledgeSession();
@@ -113,6 +138,12 @@ public class AutoscalerRuleEvaluator {
ksession.setGlobal("log", RuleLog.getInstance());
return ksession;
}
+ public StatefulKnowledgeSession getTerminateAllStatefulSession() {
+ StatefulKnowledgeSession ksession;
+ ksession = scaleCheckKbase.newStatefulKnowledgeSession();
+ ksession.setGlobal("log", RuleLog.getInstance());
+ return ksession;
+ }
public static String getLbClusterId(PartitionContext partitionContext, NetworkPartitionContext ctxt) {
Properties props = partitionContext.getProperties();