Repository: stratos
Updated Branches:
  refs/heads/master 101e979f6 -> ea340d311


removing clusters as part of application undeployment instead of application 
deletion


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ea340d31
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ea340d31
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ea340d31

Branch: refs/heads/master
Commit: ea340d31153cae687e979101d7b15e8b57af51d7
Parents: 101e979
Author: reka <[email protected]>
Authored: Thu Jun 25 19:10:17 2015 +0530
Committer: reka <[email protected]>
Committed: Thu Jun 25 19:10:17 2015 +0530

----------------------------------------------------------------------
 .../monitor/component/GroupMonitor.java         |  4 ++--
 .../services/impl/AutoscalerServiceImpl.java    |  2 +-
 .../application/ApplicationEventReceiver.java   | 23 +++++++++++++++-----
 .../messaging/topology/TopologyBuilder.java     |  9 +++++---
 4 files changed, 27 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ea340d31/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 37d1d5f..7ef8ce4 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
@@ -565,7 +565,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                     GroupInstance instance = (GroupInstance) 
instanceIdToInstanceMap.get(instanceId);
                     if (instance != null) {
                         if (log.isInfoEnabled()) {
-                            log.info(String.format("Publishing Group 
terminating event for [application] " +
+                            log.info(String.format("Publishing group 
terminating event for [application] " +
                                     "%s [group] %s [instance] %s", appId, id, 
instanceId));
                         }
                         ApplicationBuilder.handleGroupTerminatingEvent(appId, 
id, instanceId);
@@ -576,7 +576,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                         if (!instanceIds.isEmpty()) {
                             for (String instanceId1 : instanceIds) {
                                 if (log.isInfoEnabled()) {
-                                    log.info(String.format("Publishing Group 
terminating event for" +
+                                    log.info(String.format("Publishing group 
terminating event for" +
                                                     " [application] %s [group] 
%s [instance] %s",
                                             appId, id, instanceId1));
                                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ea340d31/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index 9dd67bb..dab0b19 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -509,7 +509,7 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
                         "un-deployment is has already been attempted thus not 
invoking again");
                 return false;
             } else {
-                log.info(String.format("Gracefully un-deploying the 
application " + applicationId));
+                log.info(String.format("Gracefully un-deploying the 
[application] %s ", applicationId));
                 appMonitor.setTerminating(true);
                 undeployApplicationGracefully(applicationId);
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ea340d31/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
index 5d72cdd..3b38e97 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
@@ -21,9 +21,13 @@ package 
org.apache.stratos.cloud.controller.messaging.receiver.application;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder;
+import org.apache.stratos.messaging.domain.application.Application;
 import org.apache.stratos.messaging.event.Event;
 import org.apache.stratos.messaging.event.application.ApplicationDeletedEvent;
+import 
org.apache.stratos.messaging.event.application.ApplicationInstanceTerminatedEvent;
 import 
org.apache.stratos.messaging.listener.application.ApplicationDeletedEventListener;
+import 
org.apache.stratos.messaging.listener.application.ApplicationInstanceTerminatedEventListener;
+import 
org.apache.stratos.messaging.message.receiver.application.ApplicationManager;
 import 
org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
 
 import java.util.concurrent.ExecutorService;
@@ -52,14 +56,23 @@ public class ApplicationEventReceiver {
     }
 
     private void addEventListeners() {
-        applicationsEventReceiver.addEventListener(new 
ApplicationDeletedEventListener() {
+
+        applicationsEventReceiver.addEventListener(new 
ApplicationInstanceTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 // Remove the application related data
-                ApplicationDeletedEvent deletedEvent = 
(ApplicationDeletedEvent) event;
-                log.info("Application deleted event received: [application-id] 
" + deletedEvent.getAppId());
-                String appId = deletedEvent.getAppId();
-                TopologyBuilder.handleApplicationClustersRemoved(appId, 
deletedEvent.getClusterData());
+                ApplicationInstanceTerminatedEvent instanceTerminatedEvent =
+                        (ApplicationInstanceTerminatedEvent) event;
+                log.info("Application instance terminated event received: 
[application-id] " +
+                        instanceTerminatedEvent.getAppId());
+                String appId = instanceTerminatedEvent.getAppId();
+                Application application = ApplicationManager.getApplications().
+                        getApplication(instanceTerminatedEvent.getAppId());
+
+                if(application.getInstanceContextCount() == 0) {
+                    TopologyBuilder.handleApplicationClustersRemoved(appId,
+                            application.getClusterDataRecursively());
+                }
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ea340d31/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index cee82d6..f04a11f 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -222,7 +222,8 @@ public class TopologyBuilder {
         TopologyEventPublisher.sendApplicationClustersCreated(appId, 
appClusters);
     }
 
-    public static void handleApplicationClustersRemoved(String appId, 
Set<ClusterDataHolder> clusterData) {
+    public static void handleApplicationClustersRemoved(String appId,
+                                                        Set<ClusterDataHolder> 
clusterData) {
         TopologyManager.acquireWriteLock();
 
         List<Cluster> removedClusters = new ArrayList<Cluster>();
@@ -237,12 +238,14 @@ public class TopologyBuilder {
                     if (aService != null) {
                         
removedClusters.add(aService.removeCluster(aClusterData.getClusterId()));
                     } else {
-                        log.warn("Service " + aClusterData.getServiceType() + 
" not found, unable to remove Cluster " + aClusterData.getClusterId());
+                        log.warn("Service " + aClusterData.getServiceType() + 
" not found, " +
+                                "unable to remove Cluster " + 
aClusterData.getClusterId());
                     }
                     // remove runtime data
                     context.removeClusterContext(aClusterData.getClusterId());
 
-                    log.info("Removed application [ " + appId + " ]'s Cluster 
[ " + aClusterData.getClusterId() + " ] from the topology");
+                    log.info("Removed application [ " + appId + " ]'s Cluster 
" +
+                            "[ " + aClusterData.getClusterId() + " ] from the 
topology");
                 }
                 // persist runtime data changes
                 CloudControllerContext.getInstance().persist();

Reply via email to