You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/03 10:09:02 UTC
[2/5] stratos git commit: fixing undeployment of application and wsdl
issue
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 <rt...@gmail.com>
Authored: Wed Dec 3 13:36:45 2014 +0530
Committer: reka <rt...@gmail.com>
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) {