Abstracted extension handler functionality to avoid circular dependancy Added logging to file '/tmp/cartridge-agent.log'
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b7c8985a Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b7c8985a Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b7c8985a Branch: refs/heads/master Commit: b7c8985aa666aa508387cd665905b076bfe41fcb Parents: 0b63370 Author: Chamila de Alwis <[email protected]> Authored: Mon Sep 29 15:13:49 2014 +0530 Committer: Chamila de Alwis <[email protected]> Committed: Thu Oct 9 15:39:35 2014 +0530 ---------------------------------------------------------------------- .../cartridge-agent/agent.py | 2 +- .../modules/artifactmgt/git/agentgithandler.py | 8 +-- .../config/cartridgeagentconfiguration.py | 30 ++++++---- .../extensions/abstractextensionhandler.py | 61 ++++++++++++++++++++ .../extensions/defaultextensionhandler.py | 5 +- .../publisher/cartridgeagentpublisher.py | 2 +- .../modules/subscriber/eventsubscriber.py | 2 +- .../modules/util/cartridgeagentutils.py | 2 +- .../modules/util/extensionutils.py | 2 +- 9 files changed, 91 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/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 ff5eaf5..ae85a5d 100644 --- a/tools/python-cartridge-agent/cartridge-agent/agent.py +++ b/tools/python-cartridge-agent/cartridge-agent/agent.py @@ -16,7 +16,7 @@ from modules.topology.topologycontext import * class CartridgeAgent(threading.Thread): - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__) def __init__(self): http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/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 fb8100b..e433e0b 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 @@ -8,18 +8,18 @@ from ... config.cartridgeagentconfiguration import CartridgeAgentConfiguration from ... util import cartridgeagentutils, extensionutils, cartridgeagentconstants from ... util.asyncscheduledtask import AsyncScheduledTask from ... artifactmgt.repositoryinformation import RepositoryInformation -from ... extensions.defaultextensionhandler import DefaultExtensionHandler +from ... extensions.abstractextensionhandler import AbstractExtensionHandler class AgentGitHandler: - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__) SUPER_TENANT_ID = -1234 SUPER_TENANT_REPO_PATH = "/repository/deployment/server/" TENANT_REPO_PATH = "/repository/tenants/" - extension_handler = DefaultExtensionHandler() + extension_handler = AbstractExtensionHandler() __git_repositories = {} # (tenant_id => gitrepository.GitRepository) @@ -326,7 +326,7 @@ class AgentGitHandler: class ArtifactUpdateTask(Thread): def __init__(self, repo_info, auto_checkout, auto_commit): - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') self.log = logging.getLogger(__name__) Thread.__init__(self) self.repo_info = repo_info http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py index 43a4e5e..32ff23f 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py @@ -11,7 +11,7 @@ class CartridgeAgentConfiguration: Handles the configuration information of the particular Cartridge Agent """ # set log level - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__) payload_params = {} @@ -154,12 +154,12 @@ class CartridgeAgentConfiguration: "%r is not found and setting it to false" % cartridgeagentconstants.COMMIT_ENABLED) CartridgeAgentConfiguration.is_commits_enabled = False - auto_checkout_str = CartridgeAgentConfiguration.read_property(cartridgeagentconstants.AUTO_CHECKOUT) + auto_checkout_str = CartridgeAgentConfiguration.read_property(cartridgeagentconstants.AUTO_CHECKOUT, False) CartridgeAgentConfiguration.is_checkout_enabled = True if str( auto_checkout_str).lower().strip() == "true" else False CartridgeAgentConfiguration.listen_address = CartridgeAgentConfiguration.read_property( - cartridgeagentconstants.LISTEN_ADDRESS) + cartridgeagentconstants.LISTEN_ADDRESS, False) try: int_repo_str = CartridgeAgentConfiguration.read_property(cartridgeagentconstants.PROVIDER) @@ -176,13 +176,13 @@ class CartridgeAgentConfiguration: CartridgeAgentConfiguration.min_count = CartridgeAgentConfiguration.read_property( cartridgeagentconstants.MIN_INSTANCE_COUNT) CartridgeAgentConfiguration.lb_private_ip = CartridgeAgentConfiguration.read_property( - cartridgeagentconstants.LB_PRIVATE_IP) + cartridgeagentconstants.LB_PRIVATE_IP, False) CartridgeAgentConfiguration.lb_public_ip = CartridgeAgentConfiguration.read_property( - cartridgeagentconstants.LB_PUBLIC_IP) + cartridgeagentconstants.LB_PUBLIC_IP, False) CartridgeAgentConfiguration.tenant_repository_path = CartridgeAgentConfiguration.read_property( - cartridgeagentconstants.TENANT_REPO_PATH) + cartridgeagentconstants.TENANT_REPO_PATH, False) CartridgeAgentConfiguration.super_tenant_repository_path = CartridgeAgentConfiguration.read_property( - cartridgeagentconstants.SUPER_TENANT_REPO_PATH) + cartridgeagentconstants.SUPER_TENANT_REPO_PATH, False) try: CartridgeAgentConfiguration.deployment = CartridgeAgentConfiguration.read_property( @@ -277,17 +277,22 @@ class CartridgeAgentConfiguration: if param_file is not None: metadata_file = open(param_file) metadata_payload_content = metadata_file.read() - CartridgeAgentConfiguration.payload_params = dict( - param.split("=") for param in metadata_payload_content.split(",")) + for param in metadata_payload_content.split(","): + if param.strip() != "": + param_value = param.strip().split("=") + CartridgeAgentConfiguration.payload_params[param_value[0]] = param_value[1] + + # CartridgeAgentConfiguration.payload_params = dict( + # param.split("=") for param in metadata_payload_content.split(",")) metadata_file.close() else: CartridgeAgentConfiguration.log.error("File not found: %r" % param_file) except: - CartridgeAgentConfiguration.log.error( + CartridgeAgentConfiguration.log.exception( "Could not read launch parameter file, hence trying to read from System properties.") @staticmethod - def read_property(property_key): + def read_property(property_key, critical=True): """ Returns the value of the provided property :param str property_key: the name of the property to be read @@ -307,4 +312,5 @@ class CartridgeAgentConfiguration: if temp_str != "" and temp_str is not None: return temp_str - raise ParameterNotFoundException("Cannot find the value of required parameter: %r" % property_key) \ No newline at end of file + if critical: + raise ParameterNotFoundException("Cannot find the value of required parameter: %r" % property_key) http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/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 new file mode 100644 index 0000000..1a2bfaf --- /dev/null +++ b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py @@ -0,0 +1,61 @@ +import abc + + +class AbstractExtensionHandler: + + def on_instance_started_event(self): + raise NotImplementedError + + def on_instance_activated_event(self): + raise NotImplementedError + + def on_artifact_updated_event(self, artifacts_updated_event): + raise NotImplementedError + + def on_artifact_update_scheduler_event(self, tenant_id): + raise NotImplementedError + + def on_instance_cleanup_cluster_event(self, instanceCleanupClusterEvent): + raise NotImplementedError + + def on_instance_cleanup_member_event(self, instanceCleanupMemberEvent): + raise NotImplementedError + + def on_member_activated_event(self, member_activated_event): + raise NotImplementedError + + def on_complete_topology_event(self, complete_topology_event): + raise NotImplementedError + + def on_complete_tenant_event(self, complete_tenant_event): + raise NotImplementedError + + def on_member_terminated_event(self, member_terminated_event): + raise NotImplementedError + + def on_member_suspended_event(self, member_suspended_event): + raise NotImplementedError + + def on_member_started_event(self, member_started_event): + raise NotImplementedError + + def start_server_extension(self): + raise NotImplementedError + + def volume_mount_extension(self, persistence_mappings_payload): + raise NotImplementedError + + def on_subscription_domain_added_event(self, subscription_domain_added_event): + raise NotImplementedError + + def on_subscription_domain_removed_event(self, subscriptionDomainRemovedEvent): + raise NotImplementedError + + def on_copy_artifacts_extension(self, src, des): + raise NotImplementedError + + def on_tenant_subscribed_event(self, tenant_subscribed_event): + raise NotImplementedError + + def on_tenant_unsubscribed_event(self, tenant_unsubscribed_event): + raise NotImplementedError http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py index a93130f..96b6fd5 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py @@ -9,16 +9,17 @@ from ..publisher import cartridgeagentpublisher from ..exception.parameternotfoundexception import ParameterNotFoundException from ..topology.topologycontext import * from ..tenant.tenantcontext import * +from abstractextensionhandler import AbstractExtensionHandler -class DefaultExtensionHandler: +class DefaultExtensionHandler(AbstractExtensionHandler): """ TODO : Provide abstraction """ log = None def __init__(self): - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') self.log = logging.getLogger(__name__) self.wk_members = [] http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/tools/python-cartridge-agent/cartridge-agent/modules/publisher/cartridgeagentpublisher.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/publisher/cartridgeagentpublisher.py b/tools/python-cartridge-agent/cartridge-agent/modules/publisher/cartridgeagentpublisher.py index 84ee43a..1ad437b 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/publisher/cartridgeagentpublisher.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/publisher/cartridgeagentpublisher.py @@ -7,7 +7,7 @@ from .. config.cartridgeagentconfiguration import CartridgeAgentConfiguration from .. util import cartridgeagentconstants -logging.basicConfig(level=logging.DEBUG) +logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__) started = False http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/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 44ed8d8..6d29a68 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/subscriber/eventsubscriber.py @@ -18,7 +18,7 @@ class EventSubscriber(threading.Thread): #{"ArtifactUpdateEvent" : onArtifactUpdateEvent()} self.__event_handlers = {} - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') self.log = logging.getLogger(__name__) self.__mb_client = None http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py b/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py index 89e7961..8e47a37 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py @@ -11,7 +11,7 @@ import cartridgeagentconstants unpad = lambda s: s[0:-ord(s[-1])] -logging.basicConfig(level=logging.DEBUG) +logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__) current_milli_time = lambda: int(round(time.time() * 1000)) http://git-wip-us.apache.org/repos/asf/stratos/blob/b7c8985a/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py b/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py index 60a1558..53b6ea8 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py @@ -6,7 +6,7 @@ import time from .. config.cartridgeagentconfiguration import CartridgeAgentConfiguration from .. topology.topologycontext import * -logging.basicConfig(level=logging.DEBUG) +logging.basicConfig(level=logging.DEBUG, filename='/tmp/cartridge-agent.log') log = logging.getLogger(__name__)
