You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/11/05 10:08:40 UTC
[1/2] git commit: moving obsolete-check rule from min-check drool
file to a different drool file
Repository: stratos
Updated Branches:
refs/heads/docker-grouping-merge 9af8798c5 -> 4d39532f4
moving obsolete-check rule from min-check drool file to a different drool file
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/80855b74
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/80855b74
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/80855b74
Branch: refs/heads/docker-grouping-merge
Commit: 80855b748ad0565bf9d888c57cd60f287d6bca6c
Parents: 87908a4
Author: R-Rajkumar <rr...@gmail.com>
Authored: Wed Nov 5 14:05:06 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Wed Nov 5 14:05:06 2014 +0530
----------------------------------------------------------------------
.../monitor/cluster/AbstractClusterMonitor.java | 22 +++++-
.../KubernetesServiceClusterMonitor.java | 17 ++++-
.../monitor/cluster/VMLbClusterMonitor.java | 8 ++-
.../cluster/VMServiceClusterMonitor.java | 15 +++--
.../rule/AutoscalerRuleEvaluator.java | 70 +++++++++++++-------
.../common/constants/StratosConstants.java | 2 +
.../src/main/conf/drools/container-mincheck.drl | 19 ------
.../conf/drools/container-obsoletecheck.drl | 46 +++++++++++++
.../src/main/conf/drools/mincheck.drl | 14 ----
.../src/main/conf/drools/obsoletecheck.drl | 66 ++++++++++++++++++
10 files changed, 211 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
index 55748e1..1fd9124 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
@@ -36,7 +36,6 @@ import org.apache.stratos.messaging.domain.topology.ClusterStatus;
import org.apache.stratos.messaging.event.health.stat.AverageLoadAverageEvent;
import org.apache.stratos.messaging.event.health.stat.AverageMemoryConsumptionEvent;
import org.apache.stratos.messaging.event.health.stat.AverageRequestsInFlightEvent;
-import org.apache.stratos.messaging.event.health.stat.AverageRequestsServingCapabilityEvent;
import org.apache.stratos.messaging.event.health.stat.GradientOfLoadAverageEvent;
import org.apache.stratos.messaging.event.health.stat.GradientOfMemoryConsumptionEvent;
import org.apache.stratos.messaging.event.health.stat.GradientOfRequestsInFlightEvent;
@@ -73,8 +72,10 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
private int monitoringIntervalMilliseconds;
protected FactHandle minCheckFactHandle;
+ protected FactHandle obsoleteCheckFactHandle;
protected FactHandle scaleCheckFactHandle;
private StatefulKnowledgeSession minCheckKnowledgeSession;
+ private StatefulKnowledgeSession obsoleteCheckKnowledgeSession;
private StatefulKnowledgeSession scaleCheckKnowledgeSession;
private boolean isDestroyed;
@@ -236,11 +237,19 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
public void setMinCheckFactHandle(FactHandle minCheckFactHandle) {
this.minCheckFactHandle = minCheckFactHandle;
}
+
+ public FactHandle getObsoleteCheckFactHandle() {
+ return obsoleteCheckFactHandle;
+ }
+
+ public void setObsoleteCheckFactHandle(FactHandle obsoleteCheckFactHandle) {
+ this.obsoleteCheckFactHandle = obsoleteCheckFactHandle;
+ }
public FactHandle getScaleCheckFactHandle() {
return scaleCheckFactHandle;
}
-
+
public void setScaleCheckFactHandle(FactHandle scaleCheckFactHandle) {
this.scaleCheckFactHandle = scaleCheckFactHandle;
}
@@ -253,6 +262,15 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
StatefulKnowledgeSession minCheckKnowledgeSession) {
this.minCheckKnowledgeSession = minCheckKnowledgeSession;
}
+
+ public StatefulKnowledgeSession getObsoleteCheckKnowledgeSession() {
+ return obsoleteCheckKnowledgeSession;
+ }
+
+ public void setObsoleteCheckKnowledgeSession(
+ StatefulKnowledgeSession obsoleteCheckKnowledgeSession) {
+ this.obsoleteCheckKnowledgeSession = obsoleteCheckKnowledgeSession;
+ }
public StatefulKnowledgeSession getScaleCheckKnowledgeSession() {
return scaleCheckKnowledgeSession;
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
index 1f17daa..85c71fd 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
@@ -47,8 +47,9 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
String serviceClusterID, String serviceId,
String autoscalePolicyId) {
super(serviceClusterID, serviceId, kubernetesClusterCtxt,
- new AutoscalerRuleEvaluator(
+ new AutoscalerRuleEvaluator(
StratosConstants.CONTAINER_MIN_CHECK_DROOL_FILE,
+ StratosConstants.CONTAINER_OBSOLETE_CHECK_DROOL_FILE,
StratosConstants.CONTAINER_SCALE_CHECK_DROOL_FILE),
autoscalePolicyId);
readConfigurations();
@@ -78,6 +79,7 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
@Override
protected void monitor() {
minCheck();
+ obsoleteCheck();
scaleCheck();
}
@@ -125,10 +127,23 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
getMinCheckKnowledgeSession(), minCheckFactHandle,
getKubernetesClusterCtxt());
}
+
+ private void obsoleteCheck() {
+ getMinCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
+ String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
+ if (log.isDebugEnabled()) {
+ log.debug(String.format(
+ "Running obsolete check for [kub-cluster] : %s [cluster] : %s ", kubernetesClusterID, getClusterId()));
+ }
+ obsoleteCheckFactHandle = AutoscalerRuleEvaluator.evaluateMinCheck(
+ getObsoleteCheckKnowledgeSession(), obsoleteCheckFactHandle,
+ getKubernetesClusterCtxt());
+ }
@Override
public void destroy() {
getMinCheckKnowledgeSession().dispose();
+ getObsoleteCheckKnowledgeSession().dispose();
getScaleCheckKnowledgeSession().dispose();
setDestroyed(true);
stopScheduler();
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
index 386197c..b9abc50 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
@@ -27,16 +27,15 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
import org.apache.stratos.autoscaler.PartitionContext;
-import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.policy.PolicyManager;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.autoscaler.util.ConfUtil;
import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.event.health.stat.AverageRequestsServingCapabilityEvent;
import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
/**
@@ -53,6 +52,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
super(clusterId, serviceId,
new AutoscalerRuleEvaluator(
StratosConstants.VM_MIN_CHECK_DROOL_FILE,
+ StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE,
StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
deploymentPolicy, autoscalePolicy,
new ConcurrentHashMap<String, NetworkPartitionContext>());
@@ -107,6 +107,9 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
AutoscalerRuleEvaluator.evaluateMinCheck(getMinCheckKnowledgeSession(),
minCheckFactHandle,
partitionContext);
+ obsoleteCheckFactHandle =
+ AutoscalerRuleEvaluator.evaluateObsoleteCheck(getObsoleteCheckKnowledgeSession(),
+ obsoleteCheckFactHandle, partitionContext);
// start only in the first partition context
break;
}
@@ -119,6 +122,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
@Override
public void destroy() {
getMinCheckKnowledgeSession().dispose();
+ getObsoleteCheckKnowledgeSession().dispose();
getMinCheckKnowledgeSession().dispose();
setDestroyed(true);
stopScheduler();
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
index e5e8fe4..4a4926b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
@@ -25,13 +25,12 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.PartitionContext;
-import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.autoscaler.util.ConfUtil;
@@ -42,7 +41,6 @@ import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.messaging.domain.applications.GroupStatus;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.event.health.stat.AverageRequestsServingCapabilityEvent;
/**
* Is responsible for monitoring a service cluster. This runs periodically
@@ -58,9 +56,10 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
public VMServiceClusterMonitor(String clusterId, String serviceId,
DeploymentPolicy deploymentPolicy,
AutoscalePolicy autoscalePolicy) {
- super(clusterId, serviceId,
- new AutoscalerRuleEvaluator(StratosConstants.VM_MIN_CHECK_DROOL_FILE,
- StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
+ super(clusterId, serviceId, new AutoscalerRuleEvaluator(
+ StratosConstants.VM_MIN_CHECK_DROOL_FILE,
+ StratosConstants.VM_OBSOLETE_CHECK_DROOL_FILE,
+ StratosConstants.VM_SCALE_CHECK_DROOL_FILE),
deploymentPolicy, autoscalePolicy,
new ConcurrentHashMap<String, NetworkPartitionContext>());
readConfigurations();
@@ -203,6 +202,9 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
minCheckFactHandle = AutoscalerRuleEvaluator.evaluateMinCheck(getMinCheckKnowledgeSession()
, minCheckFactHandle, partitionContext);
+
+ obsoleteCheckFactHandle = AutoscalerRuleEvaluator.evaluateObsoleteCheck(getObsoleteCheckKnowledgeSession(),
+ obsoleteCheckFactHandle, partitionContext);
//checking the status of the cluster
@@ -260,6 +262,7 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
@Override
public void destroy() {
getMinCheckKnowledgeSession().dispose();
+ getObsoleteCheckKnowledgeSession().dispose();
getScaleCheckKnowledgeSession().dispose();
setDestroyed(true);
stopScheduler();
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/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 4c32bd3..a66345a 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
@@ -46,44 +46,58 @@ public class AutoscalerRuleEvaluator {
private static final Log log = LogFactory.getLog(AutoscalerRuleEvaluator.class);
//vm drool files as default
- private String minCheckDroolFileName = "mincheck.drl";
- private String scaleCheckDroolFileName = "scaling.drl";
+ private String minCheckDroolFileName = StratosConstants.CONTAINER_MIN_CHECK_DROOL_FILE;
+ private String obsoleteCheckDroolFileName = StratosConstants.CONTAINER_OBSOLETE_CHECK_DROOL_FILE;
+ private String scaleCheckDroolFileName = StratosConstants.CONTAINER_SCALE_CHECK_DROOL_FILE;
private String terminateAllDroolFileName = "terminateall.drl";
private static KnowledgeBase minCheckKbase;
+ private static KnowledgeBase obsoleteCheckKbase;
private static KnowledgeBase scaleCheckKbase;
@SuppressWarnings("unused")
private static KnowledgeBase terminateAllKbase;
- public AutoscalerRuleEvaluator(String minCheckDroolFileName, String scaleCheckDroolFileName){
+ public AutoscalerRuleEvaluator(String minCheckDroolFileName, String obsoleteCheckDroolFileName, String scaleCheckDroolFileName){
- this.minCheckDroolFileName = minCheckDroolFileName;
- this.scaleCheckDroolFileName = scaleCheckDroolFileName;
+ if (minCheckDroolFileName != null && !minCheckDroolFileName.isEmpty()) {
+ this.minCheckDroolFileName = minCheckDroolFileName;
+ }
+
+ if (obsoleteCheckDroolFileName != null && !obsoleteCheckDroolFileName.isEmpty()) {
+ this.obsoleteCheckDroolFileName = obsoleteCheckDroolFileName;
+ }
+
+ if (scaleCheckDroolFileName != null && !scaleCheckDroolFileName.isEmpty()) {
+ this.scaleCheckDroolFileName = scaleCheckDroolFileName;
+ }
minCheckKbase = readKnowledgeBase(this.minCheckDroolFileName);
if (log.isDebugEnabled()) {
log.debug("Minimum check rule is parsed successfully : " + this.minCheckDroolFileName);
}
+
+ obsoleteCheckKbase = readKnowledgeBase(this.obsoleteCheckDroolFileName);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Obsolete check rule is parsed successfully : " + this.obsoleteCheckDroolFileName);
+ }
scaleCheckKbase = readKnowledgeBase(this.scaleCheckDroolFileName);
if (log.isDebugEnabled()) {
log.debug("Scale check rule is parsed successfully : " + this.scaleCheckDroolFileName);
}
+
terminateAllKbase = readKnowledgeBase(this.terminateAllDroolFileName);
if (log.isDebugEnabled()) {
log.debug("Terminate all rule is parsed successfully : " + this.terminateAllDroolFileName);
}
}
-
-
public static FactHandle evaluateMinCheck(StatefulKnowledgeSession ksession, FactHandle handle, Object obj) {
-
if (handle == null) {
-
ksession.setGlobal("$delegator", new RuleTasksDelegator());
handle = ksession.insert(obj);
} else {
@@ -95,13 +109,24 @@ public class AutoscalerRuleEvaluator {
}
return handle;
}
-
+
+ public static FactHandle evaluateObsoleteCheck(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("Obsolete check executed for : %s ", obj));
+ }
+ return handle;
+ }
public static FactHandle evaluateScaleCheck(StatefulKnowledgeSession ksession, FactHandle handle, Object obj) {
-
if (handle == null) {
ksession.setGlobal("$delegator", new RuleTasksDelegator());
-
handle = ksession.insert(obj);
} else {
ksession.update(handle, obj);
@@ -113,12 +138,8 @@ public class AutoscalerRuleEvaluator {
return handle;
}
-
-
public static FactHandle evaluateTerminateAll(StatefulKnowledgeSession ksession, FactHandle handle, Object obj) {
-
if (handle == null) {
-
ksession.setGlobal("$delegator", new RuleTasksDelegator());
handle = ksession.insert(obj);
} else {
@@ -131,13 +152,11 @@ public class AutoscalerRuleEvaluator {
return handle;
}
-
public static FactHandle evaluateTerminateDependency(StatefulKnowledgeSession ksession, FactHandle handle, Object obj) {
if(log.isDebugEnabled()){
log.debug(String.format("Terminate dependency check executing for : %s ", obj));
}
if (handle == null) {
-
ksession.setGlobal("$delegator", new RuleTasksDelegator());
handle = ksession.insert(obj);
} else {
@@ -153,20 +172,27 @@ public class AutoscalerRuleEvaluator {
return handle;
}
-
-
public StatefulKnowledgeSession getMinCheckStatefulSession() {
StatefulKnowledgeSession ksession;
ksession = minCheckKbase.newStatefulKnowledgeSession();
ksession.setGlobal("log", RuleLog.getInstance());
return ksession;
}
+
+ public StatefulKnowledgeSession getObsoleteCheckStatefulSession() {
+ StatefulKnowledgeSession ksession;
+ ksession = obsoleteCheckKbase.newStatefulKnowledgeSession();
+ ksession.setGlobal("log", RuleLog.getInstance());
+ return ksession;
+ }
+
public StatefulKnowledgeSession getScaleCheckStatefulSession() {
StatefulKnowledgeSession ksession;
ksession = scaleCheckKbase.newStatefulKnowledgeSession();
ksession.setGlobal("log", RuleLog.getInstance());
return ksession;
}
+
public StatefulKnowledgeSession getTerminateAllStatefulSession() {
StatefulKnowledgeSession ksession;
ksession = scaleCheckKbase.newStatefulKnowledgeSession();
@@ -196,7 +222,6 @@ public class AutoscalerRuleEvaluator {
}
private static KnowledgeBase readKnowledgeBase(String drlFileName) {
-
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
String configDir = CarbonUtils.getCarbonConfigDirPath();
String droolsDir = configDir + File.separator + StratosConstants.DROOLS_DIR_NAME;
@@ -213,7 +238,4 @@ public class AutoscalerRuleEvaluator {
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}
-
-
-
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
index 401e6c0..846f7a4 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
@@ -160,6 +160,8 @@ public class StratosConstants {
public static final String VM_SCALE_CHECK_DROOL_FILE = "scaling.drl";
public static final String CONTAINER_MIN_CHECK_DROOL_FILE = "container-mincheck.drl";
public static final String VM_MIN_CHECK_DROOL_FILE = "mincheck.drl";
+ public static final String CONTAINER_OBSOLETE_CHECK_DROOL_FILE = "obsoletecheck.drl";
+ public static final String VM_OBSOLETE_CHECK_DROOL_FILE = "container-obsoletecheck.drl";
// Policy and definition related constants
public static final int PUBLIC_DEFINITION = 0;
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/products/stratos/modules/distribution/src/main/conf/drools/container-mincheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/container-mincheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/container-mincheck.drl
index f87a556..688b9dc 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/container-mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/container-mincheck.drl
@@ -52,22 +52,3 @@ dialect "mvel"
$delegator.delegateStartContainers($kubernetesClusterContext);
}
end
-
-rule "Terminate Obsoleted Containers"
-dialect "mvel"
- when
- $kubernetesClusterContext : KubernetesClusterContext ()
- kubernetesClusterId : String() from $kubernetesClusterContext.getKubernetesClusterID()
- obsoleteReplicas : Integer() from $kubernetesClusterContext.getObsoletedMembers().size()
-
- eval(log.info("Running obsolete containers rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
- eval(log.info("[obsolete-check] " + "[cluster] : " + clusterId + " [Replicas] obsoleteReplicas : " + obsoleteReplicas))
- eval($kubernetesClusterContext.getObsoletedMembers().keySet().size() > 0)
- memberId : String() from $kubernetesClusterContext.getObsoletedMembers().keySet()
- eval(log.debug("[obsolete-check] [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId + " Member id : " + memberId))
- then
- log.info("[obsolete-check] Terminating the obsolete member with id : " + memberId + " in the cluster : " + clusterId);
- $delegator.delegateTerminateContainer($kubernetesClusterContext, memberId);
-end
-
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/products/stratos/modules/distribution/src/main/conf/drools/container-obsoletecheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/container-obsoletecheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/container-obsoletecheck.drl
new file mode 100644
index 0000000..6af208f
--- /dev/null
+++ b/products/stratos/modules/distribution/src/main/conf/drools/container-obsoletecheck.drl
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.autoscaler.rule;
+
+import org.apache.commons.logging.Log;
+import org.apache.stratos.autoscaler.KubernetesClusterContext;
+
+global org.apache.stratos.autoscaler.rule.RuleLog log;
+global org.apache.stratos.autoscaler.rule.RuleTasksDelegator $delegator;
+global java.lang.String clusterId;
+
+rule "Terminate Obsoleted Containers"
+dialect "mvel"
+ when
+ $kubernetesClusterContext : KubernetesClusterContext ()
+ kubernetesClusterId : String() from $kubernetesClusterContext.getKubernetesClusterID()
+ obsoleteReplicas : Integer() from $kubernetesClusterContext.getObsoletedMembers().size()
+
+ eval(log.info("Running obsolete containers rule [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId))
+ eval(log.info("[obsolete-check] " + "[cluster] : " + clusterId + " [Replicas] obsoleteReplicas : " + obsoleteReplicas))
+ eval($kubernetesClusterContext.getObsoletedMembers().keySet().size() > 0)
+ memberId : String() from $kubernetesClusterContext.getObsoletedMembers().keySet()
+ eval(log.debug("[obsolete-check] [kub-cluster] : " + kubernetesClusterId + " [cluster] : " + clusterId + " Member id : " + memberId))
+ then
+ log.info("[obsolete-check] Terminating the obsolete member with id : " + memberId + " in the cluster : " + clusterId);
+ $delegator.delegateTerminateContainer($kubernetesClusterContext, memberId);
+end
+
+
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/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 29cd987..96d7a09 100755
--- a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
@@ -67,17 +67,3 @@ dialect "mvel"
}
$delegator.delegateSpawn($ctxt, clusterId, lbRef, isPrimary);
end
-
-rule "Terminate Obsoleted Instances"
-dialect "mvel"
- when
- $ctxt : PartitionContext ()
- eval(log.debug("Running obsolete instances rule: [partition] " + $ctxt.getPartitionId() + " [network-partition] " + $ctxt.getNetworkPartitionId()))
- eval(log.debug("[obsolete-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() +" Obsolete member count: " + $ctxt.getObsoletedMembers().size()))
- eval($ctxt.getObsoletedMembers().keySet().size() > 0)
- memberId : String() from $ctxt.getObsoletedMembers().keySet()
- eval(log.debug("[obsolete-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Member id: " + memberId))
- then
- $delegator.terminateObsoleteInstance(memberId);
-end
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/80855b74/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
new file mode 100755
index 0000000..55f80cf
--- /dev/null
+++ b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.autoscaler.rule;
+
+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.policy.model.DeploymentPolicy;
+import org.apache.stratos.autoscaler.partition.PartitionGroup;
+import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
+
+global org.apache.stratos.autoscaler.rule.RuleLog log;
+global org.apache.stratos.autoscaler.policy.PolicyManager $manager;
+global org.apache.stratos.autoscaler.AutoscalerContext $context;
+global org.apache.stratos.autoscaler.rule.RuleTasksDelegator $delegator;
+global org.apache.stratos.messaging.domain.topology.Topology $topology;
+global java.util.Map partitionCtxts;
+global java.lang.String clusterId;
+global java.lang.String lbRef;
+global java.lang.Boolean isPrimary;
+global Integer primaryMemberCount;
+
+rule "Terminate Obsoleted Instances"
+dialect "mvel"
+ when
+ $ctxt : PartitionContext ()
+ eval(log.debug("Running obsolete instances rule: [partition] " + $ctxt.getPartitionId() + " [network-partition] " + $ctxt.getNetworkPartitionId()))
+ eval(log.debug("[obsolete-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() +" Obsolete member count: " + $ctxt.getObsoletedMembers().size()))
+ eval($ctxt.getObsoletedMembers().keySet().size() > 0)
+ memberId : String() from $ctxt.getObsoletedMembers().keySet()
+ eval(log.debug("[obsolete-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Member id: " + memberId))
+ then
+ $delegator.terminateObsoleteInstance(memberId);
+end
+
[2/2] git commit: Merge branch 'docker-grouping-merge' of
https://git-wip-us.apache.org/repos/asf/stratos into docker-grouping-merge
Posted by ra...@apache.org.
Merge branch 'docker-grouping-merge' of https://git-wip-us.apache.org/repos/asf/stratos into docker-grouping-merge
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/4d39532f
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/4d39532f
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/4d39532f
Branch: refs/heads/docker-grouping-merge
Commit: 4d39532f4625e8f18e4619255205a0d6324102c1
Parents: 80855b7 9af8798
Author: R-Rajkumar <rr...@gmail.com>
Authored: Wed Nov 5 14:05:33 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Wed Nov 5 14:05:33 2014 +0530
----------------------------------------------------------------------
.../monitor/cluster/ClusterMonitorFactory.java | 121 +++++++++----------
.../AverageServedRequestsEventFormatter.xml | 2 +-
.../src/main/conf/siddhi/siddhi.extension | 1 +
3 files changed, 62 insertions(+), 62 deletions(-)
----------------------------------------------------------------------