Unsubscription from a multi-tenant cartridge doesn't clean up the GIT repository inside the Cartridge instances
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ee75407f Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ee75407f Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ee75407f Branch: refs/heads/4.0.0-grouping Commit: ee75407f478a98f35f0f5dbea75c9fbc3dd4a39d Parents: 9f0c67e Author: Udara Liyanage <[email protected]> Authored: Mon Aug 18 12:51:19 2014 +0530 Committer: Udara Liyanage <[email protected]> Committed: Mon Aug 18 12:55:11 2014 +0530 ---------------------------------------------------------------------- .../stratos/cartridge/agent/CartridgeAgent.java | 44 ++++++++++++++ .../git/impl/GitBasedArtifactRepository.java | 33 +++++++++++ .../extensions/DefaultExtensionHandler.java | 60 +++++++++++++++++--- .../agent/extensions/ExtensionHandler.java | 9 +++ .../agent/util/CartridgeAgentConstants.java | 2 + .../cartridge/agent/util/ExtensionUtils.java | 30 ++++++++++ .../distribution/src/main/assembly/bin.xml | 2 + .../distribution/src/main/bin/stratos.sh | 4 +- .../src/main/extensions/artifacts-copy.sh | 3 + .../src/main/extensions/tenant-subscribed.sh | 28 +++++++++ .../src/main/extensions/tenant-unsubscribed.sh | 28 +++++++++ 11 files changed, 233 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java index 35b9973..bce3c08 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java @@ -50,6 +50,8 @@ import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver; import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent; +import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent; +import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent; import org.apache.stratos.messaging.event.topology.*; import org.apache.stratos.messaging.listener.instance.notifier.ArtifactUpdateEventListener; import org.apache.stratos.messaging.listener.instance.notifier.InstanceCleanupClusterEventListener; @@ -57,6 +59,8 @@ import org.apache.stratos.messaging.listener.instance.notifier.InstanceCleanupMe import org.apache.stratos.messaging.listener.tenant.CompleteTenantEventListener; import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsAddedEventListener; import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsRemovedEventListener; +import org.apache.stratos.messaging.listener.tenant.TenantSubscribedEventListener; +import org.apache.stratos.messaging.listener.tenant.TenantUnSubscribedEventListener; import org.apache.stratos.messaging.listener.topology.*; import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceNotifierEventReceiver; import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver; @@ -502,6 +506,46 @@ public class CartridgeAgent implements Runnable { } }); + tenantEventReceiver.addEventListener(new TenantSubscribedEventListener() { + @Override + protected void onEvent(Event event) { + try { + TenantManager.acquireReadLock(); + if (log.isDebugEnabled()) { + log.debug("Tenant subscribed event received"); + } + TenantSubscribedEvent tenantSubscribedEvent = (TenantSubscribedEvent) event; + extensionHandler.onTenantSubscribedEvent(tenantSubscribedEvent); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error processing tenant subscribed event", e); + } + } finally { + TenantManager.releaseReadLock(); + } + } + }); + + tenantEventReceiver.addEventListener(new TenantUnSubscribedEventListener() { + @Override + protected void onEvent(Event event) { + try { + TenantManager.acquireReadLock(); + if (log.isDebugEnabled()) { + log.debug("Tenant unSubscribed event received"); + } + TenantUnSubscribedEvent tenantUnSubscribedEvent = (TenantUnSubscribedEvent) event; + extensionHandler.onTenantUnSubscribedEvent(tenantUnSubscribedEvent); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error processing tenant unSubscribed event", e); + } + } finally { + TenantManager.releaseReadLock(); + } + } + }); + Thread tenantEventReceiverThread = new Thread(tenantEventReceiver); tenantEventReceiverThread.start(); if (log.isInfoEnabled()) { http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java index ecb436e..49338a6 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java @@ -29,6 +29,8 @@ import org.apache.stratos.cartridge.agent.artifact.deployment.synchronizer.git.i import org.apache.stratos.cartridge.agent.artifact.deployment.synchronizer.git.util.Utilities; import org.apache.stratos.cartridge.agent.config.CartridgeAgentConfiguration; import org.apache.stratos.cartridge.agent.extensions.ExtensionHandler; +import org.apache.stratos.cartridge.agent.util.CartridgeAgentConstants; +import org.apache.stratos.cartridge.agent.util.ExtensionUtils; import org.eclipse.jgit.api.*; import org.eclipse.jgit.api.errors.*; import org.eclipse.jgit.lib.Ref; @@ -37,6 +39,7 @@ import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.transport.SshSessionFactory; import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; +import org.apache.commons.io.*; import java.io.File; import java.io.IOException; @@ -246,6 +249,10 @@ public class GitBasedArtifactRepository { return tenantToRepoContextMap.get(tenantId); } + private void removeGitRepoContext(int tenantId) { + tenantToRepoContextMap.remove(tenantId); + } + /** * Commits any changes in the local repository to the relevant remote repository * @@ -521,6 +528,32 @@ public class GitBasedArtifactRepository { } } + public boolean removeRepo(int tenantId) throws IOException { + RepositoryContext gitRepoCtx = retrieveCachedGitContext(tenantId); + + log.info("git repository deleted for tenant " + gitRepoCtx.getTenantId()); + + // Stop the artifact update task + gitRepoCtx.getArtifactSyncSchedular().shutdown(); + // Remove git repo for the tenant + FileUtils.deleteDirectory(gitRepoCtx.getLocalRepo().getDirectory()); + FileUtils.deleteDirectory(new File(gitRepoCtx.getGitLocalRepoPath())); + + removeGitRepoContext(tenantId); + + if (tenantId == -1234) { + if (CartridgeAgentConfiguration.getInstance().isMultitenant()) { + ExtensionUtils.executeCopyArtifactsExtension( + CartridgeAgentConstants.SUPERTENANT_TEMP_PATH, + CartridgeAgentConfiguration.getInstance().getAppPath() + "/repository/deployment/server/" + ); + } + } + + + return true; + } + private boolean pullAndHandleErrors (RepositoryContext gitRepoCtx) { try { http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java index e861819..c1a134f 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java @@ -39,12 +39,15 @@ import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupMembe import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent; +import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent; +import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent; import org.apache.stratos.messaging.event.topology.*; import org.apache.stratos.messaging.message.receiver.tenant.TenantManager; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import org.wso2.andes.util.Serial; import java.io.File; +import java.io.IOException; import java.lang.reflect.Type; import java.util.*; @@ -66,6 +69,13 @@ public class DefaultExtensionHandler implements ExtensionHandler { if (log.isDebugEnabled()) { log.debug("Processing instance started event..."); } + + if (CartridgeAgentConfiguration.getInstance().isMultitenant()) { + ExtensionUtils.executeCopyArtifactsExtension( + CartridgeAgentConfiguration.getInstance().getAppPath() + "/repository/deployment/server/", + CartridgeAgentConstants.SUPERTENANT_TEMP_PATH); + } + Map<String, String> env = new HashMap<String, String>(); ExtensionUtils.executeInstanceStartedExtension(env); } catch (Exception e) { @@ -173,15 +183,6 @@ public class DefaultExtensionHandler implements ExtensionHandler { } else { log.info("Artifact updating task disabled"); } - - // If supert tenant temp app path is available, - // copy the artifacts to carbon server's deployment path - String src = CartridgeAgentConstants.SUPERTENANT_TEMP_PATH; - if (new File(src).exists() && tenantId.equals("-1234")) { - ExtensionUtils.executeCopyArtifactsExtension(src, - CartridgeAgentConfiguration.getInstance().getAppPath()+ "/repository/deployment/server/"); - } - } } @@ -989,4 +990,45 @@ public class DefaultExtensionHandler implements ExtensionHandler { ExtensionUtils.executeCopyArtifactsExtension(src, des); } + @Override + public void onTenantSubscribedEvent(TenantSubscribedEvent tenantSubscribedEvent) { + if (log.isInfoEnabled()) { + log.info(String.format("Tenant subscribed event received: [tenant] %s [service] %s [cluster] %s", + tenantSubscribedEvent.getTenantId(), tenantSubscribedEvent.getServiceName(), + tenantSubscribedEvent.getClusterIds()) + ); + } + + if (log.isDebugEnabled()) { + String msg = gson.toJson(tenantSubscribedEvent); + log.debug("Tenant subscribed event msg:" + msg); + } + Map<String, String> env = new HashMap<String, String>(); + ExtensionUtils.executeTenantSubscribedExtension(env); + } + + @Override + public void onTenantUnSubscribedEvent(TenantUnSubscribedEvent tenantUnSubscribedEvent) { + if (log.isInfoEnabled()) { + log.info(String.format("Tenant unsubscribed event received: [tenant] %s [service] %s [cluster] %s", + tenantUnSubscribedEvent.getTenantId(), tenantUnSubscribedEvent.getServiceName(), + tenantUnSubscribedEvent.getClusterIds())); + } + + if (log.isDebugEnabled()) { + String msg = gson.toJson(tenantUnSubscribedEvent); + log.debug("Tenant unsubscribed event msg:" + msg); + } + + try { + if (CartridgeAgentConfiguration.getInstance().getServiceName().equals(tenantUnSubscribedEvent.getServiceName())) { + GitBasedArtifactRepository.getInstance().removeRepo(tenantUnSubscribedEvent.getTenantId()); + } + } catch (Exception e) { + log.error(e); + } + Map<String, String> env = new HashMap<String, String>(); + ExtensionUtils.executeTenantUnSubscribedExtension(env); + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/ExtensionHandler.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/ExtensionHandler.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/ExtensionHandler.java index 1ab380c..35cebbd 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/ExtensionHandler.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/ExtensionHandler.java @@ -25,8 +25,12 @@ import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupMembe import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent; import org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent; +import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent; +import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent; import org.apache.stratos.messaging.event.topology.*; +import java.io.IOException; + public interface ExtensionHandler { public void onInstanceStartedEvent(); @@ -61,4 +65,9 @@ public interface ExtensionHandler { public void onSubscriptionDomainRemovedEvent(SubscriptionDomainRemovedEvent subscriptionDomainRemovedEvent); public void onCopyArtifactsExtension(String src, String des); + + public void onTenantSubscribedEvent(TenantSubscribedEvent tenantSubscribedEvent); + + public void onTenantUnSubscribedEvent(TenantUnSubscribedEvent tenantUnSubscribedEvent); + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java index d7c39f6..d0c4bc9 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java @@ -87,6 +87,8 @@ public class CartridgeAgentConstants implements Serializable{ public static final String SUBSCRIPTION_DOMAIN_ADDED_SCRIPT = "extension.subscription.domain.added"; public static final String SUBSCRIPTION_DOMAIN_REMOVED_SCRIPT = "extension.subscription.domain.removed"; public static final String ARTIFACTS_COPY_SCRIPT = "extension.artifacts.copy"; + public static final String TENANT_SUBSCRIBED_SCRIPT = "extension.tenant.subscribed"; + public static final String TENANT_UNSUBSCRIBED_SCRIPT = "extension.tenant.unsubscribed"; public static final String SERVICE_GROUP_TOPOLOGY_KEY = "payload_parameter.SERIVCE_GROUP"; public static final String CLUSTERING_TOPOLOGY_KEY = "payload_parameter.CLUSTERING"; http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java index 51e7c30..ac61f86 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java @@ -501,6 +501,36 @@ public class ExtensionUtils { } } + public static void executeTenantSubscribedExtension(Map<String, String> envParameters) { + try { + if (log.isDebugEnabled()) { + log.debug("Executing tenant subscribed extension"); + } + String script = System.getProperty(CartridgeAgentConstants.TENANT_SUBSCRIBED_SCRIPT); + String command = prepareCommand(script); + addPayloadParameters(envParameters); + cleanProcessParameters(envParameters); + String output = CommandUtils.executeCommand(command, envParameters); + } catch (Exception e) { + log.error("Could not execute tenant subscribed extension", e); + } + } + + public static void executeTenantUnSubscribedExtension(Map<String, String> envParameters) { + try { + if (log.isDebugEnabled()) { + log.debug("Executing tenant un-subscribed extension"); + } + String script = System.getProperty(CartridgeAgentConstants.TENANT_UNSUBSCRIBED_SCRIPT); + String command = prepareCommand(script); + addPayloadParameters(envParameters); + cleanProcessParameters(envParameters); + String output = CommandUtils.executeCommand(command, envParameters); + } catch (Exception e) { + log.error("Could not execute tenant un-subscribed extension", e); + } + } + public static boolean isTopologyInitialized() { TopologyManager.acquireReadLock(); boolean active = TopologyManager.getTopology().isInitialized(); http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml b/products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml index 20bbf10..a433513 100644 --- a/products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml +++ b/products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml @@ -61,6 +61,8 @@ <include>subscription-domain-added.sh</include> <include>subscription-domain-removed.sh</include> <include>artifacts-copy.sh</include> + <include>tenant-subscribed.sh</include> + <include>tenant-unsubscribed.sh</include> </includes> </fileSet> <fileSet> http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/products/cartridge-agent/modules/distribution/src/main/bin/stratos.sh ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/distribution/src/main/bin/stratos.sh b/products/cartridge-agent/modules/distribution/src/main/bin/stratos.sh index 0c24f39..2636e74 100644 --- a/products/cartridge-agent/modules/distribution/src/main/bin/stratos.sh +++ b/products/cartridge-agent/modules/distribution/src/main/bin/stratos.sh @@ -67,7 +67,9 @@ properties="-Dmb.ip=MB-IP -Dextension.complete.tenant=complete-tenant.sh -Dextension.subscription.domain.added=subscription-domain-added.sh -Dextension.subscription.domain.removed=subscription-domain-removed.sh - -Dextension.artifacts.copy=artifacts-copy.sh" + -Dextension.artifacts.copy=artifacts-copy.sh + -Dextension.tenant.subscribed=tenant-subscribed.sh + -Dextension.tenant.unsubscribed=tenant-unsubscribed.sh" # Uncomment below line to enable remote debugging #debug="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/products/cartridge-agent/modules/distribution/src/main/extensions/artifacts-copy.sh ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/distribution/src/main/extensions/artifacts-copy.sh b/products/cartridge-agent/modules/distribution/src/main/extensions/artifacts-copy.sh index 5cad830..baa0aeb 100644 --- a/products/cartridge-agent/modules/distribution/src/main/extensions/artifacts-copy.sh +++ b/products/cartridge-agent/modules/distribution/src/main/extensions/artifacts-copy.sh @@ -25,5 +25,8 @@ # log=/var/log/apache-stratos/cartridge-agent-extensions.log +if [[ ! -d $2 ]]; then + mkdir -p $2 +fi cp -rf $1* $2 echo "Artifacts Copied" | tee -a $log http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-subscribed.sh ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-subscribed.sh b/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-subscribed.sh new file mode 100644 index 0000000..66f004c --- /dev/null +++ b/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-subscribed.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- +# This extension script will be executed once the update artifacts +# event is received and they are copied to the given path. +# -------------------------------------------------------------- +# + +log=/var/log/apache-stratos/cartridge-agent-extensions.log +echo `date`": Tenant Subscribed Event" | tee -a $log http://git-wip-us.apache.org/repos/asf/stratos/blob/ee75407f/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-unsubscribed.sh ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-unsubscribed.sh b/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-unsubscribed.sh new file mode 100644 index 0000000..651015d --- /dev/null +++ b/products/cartridge-agent/modules/distribution/src/main/extensions/tenant-unsubscribed.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# -------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# -------------------------------------------------------------- +# This extension script will be executed once the update artifacts +# event is received and they are copied to the given path. +# -------------------------------------------------------------- +# + +log=/var/log/apache-stratos/cartridge-agent-extensions.log +echo `date`": Tenant UnSubscribed Event" | tee -a $log
