Updated Branches: refs/heads/master 30245882f -> b2ba8234c
fixing https://issues.apache.org/jira/browse/STRATOS-449 Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/b2ba8234 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/b2ba8234 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/b2ba8234 Branch: refs/heads/master Commit: b2ba8234ccfa64429bdb8526ba0f674229ec6d10 Parents: 3024588 Author: Nirmal Fernando <[email protected]> Authored: Fri Feb 14 15:57:17 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Fri Feb 14 15:57:17 2014 +0530 ---------------------------------------------------------------------- .../stratos/autoscaler/PartitionContext.java | 17 +++++++++++++++++ .../topology/AutoscalerTopologyReceiver.java | 20 +++++++++++++++----- 2 files changed, 32 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b2ba8234/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java index 63bdeaa..7fcfa93 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java @@ -166,6 +166,23 @@ public class PartitionContext implements Serializable{ this.pendingMembers.add(ctxt); } + public boolean removePendingMember(String id) { + if (id == null) { + return false; + } + + for (Iterator<MemberContext> iterator = pendingMembers.iterator(); iterator.hasNext();) { + MemberContext pendingMember = (MemberContext) iterator.next(); + if(id.equals(pendingMember.getMemberId())){ + iterator.remove(); + return true; + } + + } + + return false; + } + public void movePendingMemberToActiveMembers(String memberId) { if (memberId == null) { return; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b2ba8234/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java index be22bc7..0efa6e1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java @@ -236,14 +236,24 @@ public class AutoscalerTopologyReceiver implements Runnable { NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); PartitionContext partitionContext = networkPartitionContext.getPartitionCtxt(partitionId); - partitionContext.removeMemberStatsContext(e.getMemberId()); - if(!partitionContext.removeTerminationPendingMember(e.getMemberId())){ + String memberId = e.getMemberId(); + partitionContext.removeMemberStatsContext(memberId); + + if(partitionContext.removePendingMember(memberId)) { + if(log.isDebugEnabled()){ + log.debug(String.format("Member is removed from pending list: [member] %s", memberId)); + } + } + + if(!partitionContext.removeTerminationPendingMember(memberId)){ if(log.isDebugEnabled()){ - log.debug(String.format("Member is not available in termination pending list: [member] %s", e.getMemberId())); + log.debug(String.format("Member is not available in termination pending list: [member] %s", memberId)); } - } else if(log.isInfoEnabled()){ - log.info(String.format("Member stat context has been removed successfully: [member] %s", e.getMemberId())); + } + + if(log.isInfoEnabled()){ + log.info(String.format("Member stat context has been removed successfully: [member] %s", memberId)); } // partitionContext.decrementCurrentActiveMemberCount(1);
