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 ",