You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/05/05 13:13:25 UTC
stratos git commit: code refactoring according to code review and
adding descriptive logs
Repository: stratos
Updated Branches:
refs/heads/master 6b7061d10 -> 5c87d5de2
code refactoring according to code review and adding descriptive logs
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5c87d5de
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5c87d5de
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5c87d5de
Branch: refs/heads/master
Commit: 5c87d5de2ad15788f47907d89641c52dd3d21d53
Parents: 6b7061d
Author: reka <rt...@gmail.com>
Authored: Tue May 5 16:42:57 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Tue May 5 16:43:13 2015 +0530
----------------------------------------------------------------------
.../applications/topic/ApplicationBuilder.java | 4 +-
.../AutoscalerTopologyEventReceiver.java | 10 +++-
.../stratos/autoscaler/monitor/Monitor.java | 13 ++--
.../monitor/cluster/ClusterMonitor.java | 10 ++--
.../monitor/component/ApplicationMonitor.java | 6 +-
.../monitor/component/GroupMonitor.java | 2 +-
.../component/ParentComponentMonitor.java | 63 +++++++++-----------
.../builder/MonitorStatusEventBuilder.java | 4 +-
.../rule/AutoscalerRuleEvaluator.java | 18 ++++--
9 files changed, 72 insertions(+), 58 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/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 08d8841..40c198d 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
@@ -289,7 +289,7 @@ public class ApplicationBuilder {
applicationMonitor.isTerminating()) {
//Stopping the child threads
if (applicationMonitor.hasMonitors() && applicationMonitor.isTerminating()) {
- for (Monitor monitor1 : applicationMonitor.getAliasToActiveMonitorsMap().values()) {
+ for (Monitor monitor1 : applicationMonitor.getAliasToActiveChildMonitorsMap().values()) {
//destroying the drools
monitor1.destroy();
}
@@ -405,7 +405,7 @@ public class ApplicationBuilder {
if (monitor != null) {
if (monitor.hasMonitors() && applicationMonitor.isTerminating()) {
- for (Monitor monitor1 : monitor.getAliasToActiveMonitorsMap().values()) {
+ for (Monitor monitor1 : monitor.getAliasToActiveChildMonitorsMap().values()) {
//destroying the drools
monitor1.destroy();
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 4f325bd..d7ec1b4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -134,9 +134,13 @@ public class AutoscalerTopologyEventReceiver {
//acquire read lock
ApplicationHolder.acquireReadLock();
//start the application monitor
- ApplicationContext applicationContext = AutoscalerContext.getInstance().getApplicationContext(appId);
- if (applicationContext != null && applicationContext.getStatus().equals(ApplicationContext.STATUS_DEPLOYED)) {
- if (!AutoscalerContext.getInstance().containsApplicationPendingMonitor(appId)) {
+ ApplicationContext applicationContext = AutoscalerContext.getInstance().
+ getApplicationContext(appId);
+ if (applicationContext != null &&
+ applicationContext.getStatus().
+ equals(ApplicationContext.STATUS_DEPLOYED)) {
+ if (!AutoscalerContext.getInstance().
+ containsApplicationPendingMonitor(appId)) {
appMonitorCreationTriggered = true;
AutoscalerUtil.getInstance().startApplicationMonitor(appId);
break;
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
index b5f5997..bc43a4d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
@@ -29,7 +29,7 @@ import java.util.Map;
/**
* Abstract class for the monitoring functionality in Autoscaler.
*/
-public abstract class Monitor implements EventHandler {
+public abstract class Monitor implements EventHandler, Runnable {
//Monitor types
public enum MonitorType {
Application, Group, Cluster
@@ -56,6 +56,11 @@ public abstract class Monitor implements EventHandler {
public abstract void destroy();
/**
+ * This will monitor the network partition context with child notifications
+ */
+ public abstract void monitor();
+
+ /**
* This will create Instance on demand as requested by monitors
*
* @param instanceId instance Id of the instance to be created
@@ -67,7 +72,7 @@ public abstract class Monitor implements EventHandler {
/**
* Return the id of the monitor
*
- * @return id
+ * @return id identifier of the monitor
*/
public String getId() {
return id;
@@ -92,7 +97,7 @@ public abstract class Monitor implements EventHandler {
/**
* To get the appId of the monitor
*
- * @return app id
+ * @return application id of the monitor
*/
public String getAppId() {
return appId;
@@ -129,7 +134,7 @@ public abstract class Monitor implements EventHandler {
/**
* Return whether this monitor has startup dependencies
*
- * @return hasStartupDependents
+ * @return whether the monitor has startup dependents
*/
public boolean hasStartupDependents() {
return hasStartupDependents;
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 88f0829..d000f07 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -82,7 +82,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
* and perform minimum instance check and scaling check using the underlying
* rules engine.
*/
-public class ClusterMonitor extends Monitor implements Runnable {
+public class ClusterMonitor extends Monitor {
private final ScheduledExecutorService scheduler;
private final ExecutorService executorService;
@@ -123,9 +123,10 @@ public class ClusterMonitor extends Monitor implements Runnable {
int threadPoolSize = Integer.getInteger(AutoscalerConstants.CLUSTER_MONITOR_THREAD_POOL_SIZE, 50);
executorService = StratosThreadPool.getExecutorService(
AutoscalerConstants.CLUSTER_MONITOR_THREAD_POOL_ID, threadPoolSize);
+ this.clusterId = cluster.getClusterId();
readConfigurations();
- autoscalerRuleEvaluator = new AutoscalerRuleEvaluator();
+ autoscalerRuleEvaluator = new AutoscalerRuleEvaluator(cluster.getClusterId());
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.OBSOLETE_CHECK_DROOL_FILE);
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.SCALE_CHECK_DROOL_FILE);
autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.MIN_CHECK_DROOL_FILE);
@@ -146,7 +147,6 @@ public class ClusterMonitor extends Monitor implements Runnable {
this.groupScalingEnabledSubtree = groupScalingEnabledSubtree;
this.setCluster(new Cluster(cluster));
this.serviceType = cluster.getServiceName();
- this.clusterId = cluster.getClusterId();
this.monitoringStarted = new AtomicBoolean(false);
this.hasScalingDependents = hasScalingDependents;
this.deploymentPolicyId = deploymentPolicyId;
@@ -619,7 +619,9 @@ public class ClusterMonitor extends Monitor implements Runnable {
int monitorInterval = conf.getInt(AutoscalerConstants.Cluster_MONITOR_INTERVAL, 90000);
setMonitorIntervalMilliseconds(monitorInterval);
if (log.isDebugEnabled()) {
- log.debug("ClusterMonitor task interval set to : " + getMonitorIntervalMilliseconds());
+ log.debug("ClusterMonitor task interval set to : [application-id] " + appId +
+ " [cluster] " + clusterId + " [monitor-interval] " +
+ getMonitorIntervalMilliseconds());
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index 2a99203..8568b0d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -172,7 +172,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
NetworkPartitionContext nwPartitionContext) {
//Traverse through all the children to see whether all have sent the scale down
boolean allChildrenScaleDown = false;
- for (Monitor monitor : this.aliasToActiveMonitorsMap.values()) {
+ for (Monitor monitor : this.aliasToActiveChildMonitorsMap.values()) {
if (instanceContext.getScalingDownBeyondMinEvent(monitor.getId()) == null) {
allChildrenScaleDown = false;
break;
@@ -203,7 +203,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
*/
public Monitor findGroupMonitorWithId(String groupId) {
//searching within active monitors
- return findGroupMonitor(groupId, aliasToActiveMonitorsMap);
+ return findGroupMonitor(groupId, aliasToActiveChildMonitorsMap);
}
@@ -222,7 +222,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
for (Monitor monitor : monitors.values()) {
if (monitor instanceof ParentComponentMonitor) {
Monitor groupMonitor = findGroupMonitor(id, ((ParentComponentMonitor) monitor).
- getAliasToActiveMonitorsMap());
+ getAliasToActiveChildMonitorsMap());
if (groupMonitor != null) {
return groupMonitor;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index ce5dc1e..5892bb6 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -212,7 +212,7 @@ public class GroupMonitor extends ParentComponentMonitor {
boolean forceScaleDown) {
//Traverse through all the children to see whether all have sent the scale down
boolean allChildrenScaleDown = false;
- for (Monitor monitor : this.aliasToActiveMonitorsMap.values()) {
+ for (Monitor monitor : this.aliasToActiveChildMonitorsMap.values()) {
if (instanceContext.getScalingDownBeyondMinEvent(monitor.getId()) == null) {
allChildrenScaleDown = false;
break;
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index ce3159f..fe3812b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -63,7 +63,7 @@ import java.util.concurrent.*;
* Monitor is to monitor it's child monitors and
* control them according to the dependencies respectively.
*/
-public abstract class ParentComponentMonitor extends Monitor implements Runnable {
+public abstract class ParentComponentMonitor extends Monitor {
private static final Log log = LogFactory.getLog(ParentComponentMonitor.class);
@@ -77,9 +77,9 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
//The monitors dependency tree with all the scaling dependencies
protected Set<ScalingDependentList> scalingDependencies;
//monitors map, key=GroupAlias/clusterId and value=GroupMonitor/AbstractClusterMonitor
- protected Map<String, Monitor> aliasToActiveMonitorsMap;
+ protected Map<String, Monitor> aliasToActiveChildMonitorsMap;
//Pending monitors list
- protected List<String> pendingMonitorsList;
+ protected List<String> pendingChildMonitorsList;
//instanceIds map, key=alias, value instanceIds stopped monitors
protected Map<String, List<String>> inactiveInstancesMap;
//terminating map, key=alias, value instanceIds
@@ -92,10 +92,10 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
private int monitoringIntervalMilliseconds = 60000; //TODO get this from config file
public ParentComponentMonitor(ParentComponent component) throws DependencyBuilderException {
- aliasToActiveMonitorsMap = new ConcurrentHashMap<String, Monitor>();
+ aliasToActiveChildMonitorsMap = new ConcurrentHashMap<String, Monitor>();
inactiveInstancesMap = new ConcurrentHashMap<String, List<String>>();
terminatingInstancesMap = new ConcurrentHashMap<String, List<String>>();
- pendingMonitorsList = new ArrayList<String>();
+ pendingChildMonitorsList = new ArrayList<String>();
id = component.getUniqueIdentifier();
// Building the startup dependencies for this monitor within the immediate children
@@ -116,11 +116,6 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
networkPartitionCtxts = new HashMap<String, NetworkPartitionContext>();
}
- /**
- * This will monitor the network partition context with child notifications
- */
- public abstract void monitor();
-
public void startScheduler() {
schedulerFuture = scheduler.scheduleAtFixedRate(this, 0, monitoringIntervalMilliseconds, TimeUnit.MILLISECONDS);
}
@@ -183,7 +178,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
if (log.isDebugEnabled()) {
log.debug("Dependency check for the Group " + context.getId() + " started");
}
- if (!this.aliasToActiveMonitorsMap.containsKey(context.getId())) {
+ if (!this.aliasToActiveChildMonitorsMap.containsKey(context.getId())) {
log.info(String.format("Starting dependent monitor on termination: [application] %s [component] %s",
getAppId(), context.getId()));
List<String> parentInstanceIds = new ArrayList<String>();
@@ -191,7 +186,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
startMonitor(this, context, parentInstanceIds);
} else {
//starting a new instance of the child
- Monitor monitor = aliasToActiveMonitorsMap.get(context.getId());
+ Monitor monitor = aliasToActiveChildMonitorsMap.get(context.getId());
//Creating the new instance
monitor.createInstanceOnDemand(instanceId);
}
@@ -212,7 +207,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
}
for (ApplicationChildContext context : applicationContexts) {
- if (!this.aliasToActiveMonitorsMap.containsKey(context.getId())) {
+ if (!this.aliasToActiveChildMonitorsMap.containsKey(context.getId())) {
log.info(String.format("Starting dependent monitor: [application] %s [component] %s",
getAppId(), context.getId()));
startMonitor(this, context, parentInstanceIds);
@@ -220,7 +215,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
log.info(String.format("Dependent monitor already created, creating instance: " +
"[application] %s [component] %s", getAppId(), context.getId()));
- Monitor monitor = aliasToActiveMonitorsMap.get(context.getId());
+ Monitor monitor = aliasToActiveChildMonitorsMap.get(context.getId());
// Creating new instance
for (String instanceId : parentInstanceIds) {
monitor.createInstanceOnDemand(instanceId);
@@ -313,7 +308,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
removeInstanceFromFromTerminatingMap(childId, instanceId);
boolean startDep = false;
- if (!aliasToActiveMonitorsMap.containsKey(childId) || !pendingMonitorsList.contains(childId)) {
+ if (!aliasToActiveChildMonitorsMap.containsKey(childId) || !pendingChildMonitorsList.contains(childId)) {
startDep = startDependency(childId, instanceId);
}
@@ -348,7 +343,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
// has to put the children down to terminating
if (this.startupDependencyTree.getTerminationBehavior() ==
DependencyTree.TerminationBehavior.TERMINATE_ALL &&
- terminationList.size() == this.aliasToActiveMonitorsMap.size()) {
+ terminationList.size() == this.aliasToActiveChildMonitorsMap.size()) {
//handling the killall scenario
if (this.parent != null) {
//send terminating to the parent. So that it will push terminating to its children
@@ -370,7 +365,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
//Checking the termination dependents status
for (ApplicationChildContext terminationContext : terminationList) {
//Check whether dependent is in_active, then start to kill it
- monitor = this.aliasToActiveMonitorsMap.
+ monitor = this.aliasToActiveChildMonitorsMap.
get(terminationContext.getId());
//start to kill it
if (monitor != null) {
@@ -469,7 +464,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
instanceId + "to be terminated...");
allDependentTerminated = false;
return allDependentTerminated;
- } else if (this.aliasToActiveMonitorsMap.get(context1.getId()).getInstance(instanceId) != null) {
+ } else if (this.aliasToActiveChildMonitorsMap.get(context1.getId()).getInstance(instanceId) != null) {
log.info("[Dependent] " + context1.getId() + "[Instance] " + instanceId +
"has not been started to terminate yet. Hence waiting....");
} else {
@@ -492,7 +487,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
+ " to be terminated");
parentsTerminated = false;
return parentsTerminated;
- } else if (this.aliasToActiveMonitorsMap.get(context1.getId()).getInstance(instanceId) != null) {
+ } else if (this.aliasToActiveChildMonitorsMap.get(context1.getId()).getInstance(instanceId) != null) {
log.info("[Dependent Parent] " + context1.getId() + "[Instance] " + instanceId +
"has not been started to terminate yet. Hence waiting....");
} else {
@@ -515,8 +510,8 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
log.info("Dependent [Monitor] " + context1.getId()
+ " is not yet active");
return parentsActive;
- } else if (this.aliasToActiveMonitorsMap.containsKey(context1.getId())) {
- Monitor monitor = this.aliasToActiveMonitorsMap.get(context1.getId());
+ } else if (this.aliasToActiveChildMonitorsMap.containsKey(context1.getId())) {
+ Monitor monitor = this.aliasToActiveChildMonitorsMap.get(context1.getId());
if (monitor instanceof GroupMonitor) {
try {
@@ -641,7 +636,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
contains(highestScalingEventOfChild.getId())) {
for (String scalingDependentListComponent : scalingDependentList
.getScalingDependentListComponents()) {
- Monitor monitor = aliasToActiveMonitorsMap.get(
+ Monitor monitor = aliasToActiveChildMonitorsMap.get(
scalingDependentListComponent);
if (monitor instanceof GroupMonitor ||
monitor instanceof ClusterMonitor) {
@@ -715,8 +710,8 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
protected synchronized void startMonitor(ParentComponentMonitor parent,
ApplicationChildContext context, List<String> parentInstanceIds) {
- if (!this.aliasToActiveMonitorsMap.containsKey(context.getId())) {
- pendingMonitorsList.add(context.getId());
+ if (!this.aliasToActiveChildMonitorsMap.containsKey(context.getId())) {
+ pendingChildMonitorsList.add(context.getId());
executorService.submit(new MonitorAdder(parent, context, this.appId, parentInstanceIds));
String monitorTypeStr = AutoscalerUtil.findMonitorType(context).toString().toLowerCase();
@@ -725,34 +720,34 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
}
}
- public Map<String, Monitor> getAliasToActiveMonitorsMap() {
- return aliasToActiveMonitorsMap;
+ public Map<String, Monitor> getAliasToActiveChildMonitorsMap() {
+ return aliasToActiveChildMonitorsMap;
}
- public void setAliasToActiveMonitorsMap(Map<String, Monitor> aliasToActiveMonitorsMap) {
- this.aliasToActiveMonitorsMap = aliasToActiveMonitorsMap;
+ public void setAliasToActiveChildMonitorsMap(Map<String, Monitor> aliasToActiveChildMonitorsMap) {
+ this.aliasToActiveChildMonitorsMap = aliasToActiveChildMonitorsMap;
}
public boolean hasActiveMonitors() {
boolean hasMonitor = false;
- if ((this.aliasToActiveMonitorsMap != null && !this.aliasToActiveMonitorsMap.isEmpty())) {
+ if ((this.aliasToActiveChildMonitorsMap != null && !this.aliasToActiveChildMonitorsMap.isEmpty())) {
hasMonitor = true;
}
return hasMonitor;
}
public Monitor getMonitor(String childId) {
- return this.aliasToActiveMonitorsMap.get(childId);
+ return this.aliasToActiveChildMonitorsMap.get(childId);
}
public boolean hasMonitors() {
- return this.aliasToActiveMonitorsMap != null;
+ return this.aliasToActiveChildMonitorsMap != null;
}
public boolean hasIndependentChild() {
boolean hasInDepChild = false;
- for (Monitor monitor : this.aliasToActiveMonitorsMap.values()) {
+ for (Monitor monitor : this.aliasToActiveChildMonitorsMap.values()) {
if (!monitor.hasStartupDependents()) {
hasInDepChild = true;
break;
@@ -875,8 +870,8 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
throw new RuntimeException(msg);
}
- aliasToActiveMonitorsMap.put(context.getId(), monitor);
- pendingMonitorsList.remove(context.getId());
+ aliasToActiveChildMonitorsMap.put(context.getId(), monitor);
+ pendingChildMonitorsList.remove(context.getId());
if (log.isInfoEnabled()) {
long startupTime = (endTime - startTime) / 1000;
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
index 19d6840..abe1c57 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
@@ -88,7 +88,7 @@ public class MonitorStatusEventBuilder {
public static void notifyChildren(ParentComponentMonitor componentMonitor, MonitorStatusEvent statusEvent)
throws MonitorNotFoundException {
- for (Monitor activeChildMonitor : componentMonitor.getAliasToActiveMonitorsMap().values()) {
+ for (Monitor activeChildMonitor : componentMonitor.getAliasToActiveChildMonitorsMap().values()) {
activeChildMonitor.onParentStatusEvent(statusEvent);
}
}
@@ -129,7 +129,7 @@ public class MonitorStatusEventBuilder {
}
public static void notifyChildren(ParentComponentMonitor componentMonitor, ScalingEvent scalingEvent) {
- for (Monitor activeChildMonitor : componentMonitor.getAliasToActiveMonitorsMap().values()) {
+ for (Monitor activeChildMonitor : componentMonitor.getAliasToActiveChildMonitorsMap().values()) {
activeChildMonitor.onParentScalingEvent(scalingEvent);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/5c87d5de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 2ba6ee9..c51e2ea 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -44,16 +44,24 @@ public class AutoscalerRuleEvaluator {
private static final Log log = LogFactory.getLog(AutoscalerRuleEvaluator.class);
private static Map<String, KnowledgeBase> knowledgeBases;
+ private String clusterId;
- public AutoscalerRuleEvaluator() {
+ public AutoscalerRuleEvaluator(String clusterId) {
knowledgeBases = new HashMap<String, KnowledgeBase>();
+ this.clusterId = clusterId;
}
public void parseAndBuildKnowledgeBaseForDroolsFile(String drlFileName) {
- knowledgeBases.put(drlFileName, readKnowledgeBase(drlFileName));
-
- if (log.isDebugEnabled()) {
- log.debug("Drools file is parsed successfully: " + drlFileName);
+ KnowledgeBase knowledgeBase = readKnowledgeBase(drlFileName);
+ if(knowledgeBase == null) {
+ log.error("Knowledge base couldn't be read for [cluster] " + clusterId +
+ " [drool-file] " + drlFileName);
+ } else {
+ knowledgeBases.put(drlFileName, knowledgeBase);
+ if (log.isDebugEnabled()) {
+ log.debug("Drools file is parsed successfully: [cluster] " + clusterId +
+ " [ file-name] " + drlFileName);
+ }
}
}