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 <[email protected]> Authored: Thu Dec 18 15:50:35 2014 +0530 Committer: reka <[email protected]> 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; }
