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;
}