You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/12/04 16:40:07 UTC
stratos git commit: Fixing terminate all and handleClusterStatusEvent
handler to use instance id
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 <la...@apache.org>
Authored: Thu Dec 4 21:11:43 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
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);
}