You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/05/07 05:43:31 UTC

[2/2] git commit: Added subscription domain events extension scripts and added tenant domain name as an argument

Added subscription domain events extension scripts and added tenant domain name as an argument


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/d6843ebe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/d6843ebe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/d6843ebe

Branch: refs/heads/master
Commit: d6843ebecd00d9fa8ea7fcec029c4d56aa7599d9
Parents: b61c4fc
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed May 7 09:13:12 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed May 7 09:13:12 2014 +0530

----------------------------------------------------------------------
 .../stratos/cartridge/agent/CartridgeAgent.java | 46 +++++++++++++++++---
 .../cartridge/agent/util/ExtensionUtils.java    | 14 +++---
 .../extensions/subscription-domain-added.sh     | 28 ++++++++++++
 .../extensions/subscription-domain-removed.sh   | 28 ++++++++++++
 4 files changed, 105 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d6843ebe/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 bb8e71f..5537637 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
@@ -34,6 +34,7 @@ import org.apache.stratos.cartridge.agent.event.publisher.CartridgeAgentEventPub
 import org.apache.stratos.cartridge.agent.util.CartridgeAgentConstants;
 import org.apache.stratos.cartridge.agent.util.CartridgeAgentUtils;
 import org.apache.stratos.cartridge.agent.util.ExtensionUtils;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
 import org.apache.stratos.messaging.event.Event;
 import org.apache.stratos.messaging.event.instance.notifier.ArtifactUpdatedEvent;
 import org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupClusterEvent;
@@ -47,6 +48,7 @@ import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsAddedEven
 import org.apache.stratos.messaging.listener.tenant.SubscriptionDomainsRemovedEventListener;
 import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceNotifierEventReceiver;
 import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
 
 import java.util.List;
 import java.util.concurrent.Executors;
@@ -173,17 +175,37 @@ public class CartridgeAgent implements Runnable {
         tenantEventReceiver.addEventListener(new SubscriptionDomainsAddedEventListener() {
             @Override
             protected void onEvent(Event event) {
-                SubscriptionDomainAddedEvent subscriptionDomainAddedEvent = (SubscriptionDomainAddedEvent)event;
-                ExtensionUtils.executeSubscriptionDomainAddedExtension(subscriptionDomainAddedEvent.getDomainName(),
-                        subscriptionDomainAddedEvent.getApplicationContext());
+                try {
+                    SubscriptionDomainAddedEvent subscriptionDomainAddedEvent = (SubscriptionDomainAddedEvent) event;
+                    ExtensionUtils.executeSubscriptionDomainAddedExtension(
+                            subscriptionDomainAddedEvent.getTenantId(),
+                            findTenantDomain(subscriptionDomainAddedEvent.getTenantId()),
+                            subscriptionDomainAddedEvent.getDomainName(),
+                            subscriptionDomainAddedEvent.getApplicationContext());
+                }
+                catch (Exception e) {
+                    if(log.isErrorEnabled()) {
+                        log.error("Could not process subscription domain added event", e);
+                    }
+                }
             }
         });
 
         tenantEventReceiver.addEventListener(new SubscriptionDomainsRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
-                SubscriptionDomainRemovedEvent subscriptionDomainRemovedEvent = (SubscriptionDomainRemovedEvent)event;
-                ExtensionUtils.executeSubscriptionDomainRemovedExtension(subscriptionDomainRemovedEvent.getDomainName());
+                try {
+                    SubscriptionDomainRemovedEvent subscriptionDomainRemovedEvent = (SubscriptionDomainRemovedEvent) event;
+                    ExtensionUtils.executeSubscriptionDomainRemovedExtension(
+                            subscriptionDomainRemovedEvent.getTenantId(),
+                            findTenantDomain(subscriptionDomainRemovedEvent.getTenantId()),
+                            subscriptionDomainRemovedEvent.getDomainName());
+                }
+                catch (Exception e) {
+                    if(log.isErrorEnabled()) {
+                        log.error("Could not process subscription domain removed event", e);
+                    }
+                }
             }
         });
 
@@ -203,6 +225,20 @@ public class CartridgeAgent implements Runnable {
         }
 	}
 
+    private String findTenantDomain(int tenantId) {
+        try {
+            TenantManager.acquireReadLock();
+            Tenant tenant = TenantManager.getInstance().getTenant(tenantId);
+            if(tenant == null) {
+                throw new RuntimeException(String.format("Tenant could not be found: [tenant-id] %d", tenantId));
+            }
+            return tenant.getTenantDomain();
+        }
+        finally {
+            TenantManager.releaseReadLock();
+        }
+    }
+
 	protected void validateRequiredSystemProperties() {
 		String jndiPropertiesDir = System.getProperty(CartridgeAgentConstants.JNDI_PROPERTIES_DIR);
         if(StringUtils.isBlank(jndiPropertiesDir)) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d6843ebe/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 5bd922d..a29cc8b 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
@@ -133,12 +133,13 @@ public class ExtensionUtils {
         }
     }
 
-    public static void executeSubscriptionDomainAddedExtension(String domain, String applicationContext) {
+    public static void executeSubscriptionDomainAddedExtension(int tenantId, String tenantDomain, String domainName, String applicationContext) {
         try {
             if(log.isDebugEnabled()) {
-                log.debug("Executing subscription domain added extension: [domain] %s [application-context] %s");
+                log.debug(String.format("Executing subscription domain added extension: [tenant-id] %d [tenant-domain] %s " +
+                        "[domain-name] %s [application-context] %s", tenantId, tenantDomain, domainName, applicationContext));
             }
-            String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_ADDED_SH + " " + domain + " " + applicationContext);
+            String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_ADDED_SH + " " + domainName + " " + applicationContext);
             CommandUtils.executeCommand(command);
         }
         catch (Exception e) {
@@ -146,12 +147,13 @@ public class ExtensionUtils {
         }
     }
 
-    public static void executeSubscriptionDomainRemovedExtension(String domain) {
+    public static void executeSubscriptionDomainRemovedExtension(int tenantId, String tenantDomain, String domainName) {
         try {
             if(log.isDebugEnabled()) {
-                log.debug("Executing subscription domain removed extension: [domain] %s");
+                log.debug(String.format("Executing subscription domain removed extension: [tenant-id] %d [tenant-domain] %s " +
+                        "[domain-name] %s [application-context] %s", tenantId, tenantDomain, domainName));
             }
-            String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_ADDED_SH + " " + domain);
+            String command = prepareCommand(CartridgeAgentConstants.SUBSCRIPTION_DOMAIN_REMOVED_SH + " " + domainName);
             CommandUtils.executeCommand(command);
         }
         catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d6843ebe/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.sh
new file mode 100644
index 0000000..0ae36f5
--- /dev/null
+++ b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-added.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 when a subscription domain added
+# event is received by the cartridge agent.
+# --------------------------------------------------------------
+#
+
+log=/var/log/apache-stratos/cartridge-agent-extensions.log
+echo "Subscription domain added: [tenant-id] $1 [tenant-domain] $2 [domain-name] $3 [application-context] $4" | tee -a $log
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d6843ebe/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.sh
new file mode 100644
index 0000000..76480bc
--- /dev/null
+++ b/products/cartridge-agent/modules/distribution/src/main/extensions/subscription-domain-removed.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 when a subscription domain removed
+# event is received by the cartridge agent.
+# --------------------------------------------------------------
+#
+
+log=/var/log/apache-stratos/cartridge-agent-extensions.log
+echo "Subscription domain added: [tenant-id] $1 [tenant-domain] $2 [domain-name] $3" | tee -a $log
\ No newline at end of file