Repository: stratos Updated Branches: refs/heads/4.1.0-test d64f31438 -> b1f3b9bd3
Got clusterdata before delete and modified logs Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/1433fc9c Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/1433fc9c Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/1433fc9c Branch: refs/heads/4.1.0-test Commit: 1433fc9c46558cc5c934eeb74d2247c30878ce9a Parents: 2ba19d8 Author: Shiro <[email protected]> Authored: Thu Dec 11 17:55:00 2014 +0530 Committer: Shiro <[email protected]> Committed: Thu Dec 11 18:03:06 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/api/AutoScalerServiceImpl.java | 3 +-- .../applications/topic/ApplicationBuilder.java | 23 +++++++++++----- .../topic/ApplicationsEventPublisher.java | 4 +-- .../applications/ApplicationDeletedEvent.java | 18 +++++-------- .../ApplicationCreatedMessageProcessor.java | 8 ++++-- .../ApplicationDeletedMessageProcessor.java | 28 +++++++++----------- .../rest/endpoint/api/StratosApiV41.java | 2 +- 7 files changed, 46 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java index a2b371e..41d027f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java @@ -275,8 +275,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface { @Override public void unDeployApplicationDefinition(String applicationId, int tenantId, String tenantDomain) throws ApplicationDefinitionException { - - ApplicationBuilder.handleApplicationUndeployed(applicationId); + ApplicationBuilder.handleApplicationDeleted(applicationId); } public void updateClusterMonitor(String clusterId, Properties properties) throws InvalidArgumentException { http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/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 81581b8..1a2fb41 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 @@ -37,6 +37,7 @@ import org.apache.stratos.messaging.domain.topology.Service; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import java.util.Collection; +import java.util.HashSet; import java.util.Set; /** @@ -176,11 +177,11 @@ public class ApplicationBuilder { } } - public static void handleApplicationUndeployed(String appId) { + public static void handleApplicationDeleted(String appId) { if (log.isDebugEnabled()) { log.debug("Handling application unDeployment for [application-id] " + appId); } - Set<ClusterDataHolder> clusterData; + Set<ClusterDataHolder> appClusterDataToSend; Application application; ApplicationHolder.acquireWriteLock(); try { @@ -192,22 +193,32 @@ public class ApplicationBuilder { appId)); return; } else { + // Check whether given application is deployed 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.", + ": [application-id] %s, Please unDeploy the Application Policy before deleting the Application definition.", appId)); + return; } } + + //get cluster data to send in event before deleting the application + appClusterDataToSend = new HashSet<ClusterDataHolder>(); + Set<ClusterDataHolder> appClusterData = application.getClusterDataRecursively(); + for (ClusterDataHolder currClusterData : appClusterData) { + ClusterDataHolder newClusterData = new ClusterDataHolder(currClusterData.getServiceType(), currClusterData.getClusterId()); + appClusterDataToSend.add(newClusterData); + } + ApplicationHolder.removeApplication(appId); } finally { ApplicationHolder.releaseWriteLock(); } - - log.info("[Application] " + appId + " has been successfully undeployed"); - ApplicationsEventPublisher.sendApplicationDeletedEvent(application); + + ApplicationsEventPublisher.sendApplicationDeletedEvent(appId, appClusterDataToSend); } public static boolean handleApplicationPolicyUndeployed(String appId) { http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java index 61417a6..7d85f06 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationsEventPublisher.java @@ -31,9 +31,9 @@ public class ApplicationsEventPublisher { publishEvent(new ApplicationCreatedEvent(application)); } - public static void sendApplicationDeletedEvent (Application application) { + public static void sendApplicationDeletedEvent (String appId, Set<ClusterDataHolder> clusterData) { - publishEvent(new ApplicationDeletedEvent(application)); + publishEvent(new ApplicationDeletedEvent(appId, clusterData)); } public static void sendApplicationInstanceCreatedEvent(String appId, http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationDeletedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationDeletedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationDeletedEvent.java index 32970f2..c28a892 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationDeletedEvent.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationDeletedEvent.java @@ -18,7 +18,6 @@ */ package org.apache.stratos.messaging.event.applications; -import org.apache.stratos.messaging.domain.applications.Application; import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; import org.apache.stratos.messaging.event.Event; @@ -29,25 +28,22 @@ import java.util.Set; * This event will be fired upon the application deletion is detected. */ public class ApplicationDeletedEvent extends Event implements Serializable { - private static final long serialVersionUID = 2625412714611885089L; //FIXME - correct UID - private Application application; - //private String appId; + private static final long serialVersionUID = 7541596367530563340L; + private String applicationId; private Set<ClusterDataHolder> clusterData; - public ApplicationDeletedEvent(Application application) { - this.application = application; + public ApplicationDeletedEvent(String applicationId, Set<ClusterDataHolder> clusterData) { + this.applicationId = applicationId; + this.clusterData = clusterData; } public String getAppId() { - return application.getKey(); + return applicationId; } public Set<ClusterDataHolder> getClusterData() { - return application.getClusterDataRecursively(); + return clusterData; } - public Application getApplication() { - return application; - } } http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationCreatedMessageProcessor.java index 4b25dcd..a945cd8 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationCreatedMessageProcessor.java @@ -88,11 +88,15 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor { // check if an Application with same name exists in applications if (applications.applicationExists(event.getApplication().getUniqueIdentifier())) { - log.warn("Application with id [ " + event.getApplication().getUniqueIdentifier() + " ] already exists"); - + if(log.isDebugEnabled()) { + log.debug("Application with id [ " + event.getApplication().getUniqueIdentifier() + " ] already exists"); + } } else { // add application and the clusters to Topology applications.addApplication(event.getApplication()); + if(log.isInfoEnabled()) { + log.info("Application with id [ " + event.getApplication().getUniqueIdentifier() + " ] created"); + } } notifyEventListeners(event); http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationDeletedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationDeletedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationDeletedMessageProcessor.java index c2fc99f..51bf741 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationDeletedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationDeletedMessageProcessor.java @@ -22,7 +22,6 @@ package org.apache.stratos.messaging.message.processor.applications; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.messaging.domain.applications.Applications; -import org.apache.stratos.messaging.event.applications.ApplicationCreatedEvent; import org.apache.stratos.messaging.event.applications.ApplicationDeletedEvent; import org.apache.stratos.messaging.message.processor.MessageProcessor; import org.apache.stratos.messaging.message.processor.applications.updater.ApplicationsUpdater; @@ -30,7 +29,7 @@ import org.apache.stratos.messaging.util.Util; public class ApplicationDeletedMessageProcessor extends MessageProcessor { - private static final Log log = LogFactory.getLog(ApplicationCreatedMessageProcessor.class); + private static final Log log = LogFactory.getLog(ApplicationDeletedMessageProcessor.class); private MessageProcessor nextProcessor; @Override @@ -72,27 +71,24 @@ public class ApplicationDeletedMessageProcessor extends MessageProcessor { } } - private boolean doProcess(ApplicationDeletedEvent event, Applications applications) { - - // check if required properties are available - if (event.getApplication() == null) { - String errorMsg = "Application object of application deleted event is invalid"; - log.error(errorMsg); - throw new RuntimeException(errorMsg); - } - - if (event.getApplication().getUniqueIdentifier() == null || event.getApplication().getUniqueIdentifier().isEmpty()) { - String errorMsg = "App id of application deleted event is invalid: [ " + event.getApplication().getUniqueIdentifier() + " ]"; + private boolean doProcess(ApplicationDeletedEvent event, Applications applications) { + + // check if required properties are available + if (event.getAppId() == null || event.getAppId().isEmpty()) { + String errorMsg = "App id of application deleted event is invalid: [ " + event.getAppId() + " ]"; log.error(errorMsg); throw new RuntimeException(errorMsg); } - - //TODO Check before removing whether there are any deloyments alive - + // Remove application and clusters from topology applications.removeApplication(event.getAppId()); notifyEventListeners(event); + + if (log.isInfoEnabled()) { + log.info("[Application] " + event.getAppId() + " has been successfully removed"); + } + return true; } } http://git-wip-us.apache.org/repos/asf/stratos/blob/1433fc9c/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 32f83c1..23893ea 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 @@ -578,7 +578,7 @@ public class StratosApiV41 extends AbstractApi { @SuperTenantService(true) public Response deleteApplicationDefinition(@PathParam("applicationId") String applicationId) throws RestAPIException { - StratosApiV41Utils.removeApplicationDefinition(applicationId, getConfigContext(), getUsername(), + StratosApiV41Utils.removeApplicationDefinition(applicationId, getConfigContext(), getUsername(), getTenantDomain()); return Response.noContent().build(); }
