You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/10/11 11:10:02 UTC

[37/50] [abbrv] git commit: Removed circular dependancy between AgentGitHandler and DefaultExtensionHandler

Removed circular dependancy between AgentGitHandler and DefaultExtensionHandler


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

Branch: refs/heads/master
Commit: 0fda59b66225b1c7d68bf3669dfa088c0b26dc19
Parents: 9b825d0
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Thu Oct 2 14:59:38 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Sat Oct 11 14:38:30 2014 +0530

----------------------------------------------------------------------
 .../cartridge-agent/agent.py                    | 56 ++++++++++++--------
 .../modules/artifactmgt/git/agentgithandler.py  |  5 +-
 .../extensions/abstractextensionhandler.py      |  3 --
 .../modules/subscriber/eventsubscriber.py       |  2 +-
 4 files changed, 38 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0fda59b6/tools/python-cartridge-agent/cartridge-agent/agent.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/agent.py b/tools/python-cartridge-agent/cartridge-agent/agent.py
index bf47397..ecc8c45 100644
--- a/tools/python-cartridge-agent/cartridge-agent/agent.py
+++ b/tools/python-cartridge-agent/cartridge-agent/agent.py
@@ -14,10 +14,11 @@ from modules.event.topology.events import *
 from modules.tenant.tenantcontext import *
 from modules.topology.topologycontext import *
 from modules.datapublisher.logpublisher import *
+from modules.extensions.abstractextensionhandler import *
 
 
 class CartridgeAgent(threading.Thread):
-    log = LogFactory().get_log(__name__)
+    extension_handler = None
 
     def __init__(self):
         threading.Thread.__init__(self)
@@ -27,8 +28,6 @@ class CartridgeAgent(threading.Thread):
         self.__tenant_event_subscriber = EventSubscriber(cartridgeagentconstants.TENANT_TOPIC)
         self.__topology_event_subscriber = EventSubscriber(cartridgeagentconstants.TOPOLOGY_TOPIC)
 
-        self.extension_handler = DefaultExtensionHandler()
-
         self.__tenant_context_initialized = False
         self.__topology_context_initialized = False
 
@@ -36,6 +35,8 @@ class CartridgeAgent(threading.Thread):
 
         self.terminated = False
 
+        self.log = LogFactory().get_log(__name__)
+
     def run(self):
         self.log.info("Starting Cartridge Agent...")
 
@@ -52,14 +53,14 @@ class CartridgeAgent(threading.Thread):
         self.register_tenant_event_listeners()
 
         #Execute instance started shell script
-        self.extension_handler.on_instance_started_event()
+        CartridgeAgent.extension_handler.on_instance_started_event()
 
         #Publish instance started event
         cartridgeagentpublisher.publish_instance_started_event()
 
         #Execute start servers extension
         try:
-            self.extension_handler.start_server_extension()
+            CartridgeAgent.extension_handler.start_server_extension()
         except:
             self.log.exception("Error processing start servers event")
 
@@ -73,13 +74,13 @@ class CartridgeAgent(threading.Thread):
         repo_url = CartridgeAgentConfiguration.repo_url
         if repo_url is None or str(repo_url).strip() == "":
             self.log.info("No artifact repository found")
-            self.extension_handler.on_instance_activated_event()
+            CartridgeAgent.extension_handler.on_instance_activated_event()
 
             cartridgeagentpublisher.publish_instance_activated_event()
 
         persistence_mappping_payload = CartridgeAgentConfiguration.persistence_mappings
         if persistence_mappping_payload is not None:
-            self.extension_handler.volume_mount_extension(persistence_mappping_payload)
+            CartridgeAgent.extension_handler.volume_mount_extension(persistence_mappping_payload)
 
         # start log publishing thread
         if DataPublisherConfiguration.get_instance().enabled:
@@ -146,14 +147,14 @@ class CartridgeAgent(threading.Thread):
 
     def on_artifact_updated(self, msg):
         event_obj = ArtifactUpdatedEvent.create_from_json(msg.payload)
-        self.extension_handler.on_artifact_updated_event(event_obj)
+        CartridgeAgent.extension_handler.on_artifact_updated_event(event_obj)
 
     def on_instance_cleanup_member(self, msg):
         member_in_payload = CartridgeAgentConfiguration.member_id
         event_obj = InstanceCleanupMemberEvent.create_from_json(msg.payload)
         member_in_event = event_obj.member_id
         if member_in_payload == member_in_event:
-            self.extension_handler.on_instance_cleanup_member_event(event_obj)
+            CartridgeAgent.extension_handler.on_instance_cleanup_member_event(event_obj)
 
     def on_instance_cleanup_cluster(self, msg):
         event_obj = InstanceCleanupClusterEvent.create_from_json(msg.payload)
@@ -161,7 +162,7 @@ class CartridgeAgent(threading.Thread):
         cluster_in_event = event_obj.cluster_id
 
         if cluster_in_event == cluster_in_payload:
-            self.extension_handler.on_instance_cleanup_cluster_event(event_obj)
+            CartridgeAgent.extension_handler.on_instance_cleanup_cluster_event(event_obj)
 
     def register_topology_event_listeners(self):
         self.log.debug("Starting topology event message receiver thread")
@@ -179,7 +180,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Member activated event received: %r" % msg.payload)
         event_obj = MemberActivatedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_member_activated_event(event_obj)
+            CartridgeAgent.extension_handler.on_member_activated_event(event_obj)
         except:
             self.log.exception("Error processing member terminated event")
 
@@ -187,7 +188,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Member terminated event received: %r" % msg.payload)
         event_obj = MemberTerminatedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_member_terminated_event(event_obj)
+            CartridgeAgent.extension_handler.on_member_terminated_event(event_obj)
         except:
             self.log.exception("Error processing member terminated event")
 
@@ -195,7 +196,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Member suspended event received: %r" % msg.payload)
         event_obj = MemberSuspendedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_member_suspended_event(event_obj)
+            CartridgeAgent.extension_handler.on_member_suspended_event(event_obj)
         except:
             self.log.exception("Error processing member suspended event")
 
@@ -206,7 +207,7 @@ class CartridgeAgent(threading.Thread):
             TopologyContext.update(event_obj.topology)
             self.__topology_context_initialized = True
             try:
-                self.extension_handler.on_complete_topology_event(event_obj)
+                CartridgeAgent.extension_handler.on_complete_topology_event(event_obj)
             except:
                 self.log.exception("Error processing complete topology event")
         else:
@@ -216,7 +217,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Member started event received: %r" % msg.payload)
         event_obj = MemberStartedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_member_started_event(event_obj)
+            CartridgeAgent.extension_handler.on_member_started_event(event_obj)
         except:
             self.log.exception("Error processing member started event")
 
@@ -235,7 +236,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Subscription domain added event received : %r" % msg.payload)
         event_obj = SubscriptionDomainAddedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_subscription_domain_added_event(event_obj)
+            CartridgeAgent.extension_handler.on_subscription_domain_added_event(event_obj)
         except:
             self.log.exception("Error processing subscription domains added event")
 
@@ -243,7 +244,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Subscription domain removed event received : %r" % msg.payload)
         event_obj = SubscriptionDomainRemovedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_subscription_domain_removed_event(event_obj)
+            CartridgeAgent.extension_handler.on_subscription_domain_removed_event(event_obj)
         except:
             self.log.exception("Error processing subscription domains removed event")
 
@@ -254,7 +255,7 @@ class CartridgeAgent(threading.Thread):
             TenantContext.update(event_obj.tenants)
 
             try:
-                self.extension_handler.on_complete_tenant_event(event_obj)
+                CartridgeAgent.extension_handler.on_complete_tenant_event(event_obj)
                 self.__tenant_context_initialized = True
             except:
                 self.log.exception("Error processing complete tenant event")
@@ -265,7 +266,7 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Tenant subscribed event received: %r" % msg.payload)
         event_obj = TenantSubscribedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_tenant_subscribed_event(event_obj)
+            CartridgeAgent.extension_handler.on_tenant_subscribed_event(event_obj)
         except:
             self.log.exception("Error processing tenant subscribed event")
 
@@ -273,14 +274,27 @@ class CartridgeAgent(threading.Thread):
         self.log.debug("Tenant unSubscribed event received: %r" % msg.payload)
         event_obj = TenantUnsubscribedEvent.create_from_json(msg.payload)
         try:
-            self.extension_handler.on_tenant_unsubscribed_event(event_obj)
+            CartridgeAgent.extension_handler.on_tenant_unsubscribed_event(event_obj)
         except:
             self.log.exception("Error processing tenant unSubscribed event")
+            
+    @staticmethod
+    def get_extension_handler():
+        """
+        Returns the Extension handler implementation
+        :return: An implmentation of AbstractExtensionHandler
+        :rtype : AbstractExtensionHandler
+        """
+        if CartridgeAgent.extension_handler is None:
+            CartridgeAgent.extension_handler = DefaultExtensionHandler()
+            
+        return CartridgeAgent.extension_handler
 
 
 def main():
+    cartridge_agent = CartridgeAgent()
+
     try:
-        cartridge_agent = CartridgeAgent()
         cartridge_agent.start()
     except:
         cartridge_agent.terminate()

http://git-wip-us.apache.org/repos/asf/stratos/blob/0fda59b6/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py
index e6fd98e..d192e75 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py
@@ -10,9 +10,8 @@ from ... config.cartridgeagentconfiguration import CartridgeAgentConfiguration
 from ... util import cartridgeagentutils, extensionutils, cartridgeagentconstants
 from ... util.asyncscheduledtask import AsyncScheduledTask
 from ... artifactmgt.repositoryinformation import RepositoryInformation
-from ... extensions.abstractextensionhandler import AbstractExtensionHandler
 from ... util.log import LogFactory
-
+from ....agent import CartridgeAgent
 
 
 class AgentGitHandler:
@@ -26,7 +25,7 @@ class AgentGitHandler:
     SUPER_TENANT_REPO_PATH = "/repository/deployment/server/"
     TENANT_REPO_PATH = "/repository/tenants/"
 
-    extension_handler = AbstractExtensionHandler()  # TODO: remove dependancy
+    extension_handler = CartridgeAgent.get_extension_handler()
 
     __git_repositories = {}
     # (tenant_id => gitrepository.GitRepository)

http://git-wip-us.apache.org/repos/asf/stratos/blob/0fda59b6/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
index 1a2bfaf..f57a1cf 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
@@ -1,6 +1,3 @@
-import abc
-
-
 class AbstractExtensionHandler:
 
     def on_instance_started_event(self):

http://git-wip-us.apache.org/repos/asf/stratos/blob/0fda59b6/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py b/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py
index a8209a5..46fe18a 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py
@@ -44,7 +44,7 @@ class EventSubscriber(threading.Thread):
         """
         Adds an event handler function mapped to the provided event.
         :param str event: Name of the event to attach the provided handler
-        :param (str)->void handler: The handler function
+        :param handler: The handler function
         :return: void
         :rtype: void
         """