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 2014/10/12 21:14:45 UTC
[1/2] git commit: fixing group activation issue
Repository: stratos
Updated Branches:
refs/heads/4.0.0-grouping 0403bc8ea -> a456b4e22
fixing group activation issue
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e5cec493
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e5cec493
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e5cec493
Branch: refs/heads/4.0.0-grouping
Commit: e5cec49351816c8d9bcdd791499696e766c7cb5b
Parents: 3560f07
Author: reka <rt...@gmail.com>
Authored: Mon Oct 13 00:44:10 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Mon Oct 13 00:44:10 2014 +0530
----------------------------------------------------------------------
.../stratos/autoscaler/monitor/Monitor.java | 11 ++++++---
.../autoscaler/monitor/group/GroupMonitor.java | 3 +++
.../status/checker/StatusChecker.java | 26 ++++++++++++++++----
3 files changed, 31 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5cec493/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 486036a..cc30f7b 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
@@ -285,7 +285,8 @@ public abstract class Monitor implements EventHandler {
monitor = AutoscalerUtil.getClusterMonitor(cluster);
monitor.setParent(parent);
//setting the status of cluster monitor w.r.t Topology cluster
- if(cluster.getStatus() != Status.Created) {
+ //if(cluster.getStatus() != Status.Created &&
+ if(cluster.getStatus() != monitor.getStatus()) {
//updating the status, so that it will notify the parent
monitor.setStatus(cluster.getStatus());
}
@@ -354,12 +355,14 @@ public abstract class Monitor implements EventHandler {
log.debug("Group monitor is going to be started for [group] "
+ dependency);
}
- monitor = AutoscalerUtil.getGroupMonitor(component.getGroup(dependency));
+ Group group = component.getGroup(dependency);
+ monitor = AutoscalerUtil.getGroupMonitor(group);
monitor.setParent(parent);
//setting the status of cluster monitor w.r.t Topology cluster
- if(component.getStatus() != Status.Created) {
+ //if(group.getStatus() != Status.Created &&
+ if(group.getStatus() != monitor.getStatus()) {
//updating the status, so that it will notify the parent
- monitor.setStatus(component.getStatus());
+ monitor.setStatus(group.getStatus());
}
//monitor.addObserver(parent);
success = true;
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5cec493/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
index 70dc0a9..90876cb 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
@@ -55,6 +55,7 @@ public class GroupMonitor extends Monitor implements EventHandler {
super(group);
this.id = group.getAlias();
startDependency();
+ this.status = Status.Created;
}
@@ -84,6 +85,8 @@ public class GroupMonitor extends Monitor implements EventHandler {
try {
//if life cycle is empty, need to start the monitor
boolean startDep = startDependency(statusEvent.getId());
+ log.info("started a child: " + startDep + " by the group/cluster: " + id);
+
//updating the life cycle and current status
context.setStatus(statusEvent.getStatus());
context.addStatusToLIfeCycle(statusEvent.getStatus());
http://git-wip-us.apache.org/repos/asf/stratos/blob/e5cec493/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 9bf2241..4607f47 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
@@ -26,7 +26,6 @@ import org.apache.stratos.autoscaler.PartitionContext;
import org.apache.stratos.autoscaler.grouping.topic.StatusEventPublisher;
import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
import org.apache.stratos.messaging.domain.topology.*;
-import org.apache.stratos.messaging.domain.topology.util.GroupStatus;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import java.util.Map;
@@ -100,9 +99,11 @@ public class StatusChecker {
try {
//TODO getting lock
TopologyManager.acquireReadLockForApplication(appId);
- Map<String, ClusterDataHolder> clusterIds = component.getClusterDataMap();
- Map<String, Group> groups = component.getAliasToGroupMap();
- updateChildStatus(appId, idOfChild, groups, clusterIds, component);
+ ParentComponent component1 = TopologyManager.getTopology().
+ getApplication(appId).getGroupRecursively(component.getUniqueIdentifier());
+ Map<String, ClusterDataHolder> clusterIds = component1.getClusterDataMap();
+ Map<String, Group> groups = component1.getAliasToGroupMap();
+ updateChildStatus(appId, idOfChild, groups, clusterIds, component1);
} finally {
TopologyManager.releaseReadLockForApplication(appId);
@@ -169,17 +170,30 @@ public class StatusChecker {
clusterFound = true;
}
}
+ log.info("cluster found: " + clusterFound);
if (clusterFound || groups.containsKey(id)) {
childFound = true;
if (!clusterData.isEmpty() && !groups.isEmpty()) {
+ if(log.isDebugEnabled()) {
+ log.debug("group active found: " + clusterFound);
+ }
clustersActive = getClusterStatus(clusterData);
groupsActive = getGroupStatus(groups);
+ if(log.isDebugEnabled()) {
+ log.debug("Active cluster" + clustersActive + " and group: " + groupActive);
+ }
groupActive = clustersActive && groupsActive;
} else if (!groups.isEmpty()) {
groupsActive = getGroupStatus(groups);
+ if(log.isDebugEnabled()) {
+ log.info("group active found: " + clusterFound);
+ }
groupActive = groupsActive;
} else if (!clusterData.isEmpty()) {
clustersActive = getClusterStatus(clusterData);
+ if(log.isDebugEnabled()) {
+ log.debug("Active cluster" + clustersActive + " and group: " + groupActive);
+ }
groupActive = clustersActive;
} else {
log.warn("Clusters/groups not found in this [component] "+ appId);
@@ -187,10 +201,12 @@ public class StatusChecker {
//send the activation event
if (parent instanceof Application && groupActive) {
//send application activated event
+ log.info("sending app activate found: " + appId);
StatusEventPublisher.sendApplicationActivatedEvent(appId);
} else if (parent instanceof Group && groupActive) {
//send activation to the parent
- StatusEventPublisher.sendGroupActivatedEvent(appId, ((Group) parent).getAlias());
+ log.info("sending group activate found: " + parent.getUniqueIdentifier());
+ StatusEventPublisher.sendGroupActivatedEvent(appId, parent.getUniqueIdentifier());
}
return childFound;
} else {
[2/2] git commit: Merge branch '4.0.0-grouping' of
https://git-wip-us.apache.org/repos/asf/stratos into 4.0.0-grouping
Posted by re...@apache.org.
Merge branch '4.0.0-grouping' of https://git-wip-us.apache.org/repos/asf/stratos into 4.0.0-grouping
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a456b4e2
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a456b4e2
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a456b4e2
Branch: refs/heads/4.0.0-grouping
Commit: a456b4e229db60e5005a50b0aed3f454530978cc
Parents: e5cec49 0403bc8
Author: reka <rt...@gmail.com>
Authored: Mon Oct 13 00:44:33 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Mon Oct 13 00:44:33 2014 +0530
----------------------------------------------------------------------
.../application/parser/ParserUtils.java | 34 ++-
.../CompositeApplicationParseTest.java | 293 +++++++++++++++++++
2 files changed, 320 insertions(+), 7 deletions(-)
----------------------------------------------------------------------