You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/12/07 11:19:34 UTC
[05/50] [abbrv] stratos git commit: Add debug log to print status of
each group instance in GroupStatusActiveProcessor
Add debug log to print status of each group instance in GroupStatusActiveProcessor
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/0706e45a
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/0706e45a
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/0706e45a
Branch: refs/heads/release-4.1.5
Commit: 0706e45aef76722f79bf123c9791ae43caa928f9
Parents: 9540eae
Author: Akila Perera <ra...@gmail.com>
Authored: Mon Nov 30 00:17:33 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Mon Dec 7 10:16:25 2015 +0000
----------------------------------------------------------------------
.../group/GroupStatusActiveProcessor.java | 84 +++++++++++++++-----
1 file changed, 63 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/0706e45a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
index b6b0a97..260c78e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusActiveProcessor.java
@@ -24,8 +24,14 @@ import org.apache.stratos.autoscaler.applications.ApplicationHolder;
import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
import org.apache.stratos.autoscaler.status.processor.StatusProcessor;
import org.apache.stratos.messaging.domain.application.*;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
+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.topology.TopologyManager;
+import java.util.Collection;
import java.util.Map;
/**
@@ -41,8 +47,7 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
}
@Override
- public boolean process(String idOfComponent, String appId,
- String instanceId) {
+ public boolean process(String idOfComponent, String appId, String instanceId) {
boolean statusChanged;
statusChanged = doProcess(idOfComponent, appId, instanceId);
if (statusChanged) {
@@ -54,8 +59,8 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
return nextProcessor.process(idOfComponent, appId, instanceId);
} else {
- log.warn(String.format("No possible state change found for [component] %s [instance] %s",
- idOfComponent, instanceId));
+ log.warn(String.format("No possible state change found for [component] %s, [instance] %s", idOfComponent,
+ instanceId));
}
return false;
}
@@ -67,8 +72,9 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
Map<String, ClusterDataHolder> clusterData;
if (log.isDebugEnabled()) {
- log.debug("StatusChecker calculating the active status for the group " +
- "[ " + idOfComponent + " ] " + " for the instance " + " [ " + instanceId + " ]");
+ log.debug(String.format(
+ "GroupStatusActiveProcessor is checking the status of [application-id] %s, [group-id] %s, "
+ + "[group-instance-id] %s", appId, idOfComponent, instanceId));
}
try {
ApplicationHolder.acquireWriteLock();
@@ -84,35 +90,71 @@ public class GroupStatusActiveProcessor extends GroupStatusProcessor {
groups = component.getAliasToGroupMap();
clusterData = component.getClusterDataMap();
- if (groups.isEmpty() &&
- getAllClusterInSameState(clusterData, ClusterStatus.Active, instanceId) ||
- clusterData.isEmpty() &&
- getAllGroupInSameState(groups, GroupStatus.Active, instanceId) ||
- getAllClusterInSameState(clusterData, ClusterStatus.Active, instanceId) &&
- getAllGroupInSameState(groups, GroupStatus.Active, instanceId)) {
+ if (groups.isEmpty() && getAllClusterInSameState(clusterData, ClusterStatus.Active, instanceId) ||
+ clusterData.isEmpty() && getAllGroupInSameState(groups, GroupStatus.Active, instanceId) ||
+ getAllClusterInSameState(clusterData, ClusterStatus.Active, instanceId) && getAllGroupInSameState(
+ groups, GroupStatus.Active, instanceId)) {
if (component instanceof Application) {
//send application activated event
- log.info("Sending application instance active for [application] " + appId +
- " [instance] " + instanceId);
+ log.info(String.format(
+ "Sending application instance active event for [application-id] %s, [instance-id] %s",
+ appId, instanceId));
ApplicationBuilder.handleApplicationInstanceActivatedEvent(appId, instanceId);
return true;
} else {
//send activation to the parent
- log.info("Sending group instance active for [group] " +
- component.getUniqueIdentifier() + " [instance] " + instanceId);
- ApplicationBuilder.handleGroupInstanceActivatedEvent(appId,
- component.getUniqueIdentifier(), instanceId);
+ log.info(String.format(
+ "Sending group instance active event for [application-id] %s, [group-id] %s, "
+ + "[instance-id] %s", appId, component.getUniqueIdentifier(), instanceId));
+ ApplicationBuilder
+ .handleGroupInstanceActivatedEvent(appId, component.getUniqueIdentifier(), instanceId);
return true;
}
-
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format(
+ "GroupStatusActiveProcessor did not detect any status change for [application-id] %s, "
+ + "[group-id] %s, [instance-id] %s", appId, idOfComponent, instanceId));
+ for (Map.Entry<String, Group> entry : groups.entrySet()) {
+ Collection<Group> groupCollection = entry.getValue().getGroups();
+ for (Group group : groupCollection) {
+ for (GroupInstance groupInstance : group.getInstanceIdToInstanceContextMap().values()) {
+ log.debug(String.format("Groups: [group-id] %s, [group-instance-id] %s, [status] %s",
+ group.getUniqueIdentifier(), groupInstance.getInstanceId(), entry.getKey(),
+ groupInstance.getStatus()));
+ }
+
+ }
+
+ }
+ for (Map.Entry<String, ClusterDataHolder> entry : clusterData.entrySet()) {
+ String serviceName = entry.getValue().getServiceType();
+ String clusterId = entry.getValue().getClusterId();
+ TopologyManager.acquireReadLockForCluster(serviceName, clusterId);
+ try {
+ Service service = TopologyManager.getTopology().getService(serviceName);
+ Cluster cluster = service.getCluster(clusterId);
+ ClusterInstance context = cluster.getInstanceContexts(instanceId);
+ if (context != null) {
+ log.debug(String.format(
+ "ClusterData: [cluster-id] %s, [cluster-instance-id] %s, [status] %s",
+ entry.getKey(), instanceId, context.getStatus()));
+ } else {
+ log.debug(String.format(
+ "ClusterData: cluster instance context is null: [cluster-instance-id] %s",
+ instanceId));
+ }
+ } finally {
+ TopologyManager.releaseReadLockForCluster(serviceName, clusterId);
+ }
+ }
+ }
}
} finally {
ApplicationHolder.releaseWriteLock();
-
}
return false;
}
-
}