Repository: stratos
Updated Branches:
  refs/heads/master 73202bcec -> e40d36d13


Fixing terminate all and handleClusterStatusEvent handler to use instance id


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e40d36d1
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e40d36d1
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e40d36d1

Branch: refs/heads/master
Commit: e40d36d1378a7a3447f78a0836b01b8a29d7a0f0
Parents: 73202bc
Author: Lahiru Sandaruwan <[email protected]>
Authored: Thu Dec 4 21:11:43 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Thu Dec 4 21:11:43 2014 +0530

----------------------------------------------------------------------
 .../AutoscalerTopologyEventReceiver.java        |  5 +-
 .../monitor/cluster/AbstractClusterMonitor.java |  6 +--
 .../cluster/KubernetesClusterMonitor.java       |  2 +-
 .../KubernetesServiceClusterMonitor.java        |  5 ++
 .../monitor/cluster/VMClusterMonitor.java       | 56 ++++++++++----------
 .../builder/MonitorStatusEventBuilder.java      |  5 +-
 6 files changed, 42 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 50f2430..3d5aa7f 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -257,13 +257,14 @@ public class AutoscalerTopologyEventReceiver {
                     return;
                 }
                 //changing the status in the monitor, will notify its parent 
monitor
-                if (monitor.getStatus() == ClusterStatus.Active) {
+                ClusterInstance clusterInstance = 
(ClusterInstance)monitor.getInstance(instanceId);
+                if (clusterInstance.getTransitionedStates().pop() == 
ClusterStatus.Active) {
                     // terminated gracefully
                     monitor.setStatus(ClusterStatus.Terminating, instanceId);
                     
InstanceNotificationPublisher.sendInstanceCleanupEventForCluster(clusterId, 
instanceId);
                 } else {
                     monitor.setStatus(ClusterStatus.Terminating, instanceId);
-                    monitor.terminateAllMembers();
+                    monitor.terminateAllMembers(instanceId, 
clusterInstance.getNetworkPartitionId());
                 }
                 
ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain().
                         process("", clusterId, instanceId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
index b094a12..77fdbc9 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
@@ -214,7 +214,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
 
     public void setStatus(ClusterStatus status, String instanceId) {
 
-        this.clusterContext.getClusterInstance(instanceId).setStatus(status);
+//        this.clusterContext.getClusterInstance(instanceId).setStatus(status);
         /**
          * notifying the parent monitor about the state change
          * If the cluster in_active and if it is a in_dependent cluster,
@@ -230,7 +230,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
                         "since it is in Terminating State");
 */
         } else {
-            MonitorStatusEventBuilder.handleClusterStatusEvent(this.parent, 
status, this.clusterId);
+            MonitorStatusEventBuilder.handleClusterStatusEvent(this.parent, 
status, this.clusterId, instanceId);
         }
 
 
@@ -374,7 +374,7 @@ public abstract class AbstractClusterMonitor extends 
Monitor implements Runnable
         return instanceIdToClusterContextMap.get(instanceId);
     }*/
 
-    public abstract void terminateAllMembers();
+    public abstract void terminateAllMembers(String instanceId, String 
networkPartitionId);
 
     public boolean isStop() {
         return stop;

http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
index 8297e55..b5d6da3 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
@@ -506,7 +506,7 @@ public abstract class KubernetesClusterMonitor extends 
AbstractClusterMonitor {
     }
 
     @Override
-    public void terminateAllMembers() {
+    public void terminateAllMembers(String instanceId, String 
networkPartitionId) {
         try {
             
CloudControllerClient.getInstance().terminateAllContainers(getKubernetesClusterCtxt().getClusterId());
         } catch (TerminationException e) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
index e744cb8..edcaa65 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
@@ -218,6 +218,11 @@ public final class KubernetesServiceClusterMonitor extends 
KubernetesClusterMoni
     }
 
     @Override
+    public void terminateAllMembers(String instanceId, String 
networkPartitionId) {
+
+    }
+
+    @Override
     public void onChildScalingEvent(MonitorScalingEvent scalingEvent) {
 
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 7e86601..2d086f6 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -973,44 +973,42 @@ public class VMClusterMonitor extends 
AbstractClusterMonitor {
     }
 
     @Override
-    public void terminateAllMembers() {
+    public void terminateAllMembers(final String instanceId, final String 
networkPartitionId) {
 
         Thread memberTerminator = new Thread(new Runnable() {
             public void run() {
 
-                for (ClusterLevelNetworkPartitionContext 
networkPartitionContext : getAllNetworkPartitionCtxts().values()) {
-                    for (ClusterInstanceContext instanceContext : 
networkPartitionContext.getClusterInstanceContextMap().values()) {
-                        for (ClusterLevelPartitionContext partitionContext : 
instanceContext.getPartitionCtxts()) {
-                            //if (log.isDebugEnabled()) {
-                            log.info("Starting to terminate all members in 
cluster [" + getClusterId() + "] Network Partition [ " +
-                                    networkPartitionContext.getId() + " ], 
Partition [ " +
-                                    partitionContext.getPartitionId() + " ]");
-                            // }
-                            // need to terminate active, pending and obsolete 
members
-
-                            // active members
-                            for (MemberContext activeMemberCtxt : 
partitionContext.getActiveMembers()) {
-                                log.info("Terminating active member [member 
id] " + activeMemberCtxt.getMemberId());
-                                
terminateMember(activeMemberCtxt.getMemberId());
-                            }
+                ClusterInstanceContext instanceContext = 
getAllNetworkPartitionCtxts().get(networkPartitionId)
+                        .getClusterInstanceContext(instanceId);
+
+                for (ClusterLevelPartitionContext partitionContext : 
instanceContext.getPartitionCtxts()) {
+                    //if (log.isDebugEnabled()) {
+                    log.info("Starting to terminate all members in cluster [" 
+ getClusterId() + "] Network Partition [ " +
+                            instanceContext.getNetworkPartitionId() + " ], 
Partition [ " +
+                            partitionContext.getPartitionId() + " ]");
+                    // }
+                    // need to terminate active, pending and obsolete members
+
+                    // active members
+                    for (MemberContext activeMemberCtxt : 
partitionContext.getActiveMembers()) {
+                        log.info("Terminating active member [member id] " + 
activeMemberCtxt.getMemberId());
+                        terminateMember(activeMemberCtxt.getMemberId());
+                    }
 
-                            // pending members
-                            for (MemberContext pendingMemberCtxt : 
partitionContext.getPendingMembers()) {
-                                log.info("Terminating pending member [member 
id] " + pendingMemberCtxt.getMemberId());
-                                
terminateMember(pendingMemberCtxt.getMemberId());
-                            }
+                    // pending members
+                    for (MemberContext pendingMemberCtxt : 
partitionContext.getPendingMembers()) {
+                        log.info("Terminating pending member [member id] " + 
pendingMemberCtxt.getMemberId());
+                        terminateMember(pendingMemberCtxt.getMemberId());
+                    }
 
-                            // obsolete members
-                            for (String obsoleteMemberId : 
partitionContext.getObsoletedMembers().keySet()) {
-                                log.info("Terminating obsolete member [member 
id] " + obsoleteMemberId);
-                                terminateMember(obsoleteMemberId);
-                            }
+                    // obsolete members
+                    for (String obsoleteMemberId : 
partitionContext.getObsoletedMembers().keySet()) {
+                        log.info("Terminating obsolete member [member id] " + 
obsoleteMemberId);
+                        terminateMember(obsoleteMemberId);
+                    }
 
 //                terminateAllFactHandle = 
AutoscalerRuleEvaluator.evaluateTerminateAll
 //                        (terminateAllKnowledgeSession, 
terminateAllFactHandle, partitionContext);
-                        }
-                    }
-
                 }
             }
         }, "Member Terminator - [cluster id] " + getClusterId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/e40d36d1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
index c2491a0..7c6208f 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
@@ -34,8 +34,9 @@ import 
org.apache.stratos.messaging.domain.applications.GroupStatus;
 public class MonitorStatusEventBuilder {
     private static final Log log = 
LogFactory.getLog(MonitorStatusEventBuilder.class);
 
-    public static void handleClusterStatusEvent(ParentComponentMonitor parent, 
ClusterStatus status, String clusterId) {
-        ClusterStatusEvent clusterStatusEvent = new ClusterStatusEvent(status, 
clusterId, null);
+    public static void handleClusterStatusEvent(ParentComponentMonitor parent, 
ClusterStatus status, String clusterId,
+                                                String instanceId) {
+        ClusterStatusEvent clusterStatusEvent = new ClusterStatusEvent(status, 
clusterId, instanceId);
         notifyParent(parent, clusterStatusEvent);
     }
 

Reply via email to