You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/04 16:17:37 UTC

[4/5] stratos git commit: improving status calculation of cluster

improving status calculation of cluster


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ef6f5286
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ef6f5286
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ef6f5286

Branch: refs/heads/master
Commit: ef6f5286a9c23662f1fb21f40c43657a0c858350
Parents: bf4d3c2
Author: reka <rt...@gmail.com>
Authored: Thu Dec 4 20:02:59 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Dec 4 20:03:10 2014 +0530

----------------------------------------------------------------------
 .../context/cluster/ClusterInstanceContext.java         |  8 ++++++++
 .../autoscaler/context/cluster/VMClusterContext.java    |  8 ++++----
 .../processor/cluster/ClusterStatusActiveProcessor.java | 10 ++++------
 .../cluster/ClusterStatusInActiveProcessor.java         | 12 +++++++-----
 4 files changed, 23 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ef6f5286/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 509ccfe..ab4bec3 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
@@ -438,4 +438,12 @@ public class ClusterInstanceContext extends InstanceContext {
         return networkPartitionId;
     }
 
+    public int getActiveMembers() {
+        int activeMembers = 0;
+        for(ClusterLevelPartitionContext partitionContext : this.partitionCtxts) {
+           activeMembers += partitionContext.getActiveInstanceCount();
+        }
+        return activeMembers;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ef6f5286/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 2cdef55..42639bd 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
@@ -240,16 +240,16 @@ public class VMClusterContext extends AbstractClusterContext {
 
         ClusterInstanceContext clusterInstanceContext = clusterLevelNetworkPartitionContext.
                                         getClusterInstanceContext(clusterInstance.getInstanceId());
-        int maxInstances = 2;
+        int maxInstances = 1;
         if (clusterInstanceContext == null) {
-            int minInstances = 2;
+            int minInstances = 1;
             ApplicationHolder.acquireReadLock();
             try {
                 Application application = ApplicationHolder.getApplications().
                         getApplication(cluster.getAppId());
                 ClusterDataHolder dataHolder = application.getClusterData(AutoscalerUtil.getAliasFromClusterId(clusterId));
-                //TODO minInstances = dataHolder.getMinInstances();
-                //maxInstances = dataHolder.getMaxInstances();
+                minInstances = dataHolder.getMinInstances();
+                maxInstances = dataHolder.getMaxInstances();
             } finally {
                 ApplicationHolder.releaseReadLock();
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ef6f5286/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
index 1967a4b..8e9d99c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java
@@ -70,16 +70,14 @@ public class ClusterStatusActiveProcessor extends ClusterStatusProcessor {
         for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getNetworkPartitionCtxts()) {
             //minimum check per partition
             ClusterInstanceContext instanceContext = clusterLevelNetworkPartitionContext.getClusterInstanceContext(instanceId);
-            for (ClusterLevelPartitionContext clusterMonitorPartitionContext : instanceContext.getPartitionCtxts()) {
-                if (clusterMonitorPartitionContext.getMinimumMemberCount() == clusterMonitorPartitionContext.getActiveMemberCount()) {
-                    clusterActive = true;
-                } else if (clusterMonitorPartitionContext.getActiveMemberCount() > clusterMonitorPartitionContext.getMinimumMemberCount()) {
-                    log.info("cluster already activated...");
+            if(instanceContext != null) {
+                if(instanceContext.getActiveMembers() >= instanceContext.getMaxInstanceCount()) {
                     clusterActive = true;
                 } else {
-                    return false;
+                    clusterActive = false;
                 }
             }
+
         }
         if(clusterActive) {
             if (log.isInfoEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/ef6f5286/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInActiveProcessor.java
index c0773a4..490f914 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInActiveProcessor.java
@@ -92,15 +92,17 @@ public class ClusterStatusInActiveProcessor extends ClusterStatusProcessor {
 
     private boolean getClusterInactive(String instanceId, VMClusterMonitor monitor) {
         boolean clusterInActive = false;
-        for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getAllNetworkPartitionCtxts().values()) {
-            ClusterInstanceContext instanceContext = clusterLevelNetworkPartitionContext.getClusterInstanceContext(instanceId);
-            for (ClusterLevelPartitionContext partition : instanceContext.getPartitionCtxts()) {
-                if (partition.getActiveMemberCount() <= partition.getMinimumMemberCount()) {
+        for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext :
+                monitor.getAllNetworkPartitionCtxts().values()) {
+            ClusterInstanceContext instanceContext = clusterLevelNetworkPartitionContext.
+                    getClusterInstanceContext(instanceId);
+            if(instanceContext != null) {
+                if(instanceContext.getActiveMembers() < instanceContext.getMaxInstanceCount()) {
                     clusterInActive = true;
-                    return clusterInActive;
                 }
             }
 
+
         }
         return clusterInActive;
     }