Fixed singleton impl of the configuration class Fixed minor issues in dependancies
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2261bbec Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2261bbec Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2261bbec Branch: refs/heads/master Commit: 2261bbec4bbabd36aace3b4dbeae860007d54ed8 Parents: 105a09e Author: Chamila de Alwis <[email protected]> Authored: Fri Oct 3 04:22:56 2014 +0530 Committer: Chamila de Alwis <[email protected]> Committed: Thu Oct 9 15:41:22 2014 +0530 ---------------------------------------------------------------------- .../cartridge-agent/agent.py | 3 +- .../modules/artifactmgt/git/agentgithandler.py | 17 +++--- .../config/cartridgeagentconfiguration.py | 58 +++++++++----------- .../modules/topology/topologycontext.py | 24 +++++++- .../modules/util/cartridgeagentutils.py | 39 +------------ .../modules/util/extensionutils.py | 2 + 6 files changed, 60 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/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 4858b9d..8ba2740 100644 --- a/tools/python-cartridge-agent/cartridge-agent/agent.py +++ b/tools/python-cartridge-agent/cartridge-agent/agent.py @@ -11,10 +11,11 @@ from modules.tenant.tenantcontext import * from modules.topology.topologycontext import * from modules.datapublisher.logpublisher import * from modules.config import cartridgeagentconfiguration +from modules.extensions import defaultextensionhandler class CartridgeAgent(threading.Thread): - extension_handler = None + extension_handler = defaultextensionhandler.DefaultExtensionHandler() def __init__(self): threading.Thread.__init__(self) http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/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 be46c5d..5353b8f 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 @@ -5,7 +5,10 @@ import urllib2 from ... util.log import LogFactory from ... util import cartridgeagentutils, extensionutils, cartridgeagentconstants - +from gitrepository import GitRepository +from ... config import cartridgeagentconfiguration +from ... util.asyncscheduledtask import AsyncScheduledTask +from ... artifactmgt.repositoryinformation import RepositoryInformation class AgentGitHandler: """ @@ -18,7 +21,7 @@ class AgentGitHandler: SUPER_TENANT_REPO_PATH = "/repository/deployment/server/" TENANT_REPO_PATH = "/repository/tenants/" - extension_handler = cartridgeagentutils.get_extension_handler() + extension_handler = None __git_repositories = {} # (tenant_id => gitrepository.GitRepository) @@ -113,6 +116,8 @@ class AgentGitHandler: @staticmethod def pull(repo_context): repo = Repo(repo_context.local_repo_path) + from ....agent import CartridgeAgent + AgentGitHandler.extension_handler = CartridgeAgent.extension_handler try: repo.git.checkout("master") pull_output = repo.git.pull() @@ -476,10 +481,4 @@ class ArtifactUpdateTask(Thread): self.log.exception("Auto checkout task failed") if self.auto_commit: - AgentGitHandler.commit(self.repo_info) - - -from gitrepository import GitRepository -from ... config import cartridgeagentconfiguration -from ... util.asyncscheduledtask import AsyncScheduledTask -from ... artifactmgt.repositoryinformation import RepositoryInformation \ No newline at end of file + AgentGitHandler.commit(self.repo_info) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/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 27c9a89..415a54e 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py @@ -111,8 +111,7 @@ class CartridgeAgentConfiguration: self.log_file_paths = None is_multi_str = self.read_property(cartridgeagentconstants.CLUSTER_ID) - self.is_multitenant = True if str( - is_multi_str).lower().strip() == "true" else False + self.is_multitenant = True if str(is_multi_str).lower().strip() == "true" else False try: self.persistence_mappings = self.read_property( @@ -123,47 +122,36 @@ class CartridgeAgentConfiguration: try: is_commit_str = self.read_property(cartridgeagentconstants.COMMIT_ENABLED) - self.is_commits_enabled = True if str( - is_commit_str).lower().strip() == "true" else False + self.is_commits_enabled = True if str(is_commit_str).lower().strip() == "true" else False except ParameterNotFoundException: try: is_commit_str = self.read_property(cartridgeagentconstants.AUTO_COMMIT) - self.is_commits_enabled = True if str( - is_commit_str).lower().strip() == "true" else False + self.is_commits_enabled = True if str(is_commit_str).lower().strip() == "true" else False except ParameterNotFoundException: self.log.info( "%r is not found and setting it to false" % cartridgeagentconstants.COMMIT_ENABLED) self.is_commits_enabled = False auto_checkout_str = self.read_property(cartridgeagentconstants.AUTO_CHECKOUT, False) - self.is_checkout_enabled = True if str( - auto_checkout_str).lower().strip() == "true" else False + self.is_checkout_enabled = True if str(auto_checkout_str).lower().strip() == "true" else False self.listen_address = self.read_property( cartridgeagentconstants.LISTEN_ADDRESS, False) try: int_repo_str = self.read_property(cartridgeagentconstants.PROVIDER) - self.is_internal_repo = True if str( - int_repo_str).strip().lower() == cartridgeagentconstants.INTERNAL else False + self.is_internal_repo = True if str(int_repo_str).strip().lower() == cartridgeagentconstants.INTERNAL else False except ParameterNotFoundException: self.log.info(" INTERNAL payload parameter is not found") self.is_internal_repo = False - self.tenant_id = self.read_property( - cartridgeagentconstants.TENANT_ID) - self.lb_cluster_id = self.read_property( - cartridgeagentconstants.LB_CLUSTER_ID) - self.min_count = self.read_property( - cartridgeagentconstants.MIN_INSTANCE_COUNT) - self.lb_private_ip = self.read_property( - cartridgeagentconstants.LB_PRIVATE_IP, False) - self.lb_public_ip = self.read_property( - cartridgeagentconstants.LB_PUBLIC_IP, False) - self.tenant_repository_path = self.read_property( - cartridgeagentconstants.TENANT_REPO_PATH, False) - self.super_tenant_repository_path = self.read_property( - cartridgeagentconstants.SUPER_TENANT_REPO_PATH, False) + self.tenant_id = self.read_property(cartridgeagentconstants.TENANT_ID) + self.lb_cluster_id = self.read_property(cartridgeagentconstants.LB_CLUSTER_ID) + self.min_count = self.read_property(cartridgeagentconstants.MIN_INSTANCE_COUNT) + self.lb_private_ip = self.read_property(cartridgeagentconstants.LB_PRIVATE_IP, False) + self.lb_public_ip = self.read_property(cartridgeagentconstants.LB_PUBLIC_IP, False) + self.tenant_repository_path = self.read_property(cartridgeagentconstants.TENANT_REPO_PATH, False) + self.super_tenant_repository_path = self.read_property(cartridgeagentconstants.SUPER_TENANT_REPO_PATH, False) try: self.deployment = self.read_property( @@ -175,14 +163,14 @@ class CartridgeAgentConfiguration: if self.deployment is None: self.manager_service_name = None - if self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower(): + if str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower(): self.manager_service_name = self.service_name - elif self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower(): + elif str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower(): self.deployment = self.read_property( cartridgeagentconstants.MANAGER_SERVICE_TYPE) - elif self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower(): + elif str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower(): self.deployment = None else: self.deployment = None @@ -191,14 +179,14 @@ class CartridgeAgentConfiguration: if self.deployment is None: self.worker_service_name = None - if self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower(): + if str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower(): self.manager_service_name = self.service_name - elif self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower(): + elif str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower(): self.deployment = self.read_property( cartridgeagentconstants.WORKER_SERVICE_TYPE) - elif self.deployment.lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower(): + elif str(self.deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower(): self.deployment = None else: self.deployment = None @@ -288,12 +276,16 @@ class CartridgeAgentConfiguration: instance = None - def __new__(cls, *args, **kwargs): + # def __new__(cls, *args, **kwargs): + # if not CartridgeAgentConfiguration.instance: + # CartridgeAgentConfiguration.instance = CartridgeAgentConfiguration.__CartridgeAgentConfiguration() + # + # return CartridgeAgentConfiguration.instance + + def __init__(self): if not CartridgeAgentConfiguration.instance: CartridgeAgentConfiguration.instance = CartridgeAgentConfiguration.__CartridgeAgentConfiguration() - return CartridgeAgentConfiguration.instance - def __getattr__(self, name): return getattr(self.instance, name) http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/tools/python-cartridge-agent/cartridge-agent/modules/topology/topologycontext.py ---------------------------------------------------------------------- diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/topology/topologycontext.py b/tools/python-cartridge-agent/cartridge-agent/modules/topology/topologycontext.py index 4a13765..21972ef 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/topology/topologycontext.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/topology/topologycontext.py @@ -1,4 +1,4 @@ -from ..util import cartridgeagentutils, cartridgeagentconstants +from ..util import cartridgeagentconstants class Topology: @@ -207,7 +207,7 @@ class Cluster: self.hostnames.append(hostname) def set_tenant_range(self, tenant_range): - cartridgeagentutils.validate_tenant_range(tenant_range) + self.validate_tenant_range(tenant_range) self.tenant_range = tenant_range def get_members(self): @@ -277,6 +277,26 @@ class Cluster: return False + def validate_tenant_range(self, tenant_range): + """ + Validates the tenant range to be either '*' or a delimeted range of numbers + :param str tenant_range: The tenant range string to be validated + :return: void if the provided tenant range is valid, RuntimeError if otherwise + :exception: RuntimeError if the tenant range is invalid + """ + valid = False + if tenant_range == "*": + valid = True + else: + arr = tenant_range.split(cartridgeagentconstants.TENANT_RANGE_DELIMITER) + if len(arr) == 2: + if arr[0].isdigit() and arr[1].isdigit(): + valid = True + elif arr[0].isdigit() and arr[1] == "*": + valid = True + + if not valid: + raise RuntimeError("Tenant range %r is not valid" % tenant_range) class Member: """ http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/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 81b2b92..7a7a4fe 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/util/cartridgeagentutils.py @@ -1,12 +1,10 @@ from Crypto.Cipher import AES import base64 -import logging import os import time import socket import shutil -import cartridgeagentconstants from log import LogFactory unpad = lambda s: s[0:-ord(s[-1])] @@ -15,16 +13,6 @@ log = LogFactory().get_log(__name__) current_milli_time = lambda: int(round(time.time() * 1000)) -extension_handler = None - - -def get_extension_handler(): - global extension_handler - if extension_handler is None: - extension_handler = defaultextensionhandler.DefaultExtensionHandler() - - return extension_handler - def decrypt_password(pass_str, secret): """ @@ -138,28 +126,6 @@ def check_ports_active(ip_address, ports): return True -def validate_tenant_range(tenant_range): - """ - Validates the tenant range to be either '*' or a delimeted range of numbers - :param str tenant_range: The tenant range string to be validated - :return: void if the provided tenant range is valid, RuntimeError if otherwise - :exception: RuntimeError if the tenant range is invalid - """ - valid = False - if tenant_range == "*": - valid = True - else: - arr = tenant_range.split(cartridgeagentconstants.TENANT_RANGE_DELIMITER) - if len(arr) == 2: - if arr[0].isdigit() and arr[1].isdigit(): - valid = True - elif arr[0].isdigit() and arr[1] == "*": - valid = True - - if not valid: - raise RuntimeError("Tenant range %r is not valid" % tenant_range) - - def get_carbon_server_property(property_key): """ Reads the carbon.xml file and returns the value for the property key. @@ -179,7 +145,4 @@ def get_working_dir(): :rtype : str """ #"/path/to/cartridge-agent/modules/util/".split("modules") returns ["/path/to/cartridge-agent/", "/util"] - return os.path.abspath(os.path.dirname(__file__)).split("modules")[0] - - -from ..extensions import defaultextensionhandler + return os.path.abspath(os.path.dirname(__file__)).split("modules")[0] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/2261bbec/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 013713b..9cf8ba3 100644 --- a/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py +++ b/tools/python-cartridge-agent/cartridge-agent/modules/util/extensionutils.py @@ -4,6 +4,8 @@ import subprocess import time from log import LogFactory +from .. config import cartridgeagentconfiguration + log = LogFactory().get_log(__name__)
