Repository: stratos Updated Branches: refs/heads/4.1.0-test b1f3b9bd3 -> d08f7b28a
removing the deployment policy when undeploy the application Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/d08f7b28 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d08f7b28 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d08f7b28 Branch: refs/heads/4.1.0-test Commit: d08f7b28a7630e6e0f2c359ebfd9a43be5a9b27b Parents: b1f3b9b Author: reka <[email protected]> Authored: Thu Dec 11 20:07:18 2014 +0530 Committer: reka <[email protected]> Committed: Thu Dec 11 20:07:18 2014 +0530 ---------------------------------------------------------------------- .../applications/topic/ApplicationBuilder.java | 11 +++++++++++ .../stratos/autoscaler/pojo/policy/PolicyManager.java | 9 +++++++++ 2 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/d08f7b28/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 a7e6be5..06b2283 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 @@ -25,6 +25,7 @@ import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; +import org.apache.stratos.autoscaler.exception.policy.InvalidPolicyException; import org.apache.stratos.autoscaler.monitor.Monitor; import org.apache.stratos.autoscaler.monitor.component.ApplicationMonitor; import org.apache.stratos.autoscaler.monitor.component.GroupMonitor; @@ -317,6 +318,16 @@ public class ApplicationBuilder { //Removing the application from memory and registry //ApplicationHolder.removeApplication(appId); log.info("Application run time is removed: [application-id] " + appId); + // Check whether given application is deployed + String policyId = PolicyManager.getInstance().getDeploymentPolicyIdByApplication(appId); + if(policyId != null) { + try { + PolicyManager.getInstance().undeployDeploymentPolicy(policyId); + } catch (InvalidPolicyException e) { + log.error("Error while unDeploying the policy for [application] " + appId); + } + } + } ApplicationsEventPublisher.sendApplicationInstanceTerminatedEvent(appId, instanceId); } else { http://git-wip-us.apache.org/repos/asf/stratos/blob/d08f7b28/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java index ac05b55..a3a9337 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java @@ -290,4 +290,13 @@ public class PolicyManager { return null; } + public String getDeploymentPolicyIdByApplication(String appId) { + for(Map.Entry<String, DeploymentPolicy> entry : deploymentPolicyListMap.entrySet()) { + if(entry.getValue().getApplicationId().equals(appId)) { + return entry.getKey(); + } + } + return null; + } + }
