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) {
