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-deployment-policy-fix-merge
Commit: 257be0e20256bf702be533ad5abeac7d80ef64ae
Parents: beb9957
Author: R-Rajkumar <[email protected]>
Authored: Fri Mar 13 17:46:44 2015 +0530
Committer: R-Rajkumar <[email protected]>
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(),

Reply via email to