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/b5ed6f0b Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b5ed6f0b Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b5ed6f0b Branch: refs/heads/master Commit: b5ed6f0b0650f7b83d382211c543ae62fc7dc8a5 Parents: b1c5d36 Author: Chamila de Alwis <[email protected]> Authored: Thu Oct 2 14:59:38 2014 +0530 Committer: Chamila de Alwis <[email protected]> Committed: Thu Oct 9 15:41:03 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/b5ed6f0b/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/b5ed6f0b/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/b5ed6f0b/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/b5ed6f0b/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 """
