Updated Branches: refs/heads/master 9504cbb21 -> e64ada90c
fix invalid member in instance termination fixing STRATOS-249 Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/e64ada90 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/e64ada90 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/e64ada90 Branch: refs/heads/master Commit: e64ada90c2e936ca03e6f42c17a4bd396cb97f9a Parents: 9504cbb Author: Udara Liyanage <[email protected]> Authored: Fri Dec 6 15:26:31 2013 -0500 Committer: Udara Liyanage <[email protected]> Committed: Fri Dec 6 15:26:31 2013 -0500 ---------------------------------------------------------------------- .../receiver/health/HealthEventMessageDelegator.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e64ada90/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java index a5607c6..e16ea63 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java @@ -26,6 +26,7 @@ import org.apache.stratos.autoscaler.AutoscalerContext; import org.apache.stratos.autoscaler.ClusterContext; import org.apache.stratos.autoscaler.ClusterMonitor; import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.PartitionContext; import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; import org.apache.stratos.autoscaler.exception.SpawningException; import org.apache.stratos.autoscaler.exception.TerminationException; @@ -97,15 +98,21 @@ public class HealthEventMessageDelegator implements Runnable { } private void handleMemberfaultEvent(String memberId) { - try { + try { + + ClusterMonitor monitor = AutoscalerRuleEvaluator.getInstance().getMonitor(this.clusterId); + ClusterContext clusCtx = monitor.getClusterCtxt(); + + if(!clusCtx.memberExist(memberId)){ + // member has already terminated. So no action required + return; + } + // terminate the faulty member CloudControllerClient ccClient = CloudControllerClient.getInstance(); ccClient.terminate(memberId); // start a new member in the same Partition - ClusterMonitor monitor = AutoscalerRuleEvaluator.getInstance().getMonitor(this.clusterId); - ClusterContext clusCtx = monitor.getClusterCtxt(); - //ClusterContext clsCtx = AutoscalerContext.getInstance().getClusterContext(clusterId); String partitionId = clusCtx.getPartitonOfMember(memberId); Partition partition = clusCtx.getDeploymentPolicy().getPartitionById(partitionId);
