fixing terminated processors to notify listeners if instance already removed
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/9ccd5017 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/9ccd5017 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/9ccd5017 Branch: refs/heads/4.1.0-test Commit: 9ccd50175184c6c7c3e100034bd0bacea659dbc8 Parents: 196336c Author: reka <[email protected]> Authored: Thu Dec 11 14:48:58 2014 +0530 Committer: reka <[email protected]> Committed: Thu Dec 11 19:24:11 2014 +0530 ---------------------------------------------------------------------- ...ationInstanceTerminatedMessageProcessor.java | 10 ++++++--- .../GroupInstanceTerminatedProcessor.java | 21 +++++++++--------- .../ClusterInstanceCreatedMessageProcessor.java | 4 +++- .../ClusterInstanceTerminatedProcessor.java | 23 ++++++++++---------- 4 files changed, 32 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/9ccd5017/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInstanceTerminatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInstanceTerminatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInstanceTerminatedMessageProcessor.java index ebba54b..5479050 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInstanceTerminatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationInstanceTerminatedMessageProcessor.java @@ -93,10 +93,14 @@ public class ApplicationInstanceTerminatedMessageProcessor extends MessageProces ApplicationInstance instance = applications.getApplication(appId). getInstanceContexts(instanceId); if(instance == null) { - log.info("Application [Instance] " + instanceId + " has already been removed"); + if(log.isDebugEnabled()) { + log.debug("Application [Instance] " + instanceId + " has already been removed"); + } + } else { + instance.setStatus(ApplicationStatus.Terminated); + applications.getApplication(appId).removeInstance(instanceId); } - instance.setStatus(ApplicationStatus.Terminated); - applications.getApplication(appId).removeInstance(instanceId); + } notifyEventListeners(event); http://git-wip-us.apache.org/repos/asf/stratos/blob/9ccd5017/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/GroupInstanceTerminatedProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/GroupInstanceTerminatedProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/GroupInstanceTerminatedProcessor.java index 9fe8919..4b29f3f 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/GroupInstanceTerminatedProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/GroupInstanceTerminatedProcessor.java @@ -96,22 +96,21 @@ public class GroupInstanceTerminatedProcessor extends MessageProcessor { } else { GroupInstance context = group.getInstanceContexts(event.getInstanceId()); if(context == null) { - if (log.isWarnEnabled()) { - log.warn(String.format("Group Instance not exists in Group: [AppId] %s [groupId] %s " + + if (log.isDebugEnabled()) { + log.debug(String.format("Group Instance alread removed in Group: [AppId] %s [groupId] %s " + "[instanceId] %s", event.getAppId(), event.getGroupId(), event.getInstanceId())); + } + } else { + // Apply changes to the topology + GroupStatus status = GroupStatus.Terminated; + if (!context.isStateTransitionValid(status)) { + log.error("Invalid State Transition from " + context.getStatus() + " to " + + status); return false; } + context.setStatus(status); } - // Apply changes to the topology - GroupStatus status = GroupStatus.Terminated; - if (!context.isStateTransitionValid(status)) { - log.error("Invalid State Transition from " + context.getStatus() + " to " + - status); - return false; - } - context.setStatus(status); - } // Notify event listeners http://git-wip-us.apache.org/repos/asf/stratos/blob/9ccd5017/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java index bb52d42..5e1fbcb 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceCreatedMessageProcessor.java @@ -113,6 +113,7 @@ public class ClusterInstanceCreatedMessageProcessor extends MessageProcessor { log.debug(String.format("Cluster not exists in service: [service] %s [cluster] %s", event.getServiceName(), event.getClusterId())); } + return false; } else { // Apply changes to the topology ClusterInstance clusterInstance = event.getClusterInstance(); @@ -122,8 +123,9 @@ public class ClusterInstanceCreatedMessageProcessor extends MessageProcessor { "[service] %s [cluster] %s [Instance] %s", event.getServiceName(), event.getClusterId(), clusterInstance.getInstanceId())); } + } else { + cluster.addInstanceContext(clusterInstance.getInstanceId(), clusterInstance); } - cluster.addInstanceContext(clusterInstance.getInstanceId(), clusterInstance); } // Notify event listeners notifyEventListeners(event); http://git-wip-us.apache.org/repos/asf/stratos/blob/9ccd5017/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceTerminatedProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceTerminatedProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceTerminatedProcessor.java index 4e43f35..629f32a 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceTerminatedProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceTerminatedProcessor.java @@ -122,18 +122,19 @@ public class ClusterInstanceTerminatedProcessor extends MessageProcessor { // Apply changes to the topology ClusterInstance context = cluster.getInstanceContexts(event.getInstanceId()); if(context == null) { - log.warn("Cluster Instance Context is not found for [cluster] " + - event.getClusterId() + " [instance-id] " + - event.getInstanceId()); - return false; - } - ClusterStatus status = ClusterStatus.Terminated; - if (!context.isStateTransitionValid(status)) { - log.error("Invalid State Transition from " + context.getStatus() + " to " + status); + if(log.isDebugEnabled()) { + log.warn("Cluster Instance Context is already removed for [cluster] " + + event.getClusterId() + " [instance-id] " + + event.getInstanceId()); + } + } else { + ClusterStatus status = ClusterStatus.Terminated; + if (!context.isStateTransitionValid(status)) { + log.error("Invalid State Transition from " + context.getStatus() + " to " + status); + } + context.setStatus(status); + cluster.removeInstanceContext(event.getInstanceId()); } - context.setStatus(status); - cluster.removeInstanceContext(event.getInstanceId()); - } // Notify event listeners
