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/18 11:20:45 UTC
stratos git commit: fixing group status verification issue
Repository: stratos
Updated Branches:
refs/heads/master 1c6642b46 -> 93243b8dd
fixing group status verification issue
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/93243b8d
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/93243b8d
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/93243b8d
Branch: refs/heads/master
Commit: 93243b8dd08b2099381f14351d1385dfbe421189
Parents: 1c6642b
Author: reka <rt...@gmail.com>
Authored: Thu Dec 18 15:50:35 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Dec 18 15:50:35 2014 +0530
----------------------------------------------------------------------
.../monitor/component/GroupMonitor.java | 36 ++++++++++++--------
1 file changed, 21 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/93243b8d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index a6c99ce..85b58d4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -50,10 +50,10 @@ import org.apache.stratos.messaging.domain.instance.Instance;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
-import java.util.*;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
/**
* This is GroupMonitor to monitor the group which consists of
@@ -702,7 +702,6 @@ public class GroupMonitor extends ParentComponentMonitor {
}
-
public boolean verifyGroupStatus(String childId, String instanceId, GroupStatus requiredStatus) {
Monitor monitor = this.getMonitor(childId);
List<String> groupInstances;
@@ -725,20 +724,27 @@ public class GroupMonitor extends ParentComponentMonitor {
if (childGroupInstance.getStatus() == requiredStatus) {
noOfInstancesOfRequiredStatus++;
}
+ }
- if (!groupInstances.isEmpty()) {
- GroupLevelNetworkPartitionContext networkPartitionContext =
- (GroupLevelNetworkPartitionContext) this.networkPartitionCtxts.
- get(networkPartitionId);
- int minInstances = networkPartitionContext.getMinInstanceCount();
- //if terminated all the instances in this instances map should be in terminated state
- if (noOfInstancesOfRequiredStatus == this.inactiveInstancesMap.size() &&
- requiredStatus == GroupStatus.Terminated) {
- return true;
- } else if (noOfInstancesOfRequiredStatus >= minInstances) {
+ if (!groupInstances.isEmpty()) {
+ GroupLevelNetworkPartitionContext networkPartitionContext =
+ (GroupLevelNetworkPartitionContext) this.networkPartitionCtxts.
+ get(networkPartitionId);
+ int minInstances = networkPartitionContext.getMinInstanceCount();
+ //if terminated all the instances in this instances map should be in terminated state
+ //if terminated all the instances in this instances map should be in terminated state
+ if (noOfInstancesOfRequiredStatus == this.inactiveInstancesMap.size() &&
+ requiredStatus == GroupStatus.Terminated) {
+ return true;
+ } else if (noOfInstancesOfRequiredStatus >= minInstances) {
+ return true;
+ } else {
+ //of only one is inActive implies that the whole group is Inactive
+ if (requiredStatus == GroupStatus.Inactive && noOfInstancesOfRequiredStatus >= 1) {
return true;
}
}
+
}
return false;
}