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(),
