You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/11/03 10:52:25 UTC
[1/3] fixing AS issues due to merging
Repository: stratos
Updated Branches:
refs/heads/docker-grouping-merge 71e8ac293 -> 21ed21233
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/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 f043f51..fa9736e 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
@@ -22,17 +22,17 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
-import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher;
import org.apache.stratos.autoscaler.monitor.Monitor;
+import org.apache.stratos.autoscaler.monitor.MonitorStatusEventBuilder;
import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
import org.apache.stratos.autoscaler.monitor.events.MonitorTerminateAllEvent;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
-import org.apache.stratos.messaging.domain.topology.ApplicationStatus;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.domain.topology.GroupStatus;
import org.apache.stratos.messaging.event.health.stat.AverageLoadAverageEvent;
import org.apache.stratos.messaging.event.health.stat.AverageMemoryConsumptionEvent;
import org.apache.stratos.messaging.event.health.stat.AverageRequestsInFlightEvent;
@@ -62,10 +62,13 @@ import org.drools.runtime.rule.FactHandle;
* Every cluster monitor, which are monitoring a cluster, should extend this class.
*/
public abstract class AbstractClusterMonitor extends Monitor implements Runnable {
+
+ private static final Log log = LogFactory.getLog(AbstractClusterMonitor.class);
private String clusterId;
private String serviceId;
- protected ClusterStatus status;
+ private String appId;
+ private ClusterStatus status;
private int monitoringIntervalMilliseconds;
protected FactHandle minCheckFactHandle;
@@ -76,6 +79,7 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
private AutoscalerRuleEvaluator autoscalerRuleEvaluator;
protected boolean hasFaultyMember = false;
+ protected boolean stop = false;
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@@ -88,6 +92,7 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
this.autoscalerRuleEvaluator = autoscalerRuleEvaluator;
this.scaleCheckKnowledgeSession = autoscalerRuleEvaluator.getScaleCheckStatefulSession();
this.minCheckKnowledgeSession = autoscalerRuleEvaluator.getMinCheckStatefulSession();
+ this.status = ClusterStatus.Created;
}
protected abstract void readConfigurations();
@@ -178,14 +183,35 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
this.clusterId = clusterId;
}
- public void setStatus(ClusterStatus status) {
- this.status = status;
- }
-
public ClusterStatus getStatus() {
return status;
}
+ public void setStatus(ClusterStatus status) {
+
+ //if(this.status != status) {
+ this.status = status;
+ /**
+ * notifying the parent monitor about the state change
+ * If the cluster in_active and if it is a in_dependent cluster,
+ * then won't send the notification to parent.
+ */
+ if (status == ClusterStatus.Inactive && !this.hasDependent) {
+ log.info("[Cluster] " + clusterId + "is not notifying the parent, " +
+ "since it is identified as the independent unit");
+
+ } else if (status == ClusterStatus.Terminating) {
+ // notify parent
+ log.info("[Cluster] " + clusterId + " is not notifying the parent, " +
+ "since it is in Terminating State");
+
+ } else {
+ MonitorStatusEventBuilder.handleClusterStatusEvent(this.parent, this.status, this.clusterId);
+ }
+ //}
+
+ }
+
public String getServiceId() {
return serviceId;
}
@@ -252,15 +278,19 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
AutoscalerRuleEvaluator autoscalerRuleEvaluator) {
this.autoscalerRuleEvaluator = autoscalerRuleEvaluator;
}
+
+ public String getAppId() {
+ return this.appId;
+ }
@Override
public void onParentEvent(MonitorStatusEvent statusEvent) {
// send the ClusterTerminating event
- if (statusEvent.getStatus() == GroupStatus.Terminating || statusEvent.getStatus() ==
- ApplicationStatus.Terminating) {
- StatusEventPublisher.sendClusterTerminatingEvent(appId, serviceId, clusterId);
- }
+// if (statusEvent.getStatus() == GroupStatus.Terminating || statusEvent.getStatus() ==
+// ApplicationStatus.Terminating) {
+// StatusEventPublisher.sendClusterTerminatingEvent(appId, serviceId, clusterId);
+// }
}
@Override
@@ -287,4 +317,12 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
}
public abstract void terminateAllMembers();
+
+ public boolean isStop() {
+ return stop;
+ }
+
+ public void setStop(boolean stop) {
+ this.stop = stop;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/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 2615651..1f17daa 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
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.autoscaler.monitor.cluster;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.configuration.XMLConfiguration;
@@ -33,8 +34,6 @@ import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import edu.emory.mathcs.backport.java.util.Arrays;
-
/*
* It is monitoring a kubernetes service cluster periodically.
*/
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/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 3365503..19d3704 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
@@ -27,11 +27,13 @@ import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
import org.apache.stratos.autoscaler.exception.TerminationException;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.status.checker.StatusChecker;
import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
+import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Member;
import org.apache.stratos.messaging.domain.topology.Service;
@@ -552,6 +554,11 @@ abstract public class VMClusterMonitor extends AbstractClusterMonitor {
ClusterRemovedEvent clusterRemovedEvent) {
}
+
+ @Override
+ public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
+
+ }
private String getNetworkPartitionIdByMemberId(String memberId) {
for (Service service : TopologyManager.getTopology().getServices()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
index 8a0959c..3c82bdd 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMLbClusterMonitor.java
@@ -28,14 +28,12 @@ import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.policy.PolicyManager;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.autoscaler.util.ConfUtil;
-import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
@@ -68,7 +66,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
log.debug("Cluster monitor is running.. " + this.toString());
}
try {
- if (!ClusterStatus.Inactive.equals(status)) {
+ if (!ClusterStatus.Inactive.equals(getStatus())) {
monitor();
} else {
if (log.isDebugEnabled()) {
@@ -173,9 +171,4 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
return "VMLbClusterMonitor [clusterId=" + getClusterId() + ", serviceId=" + getServiceId() + "]";
}
- @Override
- public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
- // TODO
-
- }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
index dc97dc7..cc351de 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMServiceClusterMonitor.java
@@ -28,10 +28,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
-import org.apache.stratos.autoscaler.exception.TerminationException;
import org.apache.stratos.autoscaler.grouping.topic.ClusterStatusEventPublisher;
-import org.apache.stratos.autoscaler.monitor.AbstractClusterMonitor;
import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
@@ -40,10 +37,10 @@ import org.apache.stratos.autoscaler.util.ConfUtil;
import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
-import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.common.constants.StratosConstants;
-import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.messaging.domain.applications.GroupStatus;
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
/**
* Is responsible for monitoring a service cluster. This runs periodically
@@ -66,22 +63,23 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
new ConcurrentHashMap<String, NetworkPartitionContext>());
readConfigurations();
}
-
- private static void terminateMember(String memberId) {
- try {
- CloudControllerClient.getInstance().terminate(memberId);
-
- } catch (TerminationException e) {
- log.error("Unable to terminate member [member id ] " + memberId, e);
- }
- }
+
+//TODO why this method?
+// private static void terminateMember(String memberId) {
+// try {
+// CloudControllerClient.getInstance().terminate(memberId);
+//
+// } catch (TerminationException e) {
+// log.error("Unable to terminate member [member id ] " + memberId, e);
+// }
+// }
@Override
public void run() {
while (!isDestroyed()) {
try {
- if ((this.status.getCode() <= ClusterStatus.Active.getCode()) ||
- (this.status == ClusterStatus.Inactive && !hasDependent) ||
+ if ((getStatus().getCode() <= ClusterStatus.Active.getCode()) ||
+ (getStatus() == ClusterStatus.Inactive && !hasDependent) ||
!this.hasFaultyMember) {
if (log.isDebugEnabled()) {
log.debug("Cluster monitor is running.. " + this.toString());
@@ -97,56 +95,57 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
log.error("Cluster monitor: Monitor failed." + this.toString(), e);
}
try {
- Thread.sleep(monitorInterval);
+ Thread.sleep(getMonitorIntervalMilliseconds());
} catch (InterruptedException ignore) {
}
}
}
-
- @Override
- public void terminateAllMembers() {
-
- Thread memberTerminator = new Thread(new Runnable() {
- public void run() {
-
- for (NetworkPartitionContext networkPartitionContext : networkPartitionCtxts.values()) {
- for (PartitionContext partitionContext : networkPartitionContext.getPartitionCtxts().values()) {
- //if (log.isDebugEnabled()) {
- log.info("Starting to terminate all members in 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());
- }
-
- // 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()) {
- log.info("Terminating obsolete member [member id] " + obsoleteMemberId);
- terminateMember(obsoleteMemberId);
- }
-
-// terminateAllFactHandle = AutoscalerRuleEvaluator.evaluateTerminateAll
-// (terminateAllKnowledgeSession, terminateAllFactHandle, partitionContext);
- }
- }
- }
- }, "Member Terminator - [cluster id] " + this.clusterId);
-
- memberTerminator.start();
- }
+
+//TODO why this method?
+// @Override
+// public void terminateAllMembers() {
+//
+// Thread memberTerminator = new Thread(new Runnable() {
+// public void run() {
+//
+// for (NetworkPartitionContext networkPartitionContext : networkPartitionCtxts.values()) {
+// for (PartitionContext partitionContext : networkPartitionContext.getPartitionCtxts().values()) {
+// //if (log.isDebugEnabled()) {
+// log.info("Starting to terminate all members in 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());
+// }
+//
+// // 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()) {
+// log.info("Terminating obsolete member [member id] " + obsoleteMemberId);
+// terminateMember(obsoleteMemberId);
+// }
+//
+//// terminateAllFactHandle = AutoscalerRuleEvaluator.evaluateTerminateAll
+//// (terminateAllKnowledgeSession, terminateAllFactHandle, partitionContext);
+// }
+// }
+// }
+// }, "Member Terminator - [cluster id] " + this.clusterId);
+//
+// memberTerminator.start();
+// }
private boolean isPrimaryMember(MemberContext memberContext) {
Properties props = memberContext.getProperties();
@@ -191,16 +190,16 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
}
}
primaryMemberListInNetworkPartition.addAll(primaryMemberListInPartition);
- minCheckKnowledgeSession.setGlobal("clusterId", clusterId);
- minCheckKnowledgeSession.setGlobal("lbRef", lbReferenceType);
- minCheckKnowledgeSession.setGlobal("isPrimary", hasPrimary);
+ getMinCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
+ getMinCheckKnowledgeSession().setGlobal("lbRef", lbReferenceType);
+ getMinCheckKnowledgeSession().setGlobal("isPrimary", hasPrimary);
if (log.isDebugEnabled()) {
log.debug(String.format("Running minimum check for partition %s ", partitionContext.getPartitionId()));
}
- minCheckFactHandle = AutoscalerRuleEvaluator.evaluateMinCheck(minCheckKnowledgeSession
+ minCheckFactHandle = AutoscalerRuleEvaluator.evaluateMinCheck(getMinCheckKnowledgeSession()
, minCheckFactHandle, partitionContext);
//checking the status of the cluster
@@ -246,25 +245,6 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
}
}
- private boolean isPrimaryMember(MemberContext memberContext) {
- Properties props = memberContext.getProperties();
- if (log.isDebugEnabled()) {
- log.debug(" Properties [" + props + "] ");
- }
- if (props != null && props.getProperties() != null) {
- for (Property prop : props.getProperties()) {
- if (prop.getName().equals("PRIMARY")) {
- if (Boolean.parseBoolean(prop.getValue())) {
- log.debug("Adding member id [" + memberContext.getMemberId() + "] " +
- "member instance id [" + memberContext.getInstanceId() + "] as a primary member");
- return true;
- }
- }
- }
- }
- return false;
- }
-
@Override
protected void readConfigurations() {
XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
@@ -320,7 +300,7 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
// send the ClusterTerminating event
if (statusEvent.getStatus() == GroupStatus.Terminating || statusEvent.getStatus() ==
ApplicationStatus.Terminating) {
- ClusterStatusEventPublisher.sendClusterTerminatingEvent(appId, serviceId, clusterId);
+ ClusterStatusEventPublisher.sendClusterTerminatingEvent(getAppId(), getServiceId(), getClusterId());
}
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java
index d828309..1b9d44d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/checker/StatusChecker.java
@@ -18,24 +18,28 @@
*/
package org.apache.stratos.autoscaler.status.checker;
+import java.util.Map;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.AutoscalerContext;
import org.apache.stratos.autoscaler.NetworkPartitionContext;
import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
-import org.apache.stratos.autoscaler.applications.topic.ApplicationsEventPublisher;
import org.apache.stratos.autoscaler.grouping.topic.ClusterStatusEventPublisher;
-import org.apache.stratos.autoscaler.monitor.AbstractClusterMonitor;
-import org.apache.stratos.messaging.domain.applications.*;
-import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher;
import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
-import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.domain.applications.Application;
+import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
+import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
+import org.apache.stratos.messaging.domain.applications.Group;
+import org.apache.stratos.messaging.domain.applications.GroupStatus;
+import org.apache.stratos.messaging.domain.applications.ParentComponent;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+import org.apache.stratos.messaging.domain.topology.Service;
import org.apache.stratos.messaging.message.receiver.applications.ApplicationManager;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import java.util.Map;
-
/**
* This will be used to evaluate the status of a group
* and notify the interested parties about the status changes.
[2/3] git commit: fixing AS issues due to merging
Posted by ra...@apache.org.
fixing AS issues due to merging
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8b66cbac
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8b66cbac
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8b66cbac
Branch: refs/heads/docker-grouping-merge
Commit: 8b66cbaca6ad51b6ac8f669d82ac188062c7c723
Parents: fb80e2c
Author: R-Rajkumar <rr...@gmail.com>
Authored: Mon Nov 3 15:21:21 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Mon Nov 3 15:21:21 2014 +0530
----------------------------------------------------------------------
.../stratos/autoscaler/AutoscalerContext.java | 5 +-
.../applications/ClusterInformation.java | 2 +-
.../applications/MTClusterInformation.java | 2 +-
.../applications/STClusterInformation.java | 2 +-
.../parser/DefaultApplicationParser.java | 69 +-
.../applications/pojo/ApplicationContext.java | 12 -
.../applications/topic/ApplicationBuilder.java | 2 +-
.../interfaces/AutoScalerServiceInterface.java | 1 -
.../AutoscalerTopologyEventReceiver.java | 770 ++++---------------
.../monitor/AbstractClusterMonitor.java | 277 -------
.../monitor/ParentComponentMonitor.java | 2 +
.../application/ApplicationMonitorFactory.java | 32 +-
.../monitor/cluster/AbstractClusterMonitor.java | 62 +-
.../KubernetesServiceClusterMonitor.java | 3 +-
.../monitor/cluster/VMClusterMonitor.java | 7 +
.../monitor/cluster/VMLbClusterMonitor.java | 9 +-
.../cluster/VMServiceClusterMonitor.java | 148 ++--
.../status/checker/StatusChecker.java | 18 +-
18 files changed, 331 insertions(+), 1092 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
index e8553bc..88ff3cf 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
@@ -23,17 +23,14 @@ package org.apache.stratos.autoscaler;
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor;
+import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
/**
* It holds all cluster monitors which are active in stratos.
*/
public class AutoscalerContext {
- private static final Log log = LogFactory.getLog(AutoscalerContext.class);
private static final AutoscalerContext INSTANCE = new AutoscalerContext();
// Map<ClusterId, AbstractClusterMonitor>
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
index 5fd6d57..e87b13b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.stratos.cloud.controller.application;
+package org.apache.stratos.autoscaler.applications;
public interface ClusterInformation {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
index a0a59d4..36185f9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
@@ -19,7 +19,7 @@
package org.apache.stratos.autoscaler.applications;
-import org.apache.stratos.cloud.controller.application.ClusterInformation;
+import org.apache.stratos.autoscaler.applications.ClusterInformation;
public class MTClusterInformation implements ClusterInformation {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/STClusterInformation.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/STClusterInformation.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/STClusterInformation.java
index 9a5bea8..f288233 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/STClusterInformation.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/STClusterInformation.java
@@ -19,7 +19,7 @@
package org.apache.stratos.autoscaler.applications;
-import org.apache.stratos.cloud.controller.application.ClusterInformation;
+import org.apache.stratos.autoscaler.applications.ClusterInformation;
public class STClusterInformation implements ClusterInformation {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index 16a14de..ce68f8a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -17,41 +17,40 @@
* under the License.
*/
-package org.apache.stratos.cloud.controller.application.parser;
+package org.apache.stratos.autoscaler.applications.parser;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.applications.ApplicationUtils;
+import org.apache.stratos.autoscaler.applications.ClusterInformation;
import org.apache.stratos.autoscaler.applications.MTClusterInformation;
import org.apache.stratos.autoscaler.applications.STClusterInformation;
-import org.apache.stratos.autoscaler.applications.pojo.*;
+import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext;
+import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext;
+import org.apache.stratos.autoscaler.applications.pojo.GroupContext;
+import org.apache.stratos.autoscaler.applications.pojo.SubscribableContext;
+import org.apache.stratos.autoscaler.applications.pojo.SubscribableInfoContext;
import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
import org.apache.stratos.autoscaler.exception.ApplicationDefinitionException;
import org.apache.stratos.autoscaler.exception.CartridgeInformationException;
import org.apache.stratos.autoscaler.pojo.ServiceGroup;
import org.apache.stratos.autoscaler.registry.RegistryManager;
-import org.apache.stratos.cloud.controller.application.ClusterInformation;
-import org.apache.stratos.cloud.controller.application.MTClusterInformation;
-import org.apache.stratos.cloud.controller.application.STClusterInformation;
-import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException;
-import org.apache.stratos.cloud.controller.interfaces.ApplicationParser;
-import org.apache.stratos.cloud.controller.pojo.*;
-import org.apache.stratos.cloud.controller.pojo.Cartridge;
-import org.apache.stratos.cloud.controller.pojo.Properties;
-import org.apache.stratos.cloud.controller.pojo.application.*;
-import org.apache.stratos.cloud.controller.pojo.payload.MetaDataHolder;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.apache.stratos.common.constants.StratosConstants;
-import org.apache.stratos.messaging.domain.topology.*;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
import org.apache.stratos.messaging.domain.applications.Application;
import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
import org.apache.stratos.messaging.domain.applications.DependencyOrder;
import org.apache.stratos.messaging.domain.applications.Group;
-import java.util.*;
-
/**
* Default implementation of the Application Parser. One Application should be processed by one
* instance of the DefaultApplicationParser.
@@ -123,11 +122,6 @@ public class DefaultApplicationParser implements ApplicationParser {
return applicationClusterContexts;
}
- @Override
- public Set<MetaDataHolder> getPayloadData() throws ApplicationDefinitionException {
- return metaDataHolders;
- }
-
/**
* Extract Group information from Application Definition
*
@@ -273,7 +267,7 @@ public class DefaultApplicationParser implements ApplicationParser {
if (appCtxt.getComponents().getSubscribableContexts() != null) {
clusterDataMap = parseLeafLevelSubscriptions(appCtxt.getApplicationId(), appCtxt.getTenantId(),
application.getKey(), null, Arrays.asList(appCtxt.getComponents().getSubscribableContexts()),
- subscribableInfoCtxts, appCtxt.getProperties());
+ subscribableInfoCtxts);
application.setClusterData(clusterDataMap);
//clusters.addAll(clusterDataHolder.getApplicationClusterContexts());
}
@@ -282,7 +276,7 @@ public class DefaultApplicationParser implements ApplicationParser {
if (appCtxt.getComponents().getGroupContexts() != null) {
application.setGroups(parseGroups(appCtxt.getApplicationId(), appCtxt.getTenantId(),
application.getKey(), Arrays.asList(appCtxt.getComponents().getGroupContexts()),
- subscribableInfoCtxts, definedGroupCtxts, appCtxt.getProperties()));
+ subscribableInfoCtxts, definedGroupCtxts));
}
// get top level Dependency definitions
@@ -347,13 +341,13 @@ public class DefaultApplicationParser implements ApplicationParser {
*/
private Map<String, Group> parseGroups (String appId, int tenantId, String key, List<GroupContext> groupCtxts,
Map<String, SubscribableInfoContext> subscribableInformation,
- Map<String, GroupContext> definedGroupCtxts, Properties properties)
+ Map<String, GroupContext> definedGroupCtxts)
throws ApplicationDefinitionException {
Map<String, Group> groupAliasToGroup = new HashMap<String, Group>();
for (GroupContext groupCtxt : groupCtxts) {
- Group group = parseGroup(appId, tenantId, key, groupCtxt, subscribableInformation, definedGroupCtxts, properties);
+ Group group = parseGroup(appId, tenantId, key, groupCtxt, subscribableInformation, definedGroupCtxts);
groupAliasToGroup.put(group.getAlias(), group);
}
@@ -424,7 +418,7 @@ public class DefaultApplicationParser implements ApplicationParser {
*/
private Group parseGroup (String appId, int tenantId, String key, GroupContext groupCtxt,
Map<String, SubscribableInfoContext> subscribableInfoCtxts,
- Map<String, GroupContext> definedGroupCtxts, Properties properties)
+ Map<String, GroupContext> definedGroupCtxts)
throws ApplicationDefinitionException {
// check if are in the defined Group set
@@ -452,7 +446,7 @@ public class DefaultApplicationParser implements ApplicationParser {
// get group level Subscribables
if (groupCtxt.getSubscribableContexts() != null) {
clusterDataMap = parseLeafLevelSubscriptions(appId, tenantId, key, groupCtxt.getName(),
- Arrays.asList(groupCtxt.getSubscribableContexts()), subscribableInfoCtxts, properties);
+ Arrays.asList(groupCtxt.getSubscribableContexts()), subscribableInfoCtxts);
group.setClusterData(clusterDataMap);
}
@@ -465,7 +459,7 @@ public class DefaultApplicationParser implements ApplicationParser {
subGroupCtxt = definedGroupCtxts.get(subGroupCtxt.getAlias());
Group nestedGroup = parseGroup(appId, tenantId, key, subGroupCtxt,
subscribableInfoCtxts,
- definedGroupCtxts, properties);
+ definedGroupCtxts);
nestedGroups.put(nestedGroup.getAlias(), nestedGroup);
}
@@ -569,8 +563,7 @@ public class DefaultApplicationParser implements ApplicationParser {
*/
private Map<String, ClusterDataHolder> parseLeafLevelSubscriptions (String appId, int tenantId, String key, String groupName,
List<SubscribableContext> subscribableCtxts,
- Map<String, SubscribableInfoContext> subscribableInfoCtxts,
- Properties properties)
+ Map<String, SubscribableInfoContext> subscribableInfoCtxts)
throws ApplicationDefinitionException {
Map<String, ClusterDataHolder> clusterDataMap = new HashMap<String, ClusterDataHolder>();
@@ -608,14 +601,12 @@ public class DefaultApplicationParser implements ApplicationParser {
String hostname = clusterInfo.getHostName(subscribableCtxt.getAlias(), cartridgeInfo.getHostName());
String clusterId = clusterInfo.getClusterId(subscribableCtxt.getAlias(), subscribableCtxt.getType());
- boolean isKubernetesCluster = StratosConstants.KUBERNETES_DEPLOYER_TYPE.equals(cartridge.getDeployerType());
// create and collect this cluster's information
assert subscribableInfoCtxt != null;
ApplicationClusterContext appClusterCtxt = createApplicationClusterContext(appId, groupName, cartridgeInfo,
key, tenantId, subscribableInfoCtxt.getRepoUrl(), subscribableCtxt.getAlias(),
- clusterId, hostname, subscribableInfoCtxt.getDeploymentPolicy(),
- false, isKubernetesCluster, subscribableInfoCtxt.getDependencyAliases(), properties);
+ clusterId, hostname, subscribableInfoCtxt.getDeploymentPolicy(), false, subscribableInfoCtxt.getDependencyAliases());
appClusterCtxt.setAutoscalePolicyName(subscribableInfoCtxt.getAutoscalingPolicy());
this.applicationClusterContexts.add(appClusterCtxt);
@@ -640,8 +631,7 @@ public class DefaultApplicationParser implements ApplicationParser {
* @param clusterId Cluster id
* @param hostname Hostname
* @param deploymentPolicy Deployment policy used
- * @param isLBCluster if this cluster is an LB
- * @param isKubernetesCluster if this cluster is a Kubernetes cluster
+ * @param isLB if this cluster is an LB
* @return ApplicationClusterContext object with relevant information
*
* @throws ApplicationDefinitionException If any error occurs
@@ -649,17 +639,14 @@ public class DefaultApplicationParser implements ApplicationParser {
private ApplicationClusterContext createApplicationClusterContext (String appId, String groupName, CartridgeInfo cartridgeInfo,
String subscriptionKey, int tenantId, String repoUrl,
String alias, String clusterId, String hostname,
- String deploymentPolicy, boolean isLBCluster,
- boolean isKubernetesCluster, String[] dependencyAliases,
- Properties properties)
+ String deploymentPolicy, boolean isLB, String[] dependencyAliases)
throws ApplicationDefinitionException {
// Create text payload
String textPayload = ApplicationUtils.createPayload(appId, groupName, cartridgeInfo, subscriptionKey, tenantId, clusterId,
hostname, repoUrl, alias, null, dependencyAliases).toString();
- return new ApplicationClusterContext(cartridgeInfo.getType(), clusterId, hostname, textPayload, deploymentPolicy,
- isLB, isKubernetesCluster, properties);
+ return new ApplicationClusterContext(cartridgeInfo.getType(), clusterId, hostname, textPayload, deploymentPolicy, isLB);
}
private CartridgeInfo getCartridge (String cartridgeType) throws ApplicationDefinitionException {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
index b3560c3..5d97ad5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
@@ -19,8 +19,6 @@
package org.apache.stratos.autoscaler.applications.pojo;
-import org.apache.stratos.cloud.controller.pojo.Properties;
-
import java.io.Serializable;
public class ApplicationContext implements Serializable {
@@ -41,8 +39,6 @@ public class ApplicationContext implements Serializable {
private SubscribableInfoContext[] subscribableInfoContexts;
- private Properties properties;
-
public ApplicationContext() {
}
@@ -101,12 +97,4 @@ public class ApplicationContext implements Serializable {
public void setTeantAdminUsername(String teantAdminUsername) {
this.teantAdminUsername = teantAdminUsername;
}
-
- public Properties getProperties() {
- return properties;
- }
-
- public void setProperties(Properties properties) {
- this.properties = properties;
- }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index bf0ad01..a92ce09 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -25,8 +25,8 @@ import org.apache.stratos.autoscaler.applications.ApplicationHolder;
import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext;
import org.apache.stratos.autoscaler.exception.DependencyBuilderException;
import org.apache.stratos.autoscaler.exception.TopologyInConsistentException;
-import org.apache.stratos.autoscaler.monitor.ApplicationMonitorFactory;
import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor;
+import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitorFactory;
import org.apache.stratos.messaging.domain.applications.*;
import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index 16e809d..74c9c8c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -1,4 +1,3 @@
-package org.apache.stratos.autoscaler.interfaces;
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
index f449560..0f52765 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -19,57 +19,42 @@
package org.apache.stratos.autoscaler.message.receiver.topology;
+import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.AutoscalerContext;
+import org.apache.stratos.autoscaler.MemberStatsContext;
import org.apache.stratos.autoscaler.NetworkPartitionContext;
-import org.apache.stratos.autoscaler.*;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
+import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.applications.ApplicationHolder;
+import org.apache.stratos.autoscaler.applications.topic.ApplicationsEventPublisher;
import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
import org.apache.stratos.autoscaler.exception.DependencyBuilderException;
-import org.apache.stratos.autoscaler.exception.PartitionValidationException;
-import org.apache.stratos.autoscaler.exception.PolicyValidationException;
+import org.apache.stratos.autoscaler.exception.TerminationException;
import org.apache.stratos.autoscaler.exception.TopologyInConsistentException;
-import org.apache.stratos.autoscaler.applications.topic.ApplicationsEventPublisher;
import org.apache.stratos.autoscaler.grouping.topic.ClusterStatusEventPublisher;
import org.apache.stratos.autoscaler.grouping.topic.InstanceNotificationPublisher;
-import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher;
-import org.apache.stratos.autoscaler.monitor.AbstractClusterMonitor;
-import org.apache.stratos.autoscaler.monitor.ApplicationMonitorFactory;
import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor;
import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitorFactory;
import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
-import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitorFactory;
import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
-import org.apache.stratos.autoscaler.monitor.group.GroupMonitor;
-import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
-import org.apache.stratos.messaging.domain.topology.Application;
-import org.apache.stratos.messaging.domain.topology.ApplicationStatus;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.messaging.domain.topology.ClusterDataHolder;
-import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.domain.topology.GroupStatus;
-import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
import org.apache.stratos.autoscaler.partition.PartitionManager;
import org.apache.stratos.autoscaler.policy.PolicyManager;
+import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.status.checker.StatusChecker;
import org.apache.stratos.messaging.domain.applications.Application;
import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
import org.apache.stratos.messaging.domain.applications.Applications;
import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
-import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.Event;
-import org.apache.stratos.messaging.event.topology.*;
-import org.apache.stratos.messaging.listener.applications.ApplicationUndeployedEventListener;
-import org.apache.stratos.messaging.listener.topology.*;
-import org.apache.stratos.messaging.message.receiver.applications.ApplicationManager;
-import org.apache.stratos.messaging.event.topology.ApplicationActivatedEvent;
-import org.apache.stratos.messaging.event.topology.ApplicationCreatedEvent;
-import org.apache.stratos.messaging.event.topology.ApplicationTerminatedEvent;
-import org.apache.stratos.messaging.event.topology.ApplicationTerminatingEvent;
import org.apache.stratos.messaging.event.topology.ApplicationUndeployedEvent;
import org.apache.stratos.messaging.event.topology.ClusterActivatedEvent;
import org.apache.stratos.messaging.event.topology.ClusterCreatedEvent;
@@ -77,33 +62,23 @@ import org.apache.stratos.messaging.event.topology.ClusterInactivateEvent;
import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
import org.apache.stratos.messaging.event.topology.ClusterTerminatedEvent;
import org.apache.stratos.messaging.event.topology.ClusterTerminatingEvent;
-import org.apache.stratos.messaging.event.topology.GroupActivatedEvent;
-import org.apache.stratos.messaging.event.topology.GroupInactivateEvent;
-import org.apache.stratos.messaging.event.topology.GroupTerminatedEvent;
-import org.apache.stratos.messaging.event.topology.GroupTerminatingEvent;
import org.apache.stratos.messaging.event.topology.MemberActivatedEvent;
import org.apache.stratos.messaging.event.topology.MemberMaintenanceModeEvent;
import org.apache.stratos.messaging.event.topology.MemberReadyToShutdownEvent;
import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent;
-import org.apache.stratos.messaging.listener.topology.ApplicationActivatedEventListener;
-import org.apache.stratos.messaging.listener.topology.ApplicationCreatedEventListener;
-import org.apache.stratos.messaging.listener.topology.ApplicationTerminatedEventListener;
-import org.apache.stratos.messaging.listener.topology.ApplicationTerminatingEventListener;
-import org.apache.stratos.messaging.listener.topology.ApplicationUndeployedEventListener;
+import org.apache.stratos.messaging.listener.applications.ApplicationUndeployedEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterActivatedEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterCreatedEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterInActivateEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterRemovedEventListener;
+import org.apache.stratos.messaging.listener.topology.ClusterResetEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterTerminatedEventListener;
import org.apache.stratos.messaging.listener.topology.ClusterTerminatingEventListener;
import org.apache.stratos.messaging.listener.topology.CompleteTopologyEventListener;
-import org.apache.stratos.messaging.listener.topology.GroupActivatedEventListener;
-import org.apache.stratos.messaging.listener.topology.GroupInActivateEventListener;
-import org.apache.stratos.messaging.listener.topology.GroupTerminatedEventListener;
-import org.apache.stratos.messaging.listener.topology.GroupTerminatingEventListener;
import org.apache.stratos.messaging.listener.topology.MemberActivatedEventListener;
import org.apache.stratos.messaging.listener.topology.MemberMaintenanceListener;
import org.apache.stratos.messaging.listener.topology.MemberReadyToShutdownEventListener;
+import org.apache.stratos.messaging.listener.topology.MemberStartedEventListener;
import org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener;
import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
@@ -221,43 +196,12 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
}
});
-
- /*topologyEventReceiver.addEventListener(new ApplicationCreatedEventListener() {
- @Override
- protected void onEvent(Event event) {
- try {
- log.info("[ApplicationCreatedEvent] Received: " + event.getClass());
- ApplicationCreatedEvent applicationCreatedEvent = (ApplicationCreatedEvent) event;
- try {
-
- //acquire read lock
- TopologyManager.acquireReadLockForApplication(
- applicationCreatedEvent.getApplication().getUniqueIdentifier());
- //start the application monitor
- startApplicationMonitor(applicationCreatedEvent.getApplication().getUniqueIdentifier());
- } catch (Exception e) {
- String msg = "Error processing event " + e.getLocalizedMessage();
- log.error(msg, e);
- } finally {
- //release read lock
- TopologyManager.releaseReadLockForApplication(
- applicationCreatedEvent.getApplication().getUniqueIdentifier());
- }
- } catch (ClassCastException e) {
- String msg = "Error while casting the event " + e.getLocalizedMessage();
- log.error(msg, e);
- }
-
- }
- });*/
-
topologyEventReceiver.addEventListener(new ClusterActivatedEventListener() {
@Override
protected void onEvent(Event event) {
log.info("[ClusterActivatedEvent] Received: " + event.getClass());
ClusterActivatedEvent clusterActivatedEvent = (ClusterActivatedEvent) event;
- String appId = clusterActivatedEvent.getAppId();
String clusterId = clusterActivatedEvent.getClusterId();
AbstractClusterMonitor clusterMonitor =
AutoscalerContext.getInstance().getClusterMonitor(clusterId);
@@ -291,23 +235,16 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
topologyEventReceiver.addEventListener(new ClusterCreatedEventListener() {
@Override
protected void onEvent(Event event) {
-
log.info("[ClusterCreatedEvent] Received: " + event.getClass());
-
- ClusterCreatedEvent clusterCreatedEvent = (ClusterCreatedEvent) event;
- //TODO notify the monitor about cluster creation
-
}
});
topologyEventReceiver.addEventListener(new ClusterInActivateEventListener() {
@Override
protected void onEvent(Event event) {
-
log.info("[ClusterInActivateEvent] Received: " + event.getClass());
ClusterInactivateEvent clusterInactivateEvent = (ClusterInactivateEvent) event;
- String appId = clusterInactivateEvent.getAppId();
String clusterId = clusterInactivateEvent.getClusterId();
AbstractClusterMonitor clusterMonitor =
AutoscalerContext.getInstance().getClusterMonitor(clusterId);
@@ -351,11 +288,9 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
topologyEventReceiver.addEventListener(new ClusterTerminatedEventListener() {
@Override
protected void onEvent(Event event) {
-
log.info("[ClusterTerminatedEvent] Received: " + event.getClass());
ClusterTerminatedEvent clusterTerminatedEvent = (ClusterTerminatedEvent) event;
- String appId = clusterTerminatedEvent.getAppId();
String clusterId = clusterTerminatedEvent.getClusterId();
AbstractClusterMonitor clusterMonitor =
AutoscalerContext.getInstance().getClusterMonitor(clusterId);
@@ -367,105 +302,6 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
}
});
- /*topologyEventReceiver.addEventListener(new GroupActivatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[GroupActivatedEvent] Received: " + event.getClass());
-
- GroupActivatedEvent groupActivatedEvent = (GroupActivatedEvent) event;
- String appId = groupActivatedEvent.getAppId();
- String groupId = groupActivatedEvent.getGroupId();
-
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- GroupMonitor monitor = (GroupMonitor) appMonitor.findGroupMonitorWithId(groupId);
-
- //changing the status in the monitor, will notify its parent monitor
- if (monitor != null) {
- monitor.setStatus(GroupStatus.Active);
- }
- }
- });
-
- topologyEventReceiver.addEventListener(new GroupInActivateEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[GroupInActivateEvent] Received: " + event.getClass());
-
- GroupInactivateEvent groupInactivateEvent = (GroupInactivateEvent) event;
- String appId = groupInactivateEvent.getAppId();
- String groupId = groupInactivateEvent.getGroupId();
-
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- GroupMonitor monitor = (GroupMonitor) appMonitor.findGroupMonitorWithId(groupId);
-
- //changing the status in the monitor, will notify its parent monitor
- if (monitor != null) {
- monitor.setStatus(GroupStatus.Inactive);
- }
-
- }
- });
-
- topologyEventReceiver.addEventListener(new GroupTerminatingEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[GroupTerminatingEvent] Received: " + event.getClass());
-
- GroupTerminatingEvent groupTerminatingEvent = (GroupTerminatingEvent) event;
- String appId = groupTerminatingEvent.getAppId();
- String groupId = groupTerminatingEvent.getGroupId();
-
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- GroupMonitor monitor = (GroupMonitor) appMonitor.findGroupMonitorWithId(groupId);
-
- //changing the status in the monitor, will notify its parent monitor
- if (monitor != null) {
- monitor.setStatus(GroupStatus.Terminating);
- }
-
- }
- });
-
- topologyEventReceiver.addEventListener(new GroupTerminatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[GroupTerminatedEvent] Received: " + event.getClass());
-
- GroupTerminatedEvent groupTerminatedEvent = (GroupTerminatedEvent) event;
- String appId = groupTerminatedEvent.getAppId();
- String groupId = groupTerminatedEvent.getGroupId();
-
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- GroupMonitor monitor = (GroupMonitor) appMonitor.findGroupMonitorWithId(groupId);
-
- //changing the status in the monitor, will notify its parent monitor
- if (monitor != null) {
- monitor.setStatus(GroupStatus.Terminated);
- }
-
- }
- });
-
- topologyEventReceiver.addEventListener(new ApplicationActivatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[ApplicationActivatedEvent] Received: " + event.getClass());
-
- ApplicationActivatedEvent applicationActivatedEvent = (ApplicationActivatedEvent) event;
- String appId = applicationActivatedEvent.getAppId();
-
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- if(appMonitor != null) {
- appMonitor.setStatus(ApplicationStatus.Active);
- }
- }
- });*/
-
topologyEventReceiver.addEventListener(new ApplicationUndeployedEventListener() {
@Override
protected void onEvent(Event event) {
@@ -482,8 +318,8 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
Set<ClusterDataHolder> clusterDataHolders = applicationUndeployedEvent.getClusterData();
if (clusterDataHolders != null) {
for (ClusterDataHolder clusterDataHolder : clusterDataHolders) {
- ClusterMonitor clusterMonitor =
- ((ClusterMonitor) AutoscalerContext.getInstance().getMonitor(clusterDataHolder.getClusterId()));
+ VMClusterMonitor clusterMonitor =
+ ((VMClusterMonitor) AutoscalerContext.getInstance().getClusterMonitor(clusterDataHolder.getClusterId()));
if (clusterMonitor == null) {
// Cluster Monitor not found; send Cluster Terminated event to cleanup
ClusterStatusEventPublisher.sendClusterTerminatedEvent(
@@ -594,269 +430,95 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
}
});
-
- /*topologyEventReceiver.addEventListener(new ApplicationTerminatingEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[ApplicationTerminatingEvent] Received: " + event.getClass());
-
- ApplicationTerminatingEvent appTerminatingEvent = (ApplicationTerminatingEvent) event;
-
- // acquire reead locks for application and relevant clusters
- TopologyManager.acquireReadLockForApplication(appTerminatingEvent.getAppId());
-
- try {
- ApplicationMonitor appMonitor = AutoscalerContext.getInstance().
- getAppMonitor(appTerminatingEvent.getAppId());
-
- if (appMonitor != null) {
- // update the status as Terminating
- appMonitor.setStatus(ApplicationStatus.Terminating);
-
- } else {
- log.warn("Application Monitor cannot be found for the undeployed [application] "
- + appTerminatingEvent.getAppId());
- }
-
- } finally {
- TopologyManager.
- releaseReadLockForApplication(appTerminatingEvent.getAppId());
- }
- }
- });*/
-
-// topologyEventReceiver.addEventListener(new ApplicationRemovedEventListener() {
+ topologyEventReceiver.addEventListener(new MemberReadyToShutdownEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+ try {
+ MemberReadyToShutdownEvent memberReadyToShutdownEvent = (MemberReadyToShutdownEvent) event;
+ String clusterId = memberReadyToShutdownEvent.getClusterId();
+ AutoscalerContext asCtx = AutoscalerContext.getInstance();
+ AbstractClusterMonitor monitor;
+ monitor = asCtx.getClusterMonitor(clusterId);
+ if (null == monitor) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("A cluster monitor is not found in autoscaler context "
+ + "[cluster] %s", clusterId));
+ }
+ return;
+ }
+ monitor.handleMemberReadyToShutdownEvent(memberReadyToShutdownEvent);
+ } catch (Exception e) {
+ String msg = "Error processing event " + e.getLocalizedMessage();
+ log.error(msg, e);
+ }
+ }
+ });
+//TODO delete this if we don't want this
+// topologyEventReceiver.addEventListener(new ClusterRemovedEventListener() {
// @Override
-// protected void onChildEvent(Event event) {
+// protected void onEvent(Event event) {
+//
+// ClusterRemovedEvent clusterRemovedEvent = null;
+// try {
+// clusterRemovedEvent = (ClusterRemovedEvent) event;
+// //TopologyManager.acquireReadLock();
+// TopologyManager.acquireReadLockForCluster(clusterRemovedEvent.getServiceName(),
+// clusterRemovedEvent.getClusterId());
//
-// log.info("[ApplicationRemovedEvent] Received: " + event.getClass());
+// String clusterId = clusterRemovedEvent.getClusterId();
+// String deploymentPolicy = clusterRemovedEvent.getDeploymentPolicy();
//
-// ApplicationRemovedEvent applicationRemovedEvent = (ApplicationRemovedEvent) event;
+// AbstractClusterMonitor monitor;
//
-// //acquire read lock
-// TopologyManager.acquireReadLockForApplication(applicationRemovedEvent.getApplicationId());
-// Set<ClusterDataHolder> clusterDataHolders = applicationRemovedEvent.getClusterData();
-// if (clusterDataHolders != null) {
-// for (ClusterDataHolder clusterData : clusterDataHolders) {
-// TopologyManager.acquireReadLockForCluster(clusterData.getServiceType(),
-// clusterData.getClusterId());
-// }
-// }
+// if (clusterRemovedEvent.isLbCluster()) {
+// DeploymentPolicy depPolicy = PolicyManager.getInstance().
+// getDeploymentPolicy(deploymentPolicy);
+// if (depPolicy != null) {
+// List<NetworkPartitionLbHolder> lbHolders = PartitionManager.getInstance()
+// .getNetworkPartitionLbHolders(depPolicy);
//
-// try {
-// //TODO remove monitors as well as any starting or pending threads
-// ApplicationMonitor monitor = AutoscalerContext.getInstance().
-// getAppMonitor(applicationRemovedEvent.getApplicationId());
-// if (monitor != null) {
-// //List<String> clusters = monitor.
-// // findClustersOfApplication(applicationRemovedEvent.getApplicationId());
-// for (ClusterDataHolder clusterData : clusterDataHolders) {
-// //stopping the cluster monitor and remove it from the AS
-// ((ClusterMonitor) AutoscalerContext.getInstance().getMonitor(clusterData.getClusterId())).
-// setDestroyed(true);
-// AutoscalerContext.getInstance().removeMonitor(clusterData.getClusterId());
+// for (NetworkPartitionLbHolder networkPartitionLbHolder : lbHolders) {
+// // removes lb cluster ids
+// boolean isRemoved = networkPartitionLbHolder.removeLbClusterId(clusterId);
+// if (isRemoved) {
+// log.info("Removed the lb cluster [id]:"
+// + clusterId
+// + " reference from Network Partition [id]: "
+// + networkPartitionLbHolder
+// .getNetworkPartitionId());
+//
+// }
+// if (log.isDebugEnabled()) {
+// log.debug(networkPartitionLbHolder);
+// }
+//
+// }
// }
-// //removing the application monitor
-// AutoscalerContext.getInstance().
-// removeAppMonitor(applicationRemovedEvent.getApplicationId());
+// monitor = AutoscalerContext.getInstance()
+// .removeLbMonitor(clusterId);
+//
// } else {
-// log.warn("Application Monitor cannot be found for the removed [application] "
-// + applicationRemovedEvent.getApplicationId());
+// monitor = (AbstractClusterMonitor) AutoscalerContext.getInstance()
+// .removeMonitor(clusterId);
// }
//
-//
-// } finally {
-// //release read lock
-// if (clusterDataHolders != null) {
-// for (ClusterDataHolder clusterData : clusterDataHolders) {
-// TopologyManager.releaseReadLockForCluster(clusterData.getServiceType(),
-// clusterData.getClusterId());
-// }
+// // runTerminateAllRule(monitor);
+// if (monitor != null) {
+// monitor.destroy();
+// log.info(String.format("Cluster monitor has been removed successfully: [cluster] %s ",
+// clusterId));
// }
-// TopologyManager.releaseReadLockForApplication(applicationRemovedEvent.getApplicationId());
+// } catch (Exception e) {
+// log.error("Error processing event", e);
+// } finally {
+// //TopologyManager.releaseReadLock();
+// TopologyManager.releaseReadLockForCluster(clusterRemovedEvent.getServiceName(),
+// clusterRemovedEvent.getClusterId());
// }
-//
// }
+//
// });
- /*topologyEventReceiver.addEventListener(new ApplicationTerminatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- log.info("[ApplicationTerminatedEvent] Received: " + event.getClass());
-
- ApplicationTerminatedEvent applicationRemovedEvent = (ApplicationTerminatedEvent) event;
-
- // no need to access the locks since the Topology is not accessed
- //acquire read lock
- //TopologyManager.acquireReadLockForApplication(applicationRemovedEvent.getAppId());
- Set<ClusterDataHolder> clusterDataHolders = applicationRemovedEvent.getClusterData();
-// if (clusterDataHolders != null) {
-// for (ClusterDataHolder clusterData : clusterDataHolders) {
-// TopologyManager.acquireReadLockForCluster(clusterData.getServiceType(),
-// clusterData.getClusterId());
-// }
-// }
-
- try {
- //TODO remove monitors as well as any starting or pending threads
- ApplicationMonitor monitor = AutoscalerContext.getInstance().
- getAppMonitor(applicationRemovedEvent.getAppId());
- if (monitor != null) {
- //List<String> clusters = monitor.
- // findClustersOfApplication(applicationRemovedEvent.getApplicationId());
- for (ClusterDataHolder clusterData : clusterDataHolders) {
- //stopping the cluster monitor and remove it from the AS
- ClusterMonitor clusterMonitor = ((ClusterMonitor)
- AutoscalerContext.getInstance().getMonitor(clusterData.getClusterId()));
- if (clusterMonitor != null) {
- clusterMonitor.setDestroyed(true);
- AutoscalerContext.getInstance().removeMonitor(clusterData.getClusterId());
- } else {
- log.warn("Cluster Monitor not found for [ cluster id ] " +
- clusterData.getClusterId() + ", unable to remove");
- }
- }
- //removing the application monitor
- AutoscalerContext.getInstance().
- removeAppMonitor(applicationRemovedEvent.getAppId());
- } else {
- log.warn("Application Monitor cannot be found for the terminated [application] "
- + applicationRemovedEvent.getAppId() + ", unable to remove");
- }
-
-
- } finally {
- //release read lock
-// if (clusterDataHolders != null) {
-// for (ClusterDataHolder clusterData : clusterDataHolders) {
-// TopologyManager.releaseReadLockForCluster(clusterData.getServiceType(),
-// clusterData.getClusterId());
-// }
-// }
-// TopologyManager.releaseReadLockForApplication(applicationRemovedEvent.getAppId());
- }
-
- }
- });
-*/
- topologyEventReceiver.addEventListener(new MemberReadyToShutdownEventListener() {
- @Override
- protected void onEvent(Event event) {
- try {
- MemberReadyToShutdownEvent memberReadyToShutdownEvent =
- (MemberReadyToShutdownEvent) event;
- AutoscalerContext asCtx = AutoscalerContext.getInstance();
- AbstractClusterMonitor monitor;
- String clusterId = memberReadyToShutdownEvent.getClusterId();
- String memberId = memberReadyToShutdownEvent.getMemberId();
-
- if (asCtx.monitorExist(clusterId)) {
- monitor = (AbstractClusterMonitor) asCtx.getMonitor(clusterId);
- } else if (asCtx.lbMonitorExist(clusterId)) {
- monitor = asCtx.getLBMonitor(clusterId);
- } else {
- if (log.isDebugEnabled()) {
- log.debug(String.format("A cluster monitor is not found " +
- "in autoscaler context [cluster] %s", clusterId));
- }
- return;
- }
-
- NetworkPartitionContext nwPartitionCtxt;
- nwPartitionCtxt = monitor.getNetworkPartitionCtxt(
- memberReadyToShutdownEvent.getNetworkPartitionId());
-
- // start a new member in the same Partition
- String partitionId = monitor.getPartitionOfMember(memberId);
- PartitionContext partitionCtxt = nwPartitionCtxt.getPartitionCtxt(partitionId);
-
-
- // terminate the shutdown ready member
- CloudControllerClient ccClient = CloudControllerClient.getInstance();
- ccClient.terminate(memberId);
-
- // remove from active member list
- partitionCtxt.removeActiveMemberById(memberId);
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Member is terminated and removed from the active " +
- "members list: [member] %s [partition] %s [cluster] %s ",
- memberId, partitionId, clusterId));
- }
- } catch (TerminationException e) {
- log.error(e);
- }
- }
-
- });
-
- topologyEventReceiver.addEventListener(new ClusterRemovedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- ClusterRemovedEvent clusterRemovedEvent = null;
- try {
- clusterRemovedEvent = (ClusterRemovedEvent) event;
- //TopologyManager.acquireReadLock();
- TopologyManager.acquireReadLockForCluster(clusterRemovedEvent.getServiceName(),
- clusterRemovedEvent.getClusterId());
-
- String clusterId = clusterRemovedEvent.getClusterId();
- String deploymentPolicy = clusterRemovedEvent.getDeploymentPolicy();
-
- AbstractClusterMonitor monitor;
-
- if (clusterRemovedEvent.isLbCluster()) {
- DeploymentPolicy depPolicy = PolicyManager.getInstance().
- getDeploymentPolicy(deploymentPolicy);
- if (depPolicy != null) {
- List<NetworkPartitionLbHolder> lbHolders = PartitionManager.getInstance()
- .getNetworkPartitionLbHolders(depPolicy);
-
- for (NetworkPartitionLbHolder networkPartitionLbHolder : lbHolders) {
- // removes lb cluster ids
- boolean isRemoved = networkPartitionLbHolder.removeLbClusterId(clusterId);
- if (isRemoved) {
- log.info("Removed the lb cluster [id]:"
- + clusterId
- + " reference from Network Partition [id]: "
- + networkPartitionLbHolder
- .getNetworkPartitionId());
-
- }
- if (log.isDebugEnabled()) {
- log.debug(networkPartitionLbHolder);
- }
-
- }
- }
- monitor = AutoscalerContext.getInstance()
- .removeLbMonitor(clusterId);
-
- } else {
- monitor = (AbstractClusterMonitor) AutoscalerContext.getInstance()
- .removeMonitor(clusterId);
- }
-
- // runTerminateAllRule(monitor);
- if (monitor != null) {
- monitor.destroy();
- log.info(String.format("Cluster monitor has been removed successfully: [cluster] %s ",
- clusterId));
- }
- } catch (Exception e) {
- log.error("Error processing event", e);
- } finally {
- //TopologyManager.releaseReadLock();
- TopologyManager.releaseReadLockForCluster(clusterRemovedEvent.getServiceName(),
- clusterRemovedEvent.getClusterId());
- }
- }
-
- });
-
topologyEventReceiver.addEventListener(new MemberStartedEventListener() {
@Override
protected void onEvent(Event event) {
@@ -866,176 +528,75 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
});
topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- MemberTerminatedEvent memberTerminatedEvent = null;
- try {
- //TopologyManager.acquireReadLock();
-
- memberTerminatedEvent = (MemberTerminatedEvent) event;
- String networkPartitionId = memberTerminatedEvent.getNetworkPartitionId();
- String clusterId = memberTerminatedEvent.getClusterId();
- String partitionId = memberTerminatedEvent.getPartitionId();
- AbstractClusterMonitor monitor;
-
- TopologyManager.acquireReadLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
-
- if (AutoscalerContext.getInstance().monitorExist(clusterId)) {
- monitor = (AbstractClusterMonitor) AutoscalerContext.getInstance().getMonitor(clusterId);
- } else {
- //This is LB member
- monitor = AutoscalerContext.getInstance().getLBMonitor(clusterId);
- }
-
- NetworkPartitionContext networkPartitionContext = monitor.
- getNetworkPartitionCtxt(networkPartitionId);
-
- PartitionContext partitionContext = networkPartitionContext.
- getPartitionCtxt(partitionId);
- String memberId = memberTerminatedEvent.getMemberId();
- partitionContext.removeMemberStatsContext(memberId);
-
-
- if (partitionContext.removeTerminationPendingMember(memberId)) {
- if (log.isDebugEnabled()) {
- log.debug(String.format("Member is removed from termination pending " +
- "members list: [member] %s", memberId));
- }
- } else if (partitionContext.removePendingMember(memberId)) {
- if (log.isDebugEnabled()) {
- log.debug(String.format("Member is removed from pending members list: " +
- "[member] %s", memberId));
- }
- } else if (partitionContext.removeActiveMemberById(memberId)) {
- log.warn(String.format("Member is in the wrong list and it is removed " +
- "from active members list", memberId));
- } else {
- log.warn(String.format("Member is not available in any of the list " +
- "active, pending and termination pending", memberId));
- }
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Member stat context has been removed " +
- " successfully: [member] %s", memberId));
- }
- //Checking whether the cluster state can be changed either from in_active to created/terminating to terminated
- StatusChecker.getInstance().onMemberTermination(clusterId);
-
-// partitionContext.decrementCurrentActiveMemberCount(1);
-
-
- } catch (Exception e) {
- log.error("Error processing event", e);
- } finally {
- //TopologyManager.releaseReadLock();
- TopologyManager.releaseReadLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
- }
- }
-
+ @Override
+ protected void onEvent(Event event) {
+ try {
+ MemberTerminatedEvent memberTerminatedEvent = (MemberTerminatedEvent) event;
+ String clusterId = memberTerminatedEvent.getClusterId();
+ AbstractClusterMonitor monitor;
+ AutoscalerContext asCtx = AutoscalerContext.getInstance();
+ monitor = asCtx.getClusterMonitor(clusterId);
+ if (null == monitor) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("A cluster monitor is not found in autoscaler context "
+ + "[cluster] %s", clusterId));
+ }
+ return;
+ }
+ monitor.handleMemberTerminatedEvent(memberTerminatedEvent);
+ } catch (Exception e) {
+ String msg = "Error processing event " + e.getLocalizedMessage();
+ log.error(msg, e);
+ }
+ }
});
topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
- @Override
- protected void onEvent(Event event) {
-
- MemberActivatedEvent memberActivatedEvent = (MemberActivatedEvent) event;
-
- //TopologyManager.acquireReadLock();
- TopologyManager.acquireReadLockForCluster(memberActivatedEvent.getServiceName(),
- memberActivatedEvent.getClusterId());
-
- try {
-
- String networkPartitionId = memberActivatedEvent.getNetworkPartitionId();
- String clusterId = memberActivatedEvent.getClusterId();
- String partitionId = memberActivatedEvent.getPartitionId();
- String memberId = memberActivatedEvent.getMemberId();
-
- AbstractClusterMonitor monitor;
-
- if (AutoscalerContext.getInstance().monitorExist(clusterId)) {
- monitor = (AbstractClusterMonitor) AutoscalerContext.getInstance().getMonitor(clusterId);
- } else {
- //This is LB member
- monitor = AutoscalerContext.getInstance().getLBMonitor(clusterId);
- }
-
- NetworkPartitionContext networkPartitionContext = monitor.
- getNetworkPartitionCtxt(networkPartitionId);
-
- PartitionContext partitionContext = networkPartitionContext.
- getPartitionCtxt(partitionId);
-
- partitionContext.addMemberStatsContext(new MemberStatsContext(memberId));
- // TODO starting the pending clusters which are waiting for this member activation in a cluster
-
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Member stat context has been added " +
- "successfully: [member] %s", memberId));
- }
-// partitionContext.incrementCurrentActiveMemberCount(1);
- partitionContext.movePendingMemberToActiveMembers(memberId);
- //triggering the status checker
- StatusChecker.getInstance().onMemberStatusChange(memberActivatedEvent.getClusterId());
-
- } catch (Exception e) {
- log.error("Error processing event", e);
- } finally {
- //TopologyManager.releaseReadLock();
- TopologyManager.releaseReadLockForCluster(memberActivatedEvent.getServiceName(),
- memberActivatedEvent.getClusterId());
- }
- }
+ @Override
+ protected void onEvent(Event event) {
+ try {
+ MemberActivatedEvent memberActivatedEvent = (MemberActivatedEvent) event;
+ String clusterId = memberActivatedEvent.getClusterId();
+ AbstractClusterMonitor monitor;
+ AutoscalerContext asCtx = AutoscalerContext.getInstance();
+ monitor = asCtx.getClusterMonitor(clusterId);
+ if (null == monitor) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("A cluster monitor is not found in autoscaler context "
+ + "[cluster] %s", clusterId));
+ }
+ return;
+ }
+ monitor.handleMemberActivatedEvent(memberActivatedEvent);
+ } catch (Exception e) {
+ String msg = "Error processing event " + e.getLocalizedMessage();
+ log.error(msg, e);
+ }
+ }
});
topologyEventReceiver.addEventListener(new MemberMaintenanceListener() {
- @Override
- protected void onEvent(Event event) {
-
- MemberMaintenanceModeEvent memberMaintenanceModeEvent = (MemberMaintenanceModeEvent) event;
-
- //TopologyManager.acquireReadLock();
- TopologyManager.acquireReadLockForCluster(memberMaintenanceModeEvent.getServiceName(),
- memberMaintenanceModeEvent.getClusterId());
-
- try {
-
- String memberId = memberMaintenanceModeEvent.getMemberId();
- String partitionId = memberMaintenanceModeEvent.getPartitionId();
- String networkPartitionId = memberMaintenanceModeEvent.getNetworkPartitionId();
-
- PartitionContext partitionContext;
- String clusterId = memberMaintenanceModeEvent.getClusterId();
- AbstractClusterMonitor monitor;
-
- if (AutoscalerContext.getInstance().monitorExist(clusterId)) {
- monitor = (AbstractClusterMonitor) AutoscalerContext.getInstance().getMonitor(clusterId);
- partitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId).
- getPartitionCtxt(partitionId);
- } else {
- monitor = AutoscalerContext.getInstance().getLBMonitor(clusterId);
- partitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId).
- getPartitionCtxt(partitionId);
- }
- partitionContext.addMemberStatsContext(new MemberStatsContext(memberId));
- if (log.isDebugEnabled()) {
- log.debug(String.format("Member has been moved as pending termination: " +
- "[member] %s", memberId));
- }
- partitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
-
- } catch (Exception e) {
- log.error("Error processing event", e);
- } finally {
- //TopologyManager.releaseReadLock();
- TopologyManager.releaseReadLockForCluster(memberMaintenanceModeEvent.getServiceName(),
- memberMaintenanceModeEvent.getClusterId());
- }
- }
+ @Override
+ protected void onEvent(Event event) {
+ try {
+ MemberMaintenanceModeEvent maintenanceModeEvent = (MemberMaintenanceModeEvent) event;
+ String clusterId = maintenanceModeEvent.getClusterId();
+ AbstractClusterMonitor monitor;
+ AutoscalerContext asCtx = AutoscalerContext.getInstance();
+ monitor = asCtx.getClusterMonitor(clusterId);
+ if (null == monitor) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("A cluster monitor is not found in autoscaler context "
+ + "[cluster] %s", clusterId));
+ }
+ return;
+ }
+ monitor.handleMemberMaintenanceModeEvent(maintenanceModeEvent);
+ } catch (Exception e) {
+ String msg = "Error processing event " + e.getLocalizedMessage();
+ log.error(msg, e);
+ }
+ }
});
}
@@ -1061,29 +622,6 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
terminated = true;
}
- protected synchronized void startClusterMonitor(Cluster cluster) {
- Thread th = null;
-
- AbstractClusterMonitor monitor;
- monitor = AutoscalerContext.getInstance().getClusterMonitor(cluster.getClusterId());
-
- if (null == monitor) {
- th = new Thread(new ClusterMonitorAdder(cluster));
- }
- if (th != null) {
- th.start();
- try {
- th.join();
- } catch (InterruptedException ignore) {
- }
-
- if (log.isDebugEnabled()) {
- log.debug(String.format("Cluster monitor thread has been started successfully: "
- + "[cluster] %s ", cluster.getClusterId()));
- }
- }
- }
-
protected synchronized void startApplicationMonitor(String applicationId) {
Thread th = null;
if (!AutoscalerContext.getInstance().appMonitorExist(applicationId)) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
deleted file mode 100644
index fb23985..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.autoscaler.monitor;
-
-import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
-import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
-import org.apache.stratos.autoscaler.monitor.events.MonitorTerminateAllEvent;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
-import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
-import org.apache.stratos.autoscaler.util.AutoScalerConstants;
-import org.apache.stratos.autoscaler.util.ConfUtil;
-import org.apache.stratos.messaging.domain.topology.*;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.runtime.rule.FactHandle;
-
-import java.util.Map;
-
-/**
- * Is responsible for monitoring a service cluster. This runs periodically
- * and perform minimum instance check and scaling check using the underlying
- * rules engine.
- */
-abstract public class AbstractClusterMonitor extends Monitor implements Runnable {
-
- private static final Log log = LogFactory.getLog(AbstractClusterMonitor.class);
- // Map<NetworkpartitionId, Network Partition Context>
- protected Map<String, NetworkPartitionContext> networkPartitionCtxts;
- protected DeploymentPolicy deploymentPolicy;
- protected AutoscalePolicy autoscalePolicy;
-
-
- protected FactHandle minCheckFactHandle;
- protected FactHandle scaleCheckFactHandle;
- protected FactHandle terminateDependencyFactHandle;
- protected FactHandle terminateAllFactHandle;
-
- protected StatefulKnowledgeSession minCheckKnowledgeSession;
- protected StatefulKnowledgeSession scaleCheckKnowledgeSession;
- protected StatefulKnowledgeSession terminateAllKnowledgeSession;
- protected boolean isDestroyed;
-
- protected String clusterId;
- protected String serviceId;
- protected String appId;
-
- protected boolean hasFaultyMember = false;
-
- protected ClusterStatus status;
-
- //protected ParentComponentMonitor parent;
-
- protected AutoscalerRuleEvaluator autoscalerRuleEvaluator;
-
- // time intereval between two runs of the Monitor. Default is 90000ms.
- protected int monitorInterval;
-
- public AbstractClusterMonitor() {
- readConfigurations();
- status = ClusterStatus.Created;
- }
-
- private void readConfigurations() {
-
- XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
- monitorInterval = conf.getInt(AutoScalerConstants.AUTOSCALER_MONITOR_INTERVAL, 90000);
- if (log.isDebugEnabled()) {
- log.debug("Cluster Monitor task interval: " + getMonitorInterval());
- }
- }
-
- @Override
- public void run() {
- // TODO Auto-generated method stub
- }
-
-
- public NetworkPartitionContext getNetworkPartitionCtxt(Member member) {
- log.info("***** getNetworkPartitionCtxt " + member.getNetworkPartitionId());
- String networkPartitionId = member.getNetworkPartitionId();
- if (networkPartitionCtxts.containsKey(networkPartitionId)) {
- log.info("returnnig network partition context " + networkPartitionCtxts.get(networkPartitionId));
- return networkPartitionCtxts.get(networkPartitionId);
- }
- log.info("returning null getNetworkPartitionCtxt");
- return null;
- }
-
- public String getPartitionOfMember(String memberId) {
- for (Service service : TopologyManager.getTopology().getServices()) {
- for (Cluster cluster : service.getClusters()) {
- if (cluster.memberExists(memberId)) {
- return cluster.getMember(memberId).getPartitionId();
- }
- }
- }
- return null;
- }
-
- public void destroy() {
- minCheckKnowledgeSession.dispose();
- scaleCheckKnowledgeSession.dispose();
- terminateAllKnowledgeSession.dispose();
- setDestroyed(true);
- if (log.isDebugEnabled()) {
- log.debug("Cluster Monitor Drools session has been disposed. " + this.toString());
- }
- }
-
- public abstract void terminateAllMembers ();
-
- public boolean isDestroyed() {
- return isDestroyed;
- }
-
- public void setDestroyed(boolean isDestroyed) {
- this.isDestroyed = isDestroyed;
- }
-
- public String getServiceId() {
- return serviceId;
- }
-
- public void setServiceId(String serviceId) {
- this.serviceId = serviceId;
- }
-
- public DeploymentPolicy getDeploymentPolicy() {
- return deploymentPolicy;
- }
-
- public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
- this.deploymentPolicy = deploymentPolicy;
- }
-
- public AutoscalePolicy getAutoscalePolicy() {
- return autoscalePolicy;
- }
-
- public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) {
- this.autoscalePolicy = autoscalePolicy;
- }
-
- public String getClusterId() {
- return clusterId;
- }
-
- public void setClusterId(String clusterId) {
- this.clusterId = clusterId;
- }
-
- public String getAppId() {
- return appId;
- }
-
- public void setAppId(String appId) {
- this.appId = appId;
- }
-
- public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() {
- return networkPartitionCtxts;
- }
-
- public NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) {
- return networkPartitionCtxts.get(networkPartitionId);
- }
-
- public void setPartitionCtxt(Map<String, NetworkPartitionContext> partitionCtxt) {
- this.networkPartitionCtxts = partitionCtxt;
- }
-
- public boolean partitionCtxtAvailable(String partitionId) {
- return networkPartitionCtxts.containsKey(partitionId);
- }
-
- public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) {
- this.networkPartitionCtxts.put(ctxt.getId(), ctxt);
- }
-
- public NetworkPartitionContext getPartitionCtxt(String id) {
- return this.networkPartitionCtxts.get(id);
- }
-
- public StatefulKnowledgeSession getMinCheckKnowledgeSession() {
- return minCheckKnowledgeSession;
- }
-
- public void setMinCheckKnowledgeSession(StatefulKnowledgeSession minCheckKnowledgeSession) {
- this.minCheckKnowledgeSession = minCheckKnowledgeSession;
- }
-
- public FactHandle getMinCheckFactHandle() {
- return minCheckFactHandle;
- }
-
- public void setMinCheckFactHandle(FactHandle minCheckFactHandle) {
- this.minCheckFactHandle = minCheckFactHandle;
- }
-
-
- public int getMonitorInterval() {
- return monitorInterval;
- }
-
- public ClusterStatus getStatus() {
- return status;
- }
-
- public void setStatus(ClusterStatus status) {
-
- //if(this.status != status) {
- this.status = status;
- /**
- * notifying the parent monitor about the state change
- * If the cluster in_active and if it is a in_dependent cluster,
- * then won't send the notification to parent.
- */
- if (status == ClusterStatus.Inactive && !this.hasDependent) {
- log.info("[Cluster] " + clusterId + "is not notifying the parent, " +
- "since it is identified as the independent unit");
-
- } else if (status == ClusterStatus.Terminating) {
- // notify parent
- log.info("[Cluster] " + clusterId + " is not notifying the parent, " +
- "since it is in Terminating State");
-
- } else {
- MonitorStatusEventBuilder.handleClusterStatusEvent(this.parent, this.status, this.clusterId);
- }
- //}
-
- }
-
- @Override
- public void onChildEvent(MonitorStatusEvent statusEvent) {
-
- }
-
- @Override
- public void onEvent(MonitorTerminateAllEvent terminateAllEvent) {
-
- }
-
- @Override
- public void onEvent(MonitorScalingEvent scalingEvent) {
-
- }
-
- public boolean isHasFaultyMember() {
- return hasFaultyMember;
- }
-
- public void setHasFaultyMember(boolean hasFaultyMember) {
- this.hasFaultyMember = hasFaultyMember;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
index 5938077..bd36091 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
@@ -31,6 +31,8 @@ import org.apache.stratos.autoscaler.applications.topic.ApplicationsEventPublish
import org.apache.stratos.autoscaler.grouping.topic.ClusterStatusEventPublisher;
import org.apache.stratos.autoscaler.status.checker.StatusChecker;
import org.apache.stratos.messaging.domain.applications.ParentComponent;
+import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitorFactory;
+import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
import java.util.HashMap;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/stratos/blob/8b66cbac/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
index 7f3de58..66891d0 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitorFactory.java
@@ -18,48 +18,32 @@
*/
package org.apache.stratos.autoscaler.monitor.application;
+import java.util.Map;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
-import org.apache.stratos.autoscaler.MemberStatsContext;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
-import org.apache.stratos.autoscaler.PartitionContext;
-import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.applications.dependency.context.ApplicationContext;
+import org.apache.stratos.autoscaler.applications.dependency.context.ClusterContext;
+import org.apache.stratos.autoscaler.applications.dependency.context.GroupContext;
import org.apache.stratos.autoscaler.exception.DependencyBuilderException;
import org.apache.stratos.autoscaler.exception.PartitionValidationException;
import org.apache.stratos.autoscaler.exception.PolicyValidationException;
import org.apache.stratos.autoscaler.exception.TopologyInConsistentException;
-import org.apache.stratos.autoscaler.applications.dependency.context.ApplicationContext;
-import org.apache.stratos.autoscaler.applications.dependency.context.ClusterContext;
-import org.apache.stratos.autoscaler.applications.dependency.context.GroupContext;
-import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor;
-import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
-import org.apache.stratos.autoscaler.grouping.dependency.context.ApplicationContext;
-import org.apache.stratos.autoscaler.grouping.dependency.context.ClusterContext;
-import org.apache.stratos.autoscaler.grouping.dependency.context.GroupContext;
import org.apache.stratos.autoscaler.monitor.Monitor;
import org.apache.stratos.autoscaler.monitor.ParentComponentMonitor;
import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitorFactory;
import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
import org.apache.stratos.autoscaler.monitor.group.GroupMonitor;
-import org.apache.stratos.autoscaler.partition.PartitionGroup;
-import org.apache.stratos.autoscaler.policy.PolicyManager;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
-import org.apache.stratos.autoscaler.status.checker.StatusChecker;
-import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
-import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.messaging.domain.applications.Application;
import org.apache.stratos.messaging.domain.applications.Group;
-import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.message.receiver.applications.ApplicationManager;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.apache.stratos.messaging.util.Constants;
-
-import java.util.Map;
/**
* Factory class to get the Monitors.
[3/3] git commit: Merge branch 'docker-grouping-merge' of
https://git-wip-us.apache.org/repos/asf/stratos into docker-grouping-merge
Posted by ra...@apache.org.
Merge branch 'docker-grouping-merge' of https://git-wip-us.apache.org/repos/asf/stratos into docker-grouping-merge
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/21ed2123
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/21ed2123
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/21ed2123
Branch: refs/heads/docker-grouping-merge
Commit: 21ed21233d9a4259322c87bce895693456cb134b
Parents: 8b66cba 71e8ac2
Author: R-Rajkumar <rr...@gmail.com>
Authored: Mon Nov 3 15:22:08 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Mon Nov 3 15:22:08 2014 +0530
----------------------------------------------------------------------
.../impl/CloudControllerServiceImpl.java | 29 -----
.../internal/CloudControllerDSComponent.java | 9 +-
.../controller/topology/TopologyBuilder.java | 109 -------------------
.../topology/TopologyEventPublisher.java | 9 --
4 files changed, 3 insertions(+), 153 deletions(-)
----------------------------------------------------------------------