delete application from metadata service when app is undeployed

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

Branch: refs/heads/4.0.0-grouping
Commit: 195303244312d60cb83a1e0d7a0c44f221d05014
Parents: c947820
Author: Udara Liyanage <[email protected]>
Authored: Tue Oct 28 16:31:31 2014 +0530
Committer: Udara Liyanage <[email protected]>
Committed: Tue Oct 28 16:31:31 2014 +0530

----------------------------------------------------------------------
 .../controller/topology/TopologyBuilder.java    | 23 +++++++++++++-------
 .../topology/GroupTerminatingProcessor.java     |  2 +-
 2 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/19530324/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
index e715130..fac6671 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
@@ -31,19 +31,13 @@ import 
org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.messaging.domain.topology.*;
 import org.apache.stratos.messaging.event.application.status.*;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationActivatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationCreatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationInactivatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationTerminatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusApplicationTerminatingEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusClusterActivatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusGroupActivatedEvent;
-import 
org.apache.stratos.messaging.event.application.status.AppStatusGroupInactivateEvent;
 import 
org.apache.stratos.messaging.event.instance.status.InstanceActivatedEvent;
 import 
org.apache.stratos.messaging.event.instance.status.InstanceMaintenanceModeEvent;
 import 
org.apache.stratos.messaging.event.instance.status.InstanceReadyToShutdownEvent;
 import org.apache.stratos.messaging.event.instance.status.InstanceStartedEvent;
 import org.apache.stratos.messaging.event.topology.*;
+import 
org.apache.stratos.metadata.client.defaults.DefaultMetaDataServiceClient;
+import org.apache.stratos.metadata.client.defaults.MetaDataServiceClient;
 import org.wso2.carbon.registry.core.exceptions.RegistryException;
 
 import java.util.*;
@@ -939,10 +933,14 @@ public class TopologyBuilder {
                     }
                 }
 
+
+
                 // remove application
                 topology.removeApplication(event.getAppId());
                 TopologyManager.updateTopology(topology);
 
+                deleteAppResourcesFromMetadataService(event);
+
                 log.info("Removed application [ " + event.getAppId() + " ] 
from Topology");
 
                 TopologyEventPublisher.sendApplicationTerminatedEvent(new 
ApplicationTerminatedEvent(event.getAppId(),
@@ -954,6 +952,15 @@ public class TopologyBuilder {
         }
     }
 
+    private static void 
deleteAppResourcesFromMetadataService(AppStatusApplicationTerminatedEvent 
event) {
+        try {
+            MetaDataServiceClient metadataClient = new 
DefaultMetaDataServiceClient();
+            metadataClient.deleteApplicationProperties(event.getAppId());
+        } catch (Exception e) {
+            log.error("Error occurred while deleting the application resources 
frm metadata service " , e);
+        }
+    }
+
     public static void handleGroupInActiveEvent(AppStatusGroupInactivateEvent 
event) {
         Topology topology = TopologyManager.getTopology();
         Application application = topology.getApplication(event.getAppId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/19530324/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupTerminatingProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupTerminatingProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupTerminatingProcessor.java
index ecf6873..27b5cff 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupTerminatingProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupTerminatingProcessor.java
@@ -94,7 +94,7 @@ public class GroupTerminatingProcessor extends 
MessageProcessor {
         } else {
             // Apply changes to the topology
             if (!group.isStateTransitionValid(GroupStatus.Terminating)) {
-                log.error("Invalid State Transition from " + group.getStatus() 
+ " to " + GroupStatus.Terminating);
+                log.error("Invalid State Transition from " + group.getStatus() 
+ " to " + GroupStatus.Active);
             }
             group.setStatus(GroupStatus.Terminating);
 

Reply via email to