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

Reply via email to