fixing undeployment of application and wsdl issue

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

Branch: refs/heads/master
Commit: be385de0a8094dda2596efa8d85d14315681b98f
Parents: 5f8b31c
Author: reka <[email protected]>
Authored: Wed Dec 3 13:36:45 2014 +0530
Committer: reka <[email protected]>
Committed: Wed Dec 3 13:36:56 2014 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |   54 +-
 .../src/main/resources/AutoScalerService.wsdl   | 1542 ++++++++++--------
 2 files changed, 846 insertions(+), 750 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/be385de0/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index f2d62c6..6fb76df 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -27,6 +27,8 @@ import 
org.apache.stratos.autoscaler.client.CloudControllerClient;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.component.ApplicationMonitor;
 import org.apache.stratos.autoscaler.monitor.component.GroupMonitor;
+import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.*;
 import org.apache.stratos.messaging.domain.applications.*;
 import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
 import org.apache.stratos.messaging.domain.instance.ClusterInstance;
@@ -144,7 +146,7 @@ public class ApplicationBuilder {
 
     public static void handleApplicationUndeployed(String appId) {
         if (log.isDebugEnabled()) {
-            log.debug("Handling application terminating event: 
[application-id] " + appId);
+            log.debug("Handling application unDeployment for [application-id] 
" + appId);
         }
         Set<ClusterDataHolder> clusterData;
         ApplicationHolder.acquireWriteLock();
@@ -156,54 +158,22 @@ public class ApplicationBuilder {
                 log.warn(String.format("Application does not exist: 
[application-id] %s",
                         appId));
                 return;
-            }
-            clusterData = application.getClusterDataRecursively();
-            Collection<ApplicationInstance> context = application.
-                    getInstanceIdToInstanceContextMap().values();
-            ApplicationStatus status = ApplicationStatus.Terminating;
-            for (ApplicationInstance context1 : context) {
-                if (context1.isStateTransitionValid(status)) {
-                    //setting the status, persist and publish
-                    application.setStatus(status, context1.getInstanceId());
-                    updateApplicationMonitor(appId, status, 
context1.getInstanceId());
-                    ApplicationHolder.persistApplication(application);
-                    
ApplicationsEventPublisher.sendApplicationTerminatingEvent(appId, 
context1.getInstanceId());
-                } else {
-                    log.warn(String.format("Application state transition is 
not valid: [application-id] %s " +
-                                    " [instance-id] %s [current-status] %s 
[status-requested] %s", appId,
-                            context1.getInstanceId() + context1.getStatus(), 
status));
+            } else {
+                
org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy policy =
+                        
PolicyManager.getInstance().getDeploymentPolicyByApplication(appId);
+                if(policy != null) {
+                    log.warn(String.format("Application has been found in the 
ApplicationsTopology" +
+                                    ": [application-id] %s, Please unDeploy 
the Application Policy.",
+                            appId));
                 }
             }
+            ApplicationHolder.removeApplication(appId);
 
         } finally {
             ApplicationHolder.releaseWriteLock();
         }
 
-        // if monitors is not found for any cluster, assume cluster is not 
there and send cluster terminating event.
-        // this assumes the cluster monitor will not fail after creating 
members, but will only fail before
-        for (ClusterDataHolder aClusterData : clusterData) {
-            if 
(AutoscalerContext.getInstance().getClusterMonitor(aClusterData.getClusterId()) 
== null) {
-                
TopologyManager.acquireReadLockForCluster(aClusterData.getServiceType(),
-                        aClusterData.getClusterId());
-                try {
-                    Service service = 
TopologyManager.getTopology().getService(aClusterData.getServiceType());
-                    if (service != null) {
-                        Cluster cluster = 
service.getCluster(aClusterData.getClusterId());
-                        if (cluster != null) {
-                            //TODO travese thr cluster context
-                            /*for() {
-                                
ClusterStatusEventPublisher.sendClusterTerminatingEvent(appId, 
aClusterData.getServiceType(),
-                                        aClusterData.getClusterId(), null);
-                            }*/
-                        }
-                    }
-                } finally {
-                    
TopologyManager.releaseReadLockForCluster(aClusterData.getServiceType(),
-                            aClusterData.getClusterId());
-                }
-
-            }
-        }
+        log.info("[Application] " + appId + " has been successfully 
undeployed");
     }
 
     public static boolean handleApplicationPolicyUndeployed(String appId) {

Reply via email to