You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/03/13 13:17:25 UTC

stratos git commit: fixing application undeployment issue

Repository: stratos
Updated Branches:
  refs/heads/master beb9957b5 -> 257be0e20


fixing application undeployment issue


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

Branch: refs/heads/master
Commit: 257be0e20256bf702be533ad5abeac7d80ef64ae
Parents: beb9957
Author: R-Rajkumar <rr...@gmail.com>
Authored: Fri Mar 13 17:46:44 2015 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Fri Mar 13 17:46:44 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  4 ++--
 .../services/impl/AutoscalerServiceImpl.java    | 20 +++++++++++++++++++-
 .../rest/endpoint/api/StratosApiV41.java        |  6 +++---
 3 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/257be0e2/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 1cb1a6e..c52b311 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
@@ -227,7 +227,7 @@ public class ApplicationBuilder {
 
     public static void handleApplicationRemoval(String appId) {
         if (log.isDebugEnabled()) {
-            log.debug("Handling application unDeployment for [application-id] " + appId);
+            log.debug("Handling application delete for [application-id] " + appId);
         }
         Set<ClusterDataHolder> appClusterDataToSend;
         Application application;
@@ -324,7 +324,7 @@ public class ApplicationBuilder {
                         PrivilegedCarbonContext.endTenantFlow();
                     }
                     //removing the clusters and persisted application
-                    handleApplicationRemoval(appId);
+//                    handleApplicationRemoval(appId);
                 }
             } else {
                 log.warn(String.format("Application state transition is not valid: [application-id] %s " +

http://git-wip-us.apache.org/repos/asf/stratos/blob/257be0e2/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 5da1636..e0774b2 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
@@ -414,10 +414,28 @@ public class AutoscalerServiceImpl implements AutoscalerService {
 
     @Override
     public void deleteApplication(String applicationId) {
-        if (AutoscalerContext.getInstance().removeApplicationContext(applicationId) == null) {
+     
+    	ApplicationContext appContext = AutoscalerContext.getInstance().getApplicationContext(applicationId);
+    	
+    	if (appContext == null) {
             String msg = String.format("Application not found : [application-id] %s", applicationId);
             throw new RuntimeException(msg);
         }
+        
+    	if (ApplicationContext.STATUS_DEPLOYED.equals(appContext.getStatus())) {
+            String msg = String.format("Application is deployed : [application-id] %s. Please undeploy before deleting it.", applicationId);
+            throw new AutoScalerException(msg);
+        }
+    	
+    	AutoscalerContext.getInstance().removeApplicationContext(applicationId);
+        
+        if (RegistryManager.getInstance().getApplication(applicationId)== null) {
+            String msg = String.format("Application not found : [application-id] %s", applicationId);
+            throw new RuntimeException(msg);
+        }
+        ApplicationBuilder.handleApplicationRemoval(applicationId);
+        RegistryManager.getInstance().removeApplication(applicationId);
+        
         log.info(String.format("Application deleted successfully: [application-id] ", applicationId));
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/257be0e2/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index d8d6228..fd2cc81 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -909,9 +909,9 @@ public class StratosApiV41 extends AbstractApi {
         if (applicationDefinition == null) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-	    if (StratosApiV41Utils.getApplicationRuntime(applicationId) != null) {
-		    return Response.status(Response.Status.NOT_ACCEPTABLE).build();
-	    }
+//	    if (StratosApiV41Utils.getApplicationRuntime(applicationId) != null) {
+//		    return Response.status(Response.Status.NOT_ACCEPTABLE).build();
+//	    }
         StratosApiV41Utils.removeApplication(applicationId);
         return Response.ok().entity(
         		new SuccessResponseBean(Response.Status.OK.getStatusCode(),