You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/10/30 05:13:35 UTC
[11/50] [abbrv] git commit: fixing fault handling and fixing when
setting hasDependent to child monitors
fixing fault handling and fixing when setting hasDependent to child monitors
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/1b224bd8
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/1b224bd8
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/1b224bd8
Branch: refs/heads/docker-grouping-merge
Commit: 1b224bd86e726db82ee92b155c53c4486fd7fec8
Parents: 0300d17
Author: reka <rt...@gmail.com>
Authored: Mon Oct 27 15:29:13 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Mon Oct 27 15:29:44 2014 +0530
----------------------------------------------------------------------
.../health/AutoscalerHealthStatEventReceiver.java | 2 +-
.../autoscaler/monitor/AbstractClusterMonitor.java | 5 ++++-
.../autoscaler/monitor/ApplicationMonitorFactory.java | 11 +++++++++--
.../org/apache/stratos/autoscaler/monitor/Monitor.java | 4 ++--
4 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/1b224bd8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatEventReceiver.java
index f090fcb..6986fbb 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatEventReceiver.java
@@ -494,7 +494,7 @@ public class AutoscalerHealthStatEventReceiver implements Runnable {
}
return null;
}
- return null;
+ return monitor;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/1b224bd8/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
index e816a42..838929c 100644
--- 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
@@ -234,8 +234,11 @@ abstract public class AbstractClusterMonitor extends Monitor implements Runnable
* 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)) {
+ if((status == ClusterStatus.Inactive && this.hasDependent)) {
MonitorStatusEventBuilder.handleClusterStatusEvent(this.parent, this.status, this.clusterId);
+ } else {
+ log.info("[Cluster] " + clusterId + "is not notifying the parent, " +
+ "since it is identified as the independent unit");
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/1b224bd8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java
index 92b3eb8..b60e645 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ApplicationMonitorFactory.java
@@ -108,8 +108,11 @@ public class ApplicationMonitorFactory {
groupMonitor.setAppId(appId);
if(parentMonitor != null) {
groupMonitor.setParent(parentMonitor);
- if(!parentMonitor.isHasDependent() && !context.hasChild()) {
+ //Setting the dependent behaviour of the monitor
+ if(parentMonitor.hasMonitors() && (parentMonitor.isDependent() || context.hasChild())) {
groupMonitor.setHasDependent(true);
+ } else {
+ groupMonitor.setHasDependent(false);
}
//TODO make sure when it is async
@@ -146,6 +149,8 @@ public class ApplicationMonitorFactory {
Application application = TopologyManager.getTopology().getApplication(appId);
if (application != null) {
applicationMonitor = new ApplicationMonitor(application);
+ applicationMonitor.setHasDependent(false);
+
} else {
String msg = "[Application] " + appId + " cannot be found in the Topology";
throw new TopologyInConsistentException(msg);
@@ -286,8 +291,10 @@ public class ApplicationMonitorFactory {
clusterMonitor.addNetworkPartitionCtxt(networkPartitionContext);
clusterMonitor.setParent(parentMonitor);
- if(!parentMonitor.isHasDependent() && !context.hasChild()) {
+ if(parentMonitor.hasActiveMonitors() && (parentMonitor.isDependent() || context.hasChild())) {
clusterMonitor.setHasDependent(true);
+ } else {
+ clusterMonitor.setHasDependent(false);
}
AutoscalerContext.getInstance().addMonitor(clusterMonitor);
if (log.isInfoEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/1b224bd8/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 7199ee8..b1e2eb3 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
@@ -75,7 +75,7 @@ public abstract class Monitor implements EventHandler {
public boolean hasActiveMonitors() {
boolean hasMonitor = false;
- if(this.aliasToActiveMonitorsMap != null ) {
+ if(this.aliasToActiveMonitorsMap != null && !this.aliasToActiveMonitorsMap.isEmpty()) {
hasMonitor = true;
}
return hasMonitor;
@@ -86,7 +86,7 @@ public abstract class Monitor implements EventHandler {
return this.aliasToActiveMonitorsMap != null || this.aliasToInActiveMonitorsMap != null;
}
- public boolean isHasDependent() {
+ public boolean isDependent() {
return hasDependent;
}