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/12/02 11:07:44 UTC
[1/2] stratos git commit: Updating minimum check to run against
cluster instance and select partition
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 <la...@apache.org>
Authored: Tue Dec 2 15:37:07 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
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
[2/2] stratos git commit: Passing required parameters for minimum rule
Posted by la...@apache.org.
Passing required parameters for minimum rule
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/269cad9e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/269cad9e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/269cad9e
Branch: refs/heads/master
Commit: 269cad9e025a7bbdcf2e3c63e776436e85ef3b47
Parents: c378404
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 2 15:39:13 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 2 15:39:13 2014 +0530
----------------------------------------------------------------------
.../context/cluster/ClusterInstanceContext.java | 17 ++++++++++++++++-
.../context/cluster/VMClusterContext.java | 4 ++--
.../monitor/cluster/VMClusterMonitor.java | 6 +++---
3 files changed, 21 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/269cad9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
index 1f7ff85..f25e9b5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java
@@ -68,10 +68,13 @@ public class ClusterInstanceContext extends InstanceContext {
private int currentPartitionIndex;
private ChildLevelPartition[] partitions;
+ private String networkPartitionId;
+
public ClusterInstanceContext(String clusterInstanceId, String partitionAlgo, ChildLevelPartition[] partitions,
- int min) {
+ int min, String networkPartitionId) {
super(clusterInstanceId);
+ this.networkPartitionId = networkPartitionId;
this.setMinMembers(min);
if (partitions == null) {
this.partitions = new ChildLevelPartition[0];
@@ -146,7 +149,15 @@ public class ClusterInstanceContext extends InstanceContext {
}
return null;
}
+ public int getNonTerminatedMemberCount(){
+
+ int nonTerminatedMemberCount = 0;
+ for(ClusterLevelPartitionContext partitionContext : partitionCtxts){
+ nonTerminatedMemberCount += partitionContext.getNonTerminatedMemberCount();
+ }
+ return nonTerminatedMemberCount;
+ }
public int getMinInstanceCount() {
return minInstanceCount;
@@ -450,4 +461,8 @@ public class ClusterInstanceContext extends InstanceContext {
public void setMinMembers(int minMembers) {
this.minMembers = minMembers;
}
+
+ public String getNetworkPartitionId() {
+ return networkPartitionId;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/269cad9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
index 8cae493..3de6306 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java
@@ -199,7 +199,7 @@ public class VMClusterContext extends AbstractClusterContext {
if (clusterInstanceContext == null) {
clusterInstanceContext = new ClusterInstanceContext(instance.getInstanceId(),
networkPartition.getPartitionAlgo(),
- networkPartition.getChildLevelPartitions(), networkPartition.getMin());
+ networkPartition.getChildLevelPartitions(), networkPartition.getMin(), networkPartitionId);
}
for (ChildLevelPartition partition : networkPartition.getChildLevelPartitions()) {
@@ -287,7 +287,7 @@ public class VMClusterContext extends AbstractClusterContext {
if (clusterInstanceContext == null) {
clusterInstanceContext = new ClusterInstanceContext(clusterInstance.getInstanceId(),
networkPartition.getPartitionAlgo(),
- networkPartition.getChildLevelPartitions(), networkPartition.getMin());
+ networkPartition.getChildLevelPartitions(), networkPartition.getMin(), networkPartition.getId());
}
clusterInstanceContext.addPartitionCtxt(clusterLevelPartitionContext);
clusterLevelNetworkPartitionContext.addClusterInstanceContext(clusterInstanceContext);
http://git-wip-us.apache.org/repos/asf/stratos/blob/269cad9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 735ae4e..6ecffc9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -185,14 +185,14 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
for (ClusterLevelPartitionContext partitionContext : instanceContext.getPartitionCtxts()) {
- // get active primary members in this partition context
+ // get active primary members in this cluster instance context
for (MemberContext memberContext : partitionContext.getActiveMembers()) {
if (isPrimaryMember(memberContext)) {
primaryMemberListInClusterInstance.add(memberContext.getMemberId());
}
}
- // get pending primary members in this partition context
+ // get pending primary members in this cluster instance context
for (MemberContext memberContext : partitionContext.getPendingMembers()) {
if (isPrimaryMember(memberContext)) {
primaryMemberListInClusterInstance.add(memberContext.getMemberId());
@@ -202,7 +202,7 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
getMinCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
getMinCheckKnowledgeSession().setGlobal("isPrimary", hasPrimary);
- getMinCheckKnowledgeSession().setGlobal("instanceId", instanceContext.getId());
+ getMinCheckKnowledgeSession().setGlobal("algorithmName", networkPartitionContext.getPartitionAlgorithm());
if (log.isDebugEnabled()) {
log.debug(String.format("Running minimum check for cluster instance %s ",