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:09:33 UTC
[08/50] [abbrv] git commit: Restructured modules to suit relative
imports
Restructured modules to suit relative imports
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ed08e2d3
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ed08e2d3
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ed08e2d3
Branch: refs/heads/master
Commit: ed08e2d3feac5aad4eae676a1311acf6a5181625
Parents: 1e8ad22
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Tue Sep 23 14:03:46 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Sat Oct 11 14:38:28 2014 +0530
----------------------------------------------------------------------
.../cartridge-agent/__init__.py | 1 -
.../cartridge-agent/agent.py | 16 +-
.../cartridge-agent/agent.sh | 8 -
.../cartridge-agent/agent1.py | 15 -
.../cartridge-agent/artifactmgt/__init__.py | 1 -
.../cartridge-agent/artifactmgt/git/__init__.py | 1 -
.../artifactmgt/git/agentgithandler.py | 147 ---------
.../artifactmgt/git/gitrepository.py | 12 -
.../artifactmgt/repositoryinformation.py | 13 -
.../cartridge-agent/config/__init__.py | 1 -
.../config/cartridgeagentconfiguration.py | 297 ------------------
.../cartridge-agent/event/__init__.py | 1 -
.../cartridge-agent/event/instance/__init__.py | 1 -
.../event/instance/notifier/__init__.py | 1 -
.../event/instance/notifier/events.py | 50 ----
.../event/instance/status/__init__.py | 1 -
.../event/instance/status/events.py | 25 --
.../cartridge-agent/event/tenant/__init__.py | 1 -
.../cartridge-agent/event/tenant/events.py | 98 ------
.../cartridge-agent/exception/__init__.py | 1 -
.../exception/parameternotfoundexception.py | 9 -
.../cartridge-agent/extensionhandler.py | 88 +++---
.../cartridge-agent/extensions/__init__.py | 1 -
.../extensions/defaultextensionhandler.py | 148 ---------
.../cartridge-agent/modules/__init__.py | 0
.../cartridge-agent/modules/__init__.pyc | Bin 0 -> 194 bytes
.../modules/artifactmgt/__init__.py | 1 +
.../modules/artifactmgt/git/__init__.py | 1 +
.../modules/artifactmgt/git/agentgithandler.py | 148 +++++++++
.../modules/artifactmgt/git/gitrepository.py | 12 +
.../artifactmgt/repositoryinformation.py | 13 +
.../cartridge-agent/modules/config/__init__.py | 1 +
.../cartridge-agent/modules/config/__init__.pyc | Bin 0 -> 254 bytes
.../config/cartridgeagentconfiguration.py | 298 +++++++++++++++++++
.../config/cartridgeagentconfiguration.pyc | Bin 0 -> 17633 bytes
.../cartridge-agent/modules/event/__init__.py | 1 +
.../modules/event/instance/__init__.py | 1 +
.../modules/event/instance/notifier/__init__.py | 1 +
.../modules/event/instance/notifier/events.py | 50 ++++
.../modules/event/instance/status/__init__.py | 1 +
.../modules/event/instance/status/events.py | 25 ++
.../modules/event/tenant/__init__.py | 1 +
.../modules/event/tenant/events.py | 98 ++++++
.../modules/exception/__init__.py | 1 +
.../modules/exception/__init__.pyc | Bin 0 -> 256 bytes
.../exception/parameternotfoundexception.py | 9 +
.../exception/parameternotfoundexception.pyc | Bin 0 -> 1133 bytes
.../modules/extensions/__init__.py | 1 +
.../extensions/defaultextensionhandler.py | 148 +++++++++
.../modules/publisher/__init__.py | 1 +
.../publisher/cartridgeagentpublisher.py | 90 ++++++
.../modules/subscriber/__init__.py | 1 +
.../modules/subscriber/eventsubscriber.py | 62 ++++
.../cartridge-agent/modules/util/__init__.py | 1 +
.../cartridge-agent/modules/util/__init__.pyc | Bin 0 -> 297 bytes
.../modules/util/cartridgeagentconstants.py | 88 ++++++
.../modules/util/cartridgeagentconstants.pyc | Bin 0 -> 3917 bytes
.../modules/util/cartridgeagentutils.py | 94 ++++++
.../modules/util/cartridgeagentutils.pyc | Bin 0 -> 3924 bytes
.../modules/util/extensionutils.py | 40 +++
.../cartridge-agent/publisher/__init__.py | 1 -
.../publisher/cartridgeagentpublisher.py | 88 ------
.../cartridge-agent/readme.txt | 2 -
.../cartridge-agent/script.sh | 0
.../cartridge-agent/subscriber/__init__.py | 1 -
.../subscriber/eventsubscriber.py | 62 ----
.../cartridge-agent/util/__init__.py | 1 -
.../util/cartridgeagentconstants.py | 88 ------
.../cartridge-agent/util/cartridgeagentutils.py | 94 ------
.../cartridge-agent/util/extensionutils.py | 40 ---
70 files changed, 1240 insertions(+), 1262 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/__init__.py b/tools/python-cartridge-agent/cartridge-agent/__init__.py
index 0de6991..e69de29 100644
--- a/tools/python-cartridge-agent/cartridge-agent/__init__.py
+++ b/tools/python-cartridge-agent/cartridge-agent/__init__.py
@@ -1 +0,0 @@
-__author__ = 'chamilad'
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/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 7108801..0dfecb2 100644
--- a/tools/python-cartridge-agent/cartridge-agent/agent.py
+++ b/tools/python-cartridge-agent/cartridge-agent/agent.py
@@ -3,14 +3,14 @@ import logging
import threading
import time
-from config.cartridgeagentconfiguration import CartridgeAgentConfiguration
-from util import *
-from exception.parameternotfoundexception import ParameterNotFoundException
-from subscriber.eventsubscriber import EventSubscriber
-from extensions.defaultextensionhandler import DefaultExtensionHandler
-from publisher import cartridgeagentpublisher
-from event.instance.notifier.events import *
-from event.tenant.events import *
+from modules.config.cartridgeagentconfiguration import CartridgeAgentConfiguration
+from modules.util import *
+from modules.exception.parameternotfoundexception import ParameterNotFoundException
+from modules.subscriber.eventsubscriber import EventSubscriber
+from modules.extensions.defaultextensionhandler import DefaultExtensionHandler
+from modules.publisher import cartridgeagentpublisher
+from modules.event.instance.notifier.events import *
+from modules.event.tenant.events import *
class CartridgeAgent(threading.Thread):
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/agent.sh
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/agent.sh b/tools/python-cartridge-agent/cartridge-agent/agent.sh
deleted file mode 100644
index 15b4759..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/agent.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-param_path="/home/gayan/Resources/Stratos/payload/launch-params"
-extension_path="/home/gayan/Resources/Stratos/extentions"
-
-python agent.py $param_path $extension_path
-
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/agent1.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/agent1.py b/tools/python-cartridge-agent/cartridge-agent/agent1.py
deleted file mode 100644
index cf9dda1..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/agent1.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-import stomp
-import time
-import logging
-import sys
-import random
-import os
-import threading
-import socket
-
-payloadPath="/home/gayan/Resources/Stratos/payload/launch-params";
-extensionsDir="/home/gayan/Resources/Stratos/extentions"
-mbip=""
-mbport=""
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/artifactmgt/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/__init__.py b/tools/python-cartridge-agent/cartridge-agent/artifactmgt/__init__.py
deleted file mode 100644
index b1e49e4..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['repositoryinformation']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/__init__.py b/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/__init__.py
deleted file mode 100644
index 372e725..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['agentgithandler', 'gitrepository']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/agentgithandler.py b/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/agentgithandler.py
deleted file mode 100644
index 9c27f68..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/agentgithandler.py
+++ /dev/null
@@ -1,147 +0,0 @@
-from git import *
-import gitrepository
-import logging
-
-from ...config.cartridgeagentconfiguration import CartridgeAgentConfiguration
-from ...util import cartridgeagentutils
-
-
-class AgentGitHandler:
- logging.basicConfig(level=logging.DEBUG)
- log = logging.getLogger(__name__)
-
- SUPER_TENANT_ID = -1234
- SUPER_TENANT_REPO_PATH = "/repository/deployment/server/"
- TENANT_REPO_PATH = "/repository/tenants/"
-
- cartridge_agent_config = CartridgeAgentConfiguration()
-
- __git_repositories = {}
- # (tenant_id => gitrepository.GitRepository)
-
- @staticmethod
- def checkout(repo_info):
- repo_context = AgentGitHandler.get_repo_context(repo_info.tenant_id)
- if repo_context is not None:
- #has been previously cloned, this is not the subscription run
- cloned = True
- #TODO: handle conflicts and errors using repo.git.pull(), status(), checkout() outputs
- AgentGitHandler.log.debug("Existing git repository detected for tenant %r, no clone required" % repo_info.tenant_id)
- AgentGitHandler.pull(repo_context)
- else:
- #subscribing run.. need to clone
- cloned = False
- repo_context = AgentGitHandler.create_git_repo_context(repo_info)
- AgentGitHandler.clone(repo_context)
-
- return {"cloned": cloned, "repo_context": repo_context}
-
- @staticmethod
- def pull(repo_context):
- #create repo object
- repo = Repo(repo_context.local_repo_path)
- repo.remotes.origin.pull()
-
- # TODO: handle conflict errors
-
-
- @staticmethod
- def clone(repo_context):
- try:
- repo = Repo.clone_from(repo_context.repo_url, repo_context.local_repo_path)
- repo_context.cloned = True
- AgentGitHandler.add_repo_context(repo_context)
- AgentGitHandler.log.info("Git clone operation for tenant %r successful" % repo_context.tenant_id)
- except GitCommandError as ex:
- if "remote: Repository not found." in ex.message:
- AgentGitHandler.log.exception("Accessing remote git repository failed for tenant %r" % repo_context.tenant_id)
- #GitPython deletes the target folder if remote not found
- cartridgeagentutils.create_dir(repo_context.local_repo_path)
- else:
- AgentGitHandler.log.exception("Git clone operation for tenant %r failed" % repo_context.tenant_id)
-
- @staticmethod
- def add_repo_context(repo_context):
- AgentGitHandler.__git_repositories[repo_context.tenant_id] = repo_context
-
- @staticmethod
- def get_repo_context(tenant_id):
- if tenant_id in AgentGitHandler.__git_repositories:
- return AgentGitHandler.__git_repositories[tenant_id]
-
- return None
-
- @staticmethod
- def remove_repo_context(tenant_id):
- if tenant_id in AgentGitHandler.__git_repositories:
- del AgentGitHandler.__git_repositories[tenant_id]
-
- @staticmethod
- def create_git_repo_context(repo_info):
- repo_context = gitrepository.GitRepositoryContext()
- repo_context.tenant_id = repo_info.tenant_id
- repo_context.local_repo_path = AgentGitHandler.get_repo_path_for_tenant(
- repo_info.tenant_id, repo_info.repo_path, repo_info.is_multitenant)
- repo_context.repo_url = repo_info.repo_url
- repo_context.repo_username = repo_info.repo_username
- repo_context.repo_password = repo_info.repo_password
-
- # TODO: push
- # push not implemented
- # if is_key_based_auth(repo_info.repo_url, tenant_id):
- # repo.key_based_auth = True
- # init_ssh_auth()
- # else:
- # repo.key_based_auth = False
-
- repo_context.cloned = False
-
- return repo_context
-
- # @staticmethod
- # def is_key_based_auth(repo_url, tenant_id):
-
-
- @staticmethod
- def get_repo_path_for_tenant(tenant_id, git_local_repo_path, is_multitenant):
- repo_path = ""
-
- if is_multitenant:
- if tenant_id == AgentGitHandler.SUPER_TENANT_ID:
- #super tenant, /repository/deploy/server/
- super_tenant_repo_path = AgentGitHandler.cartridge_agent_config.get_super_tenant_repo_path()
- #"app_path"
- repo_path += git_local_repo_path
-
- if super_tenant_repo_path is not None and super_tenant_repo_path != "":
- super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.startswith("/") else "/" + super_tenant_repo_path
- super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.endswith("/") else super_tenant_repo_path + "/"
- #"app_path/repository/deploy/server/"
- repo_path += super_tenant_repo_path
- else:
- #"app_path/repository/deploy/server/"
- repo_path += AgentGitHandler.SUPER_TENANT_REPO_PATH
-
- else:
- #normal tenant, /repository/tenants/tenant_id
- tenant_repo_path = AgentGitHandler.cartridge_agent_config.get_tenant_repo_path()
- #"app_path"
- repo_path += git_local_repo_path
-
- if tenant_repo_path is not None and tenant_repo_path != "":
- tenant_repo_path = tenant_repo_path if tenant_repo_path.startswith("/") else "/" + tenant_repo_path
- tenant_repo_path = tenant_repo_path if tenant_repo_path.endswith("/") else tenant_repo_path + "/"
- #"app_path/repository/tenants/244653444"
- repo_path += tenant_repo_path + tenant_id
- else:
- #"app_path/repository/tenants/244653444"
- repo_path += AgentGitHandler.TENANT_REPO_PATH + tenant_id
-
- #tenant_dir_path = git_local_repo_path + AgentGitHandler.TENANT_REPO_PATH + tenant_id
- cartridgeagentutils.create_dir(repo_path)
- else:
- #not multi tenant, app_path
- repo_path = git_local_repo_path
-
- AgentGitHandler.log.debug("Repo path returned : %r" % repo_path)
- return repo_path
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/gitrepository.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/gitrepository.py b/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/gitrepository.py
deleted file mode 100644
index 12ce591..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/git/gitrepository.py
+++ /dev/null
@@ -1,12 +0,0 @@
-class GitRepositoryContext:
-
- def __init__(self):
- self.repo_url = None
- self.local_repo_path = None
- self.cloned = False
- self.repo = None
- self.tenant_id = None
- self.key_based_auth = False
- self.repo_username = None
- self.repo_password = None
- #scheduled update service
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/artifactmgt/repositoryinformation.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/repositoryinformation.py b/tools/python-cartridge-agent/cartridge-agent/artifactmgt/repositoryinformation.py
deleted file mode 100644
index d30c319..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/artifactmgt/repositoryinformation.py
+++ /dev/null
@@ -1,13 +0,0 @@
-class RepositoryInformation:
- """
- Holds repository information to be used in artifact management
- """
-
- def __init__(self, repo_url, repo_username, repo_password, repo_path, tenant_id, is_multitenant, commit_enabled):
- self.repo_url = repo_url
- self.repo_username = repo_username
- self.repo_password = repo_password
- self.repo_path = repo_path
- self.tenant_id = tenant_id
- self.is_multitenant = is_multitenant
- self.commit_enabled = commit_enabled
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/config/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/config/__init__.py b/tools/python-cartridge-agent/cartridge-agent/config/__init__.py
deleted file mode 100644
index 836c3ab..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/config/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['cartridgeagentconfiguration']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/config/cartridgeagentconfiguration.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/config/cartridgeagentconfiguration.py b/tools/python-cartridge-agent/cartridge-agent/config/cartridgeagentconfiguration.py
deleted file mode 100644
index a57c0ca..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/config/cartridgeagentconfiguration.py
+++ /dev/null
@@ -1,297 +0,0 @@
-import ConfigParser
-import logging
-
-from ..util import cartridgeagentconstants
-from ..exception.parameternotfoundexception import ParameterNotFoundException
-
-
-class CartridgeAgentConfiguration:
- class __CartridgeAgentConfiguration:
-
- def __init__(self):
- # set log level
- logging.basicConfig(level=logging.DEBUG)
- self.log = logging.getLogger(__name__)
-
- self.__read_conf_file()
- self.__read_parameter_file()
-
- try:
- self.__service_group = self.payload_params[cartridgeagentconstants.SERVICE_GROUP] \
- if cartridgeagentconstants.SERVICE_GROUP in self.payload_params \
- else None
-
- if cartridgeagentconstants.CLUSTERING in self.payload_params and \
- str(self.payload_params[cartridgeagentconstants.CLUSTERING]).strip().lower() == "true":
- self.__isClustered = True
- else:
- self.__isClustered = False
- # self.__isClustered = self.payload_params[
- # cartridgeagentconstants.CLUSTERING] if cartridgeagentconstants.CLUSTERING in self.payload_params else None
-
- self.__service_name = self.read_property(cartridgeagentconstants.SERVICE_NAME)
- self.__cluster_id = self.read_property(cartridgeagentconstants.CLUSTER_ID)
- self.__network_partition_id = self.read_property(cartridgeagentconstants.NETWORK_PARTITION_ID)
- self.__partitionId = self.read_property(cartridgeagentconstants.PARTITION_ID)
- self.__memberId = self.read_property(cartridgeagentconstants.MEMBER_ID)
- self.__cartridgeKey = self.read_property(cartridgeagentconstants.CARTRIDGE_KEY)
- self.__appPath = self.read_property(cartridgeagentconstants.APP_PATH)
- self.__repoUrl = self.read_property(cartridgeagentconstants.REPO_URL)
- self.__ports = str(self.read_property(cartridgeagentconstants.PORTS)).split("|")
-
- try:
- self.__logFilePaths = str(self.read_property(cartridgeagentconstants.CLUSTER_ID)).strip().split("|")
- except ParameterNotFoundException as ex:
- self.log.debug("Cannot read log file path : %r" % ex.get_message())
- self.__logFilePaths = None
-
- is_multi_str = self.read_property(cartridgeagentconstants.CLUSTER_ID)
- self.__isMultitenant = True if str(is_multi_str).lower().strip() == "true" else False
-
- try:
- self.__persistenceMappings = self.read_property("PERSISTENCE_MAPPING")
- except ParameterNotFoundException as ex:
- self.log.debug("Cannot read persistence mapping : %r" % ex.get_message())
- self.__persistenceMappings = None
-
- try:
- is_commit_str = self.read_property(cartridgeagentconstants.COMMIT_ENABLED)
- self.__isCommitsEnabled = True if str(is_commit_str).lower().strip() == "true" else False
- except ParameterNotFoundException:
- try:
- is_commit_str = self.read_property(cartridgeagentconstants.AUTO_COMMIT)
- self.__isCommitsEnabled = 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.__isCommitsEnabled = False
-
- auto_checkout_str = self.read_property(cartridgeagentconstants.AUTO_CHECKOUT)
- self.__isCheckoutEnabled = True if str(auto_checkout_str).lower().strip() == "true" else False
-
- self.__listenAddress = self.read_property(cartridgeagentconstants.LISTEN_ADDRESS)
-
- try:
- int_repo_str = self.read_property(cartridgeagentconstants.PROVIDER)
- self.__isInternalRepo = True if str(int_repo_str).strip().lower() == cartridgeagentconstants.INTERNAL else False
- except ParameterNotFoundException:
- self.log.info(" INTERNAL payload parameter is not found")
- self.__isInternalRepo = False
-
- self.__tenantId = self.read_property(cartridgeagentconstants.TENANT_ID)
- self.__lbClusterId = self.read_property(cartridgeagentconstants.LB_CLUSTER_ID)
- self.__minCount = self.read_property(cartridgeagentconstants.MIN_INSTANCE_COUNT)
- self.__lbPrivateIp = self.read_property(cartridgeagentconstants.LB_PRIVATE_IP)
- self.__lbPublicIp = self.read_property(cartridgeagentconstants.LB_PUBLIC_IP)
- self.__tenantRepositoryPath = self.read_property(cartridgeagentconstants.TENANT_REPO_PATH)
- self.__superTenantRepositoryPath = self.read_property(cartridgeagentconstants.SUPER_TENANT_REPO_PATH)
-
- try:
- self.__deployment = self.read_property(cartridgeagentconstants.DEPLOYMENT)
- except ParameterNotFoundException:
- self.__deployment = None
-
- # Setting worker-manager setup - manager service name
- if self.__deployment is None:
- self.__managerServiceName = None
-
- if str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower():
- self.__managerServiceName = self.__service_name
-
- elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower():
- self.__deployment = self.read_property(cartridgeagentconstants.MANAGER_SERVICE_TYPE)
-
- elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower():
- self.__deployment = None
- else:
- self.__deployment = None
-
- # Setting worker-manager setup - worker service name
- if self.__deployment is None:
- self.__workerServiceName = None
-
- if str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower():
- self.__managerServiceName = self.__service_name
-
- elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower():
- self.__deployment = self.read_property(cartridgeagentconstants.WORKER_SERVICE_TYPE)
-
- elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower():
- self.__deployment = None
- else:
- self.__deployment = None
-
- try:
- self.__isPrimary = self.read_property(cartridgeagentconstants.CLUSTERING_PRIMARY_KEY)
- except ParameterNotFoundException:
- self.__isPrimary = None
- except ParameterNotFoundException as ex:
- raise RuntimeError(ex)
-
- self.log.info("Cartridge agent configuration initialized")
-
- self.log.debug("service-name: %r" % self.__service_name)
- self.log.debug("cluster-id: %r" % self.__cluster_id)
- self.log.debug("network-partition-id: %r" % self.__network_partition_id)
- self.log.debug("partition-id: %r" % self.__partitionId)
- self.log.debug("member-id: %r" % self.__memberId)
- self.log.debug("cartridge-key: %r" % self.__cartridgeKey)
- self.log.debug("app-path: %r" % self.__appPath)
- self.log.debug("repo-url: %r" % self.__repoUrl)
- self.log.debug("ports: %r" % str(self.__ports))
- self.log.debug("lb-private-ip: %r" % self.__lbPrivateIp)
- self.log.debug("lb-public-ip: %r" % self.__lbPublicIp)
-
- def __read_conf_file(self):
- """
- Reads and stores the agent's configuration file
- :return:
- """
-
- self.properties = ConfigParser.SafeConfigParser()
- self.properties.read('agent.conf')
-
- def __read_parameter_file(self):
- """
- Reads the payload file of the cartridge and stores the values in a dictionary
- :return:
- """
-
- param_file = self.read_property(cartridgeagentconstants.PARAM_FILE_PATH)
-
- try:
- if param_file is not None:
- metadata_file = open(param_file)
- metadata_payload_content = metadata_file.read()
- self.payload_params = dict(param.split("=") for param in metadata_payload_content.split(","))
- metadata_file.close()
- else:
- self.log.error("File not found: %r" % param_file)
- except:
- self.log.error("Could not read launch parameter file, hence trying to read from System properties.")
-
- def read_property(self, property_key):
-
- if self.properties.has_option("agent", property_key):
- temp_str = self.properties.get("agent", property_key)
- if temp_str != "" and temp_str is not None:
- return temp_str
-
- if self.payload_params.has_key(property_key):
- temp_str = self.payload_params[property_key]
- if temp_str != "" and temp_str is not None:
- return temp_str
-
- raise ParameterNotFoundException("Cannot find the value of required parameter: %r" % property_key)
-
- def get_service_name(self):
- return self.__service_name
-
- def get_cluster_id(self):
- return self.__cluster_id
-
- def get_network_partition_id(self):
- return self.__network_partition_id
-
- def get_partition_id(self):
- return self.__partitionId
-
- def get_member_id(self):
- return self.__memberId
-
- def get_cartridge_key(self):
- return self.__cartridgeKey
-
- def get_app_path(self):
- return self.__appPath
-
- def get_repo_url(self):
- return self.__repoUrl
-
- def get_ports(self):
- return self.__ports
-
- def get_log_file_paths(self):
- return self.__logFilePaths
-
- def is_multitenant(self):
- return self.__isMultitenant
-
- def get_persistance_mappings(self):
- return self.__persistenceMappings
-
- def is_commits_enabled(self):
- return self.__isCommitsEnabled
-
- def get_listen_address(self):
- return self.__listenAddress
-
- def is_internal_repo(self):
- return self.__isInternalRepo
-
- def get_tenant_id(self):
- return self.__tenantId
-
- def get_lb_cluster_id(self):
- return self.__lbClusterId
-
- def get_service_group(self):
- return self.__service_group
-
- def is_clustered(self):
- return self.__isClustered
-
- def get_min_count(self):
- return self.__minCount
-
- def is_primary(self):
- return self.__isPrimary
-
- def get_lb_public_ip(self):
- return self.__lbPublicIp
-
- def set_lb_public_ip(self, ip):
- self.__lbPublicIp = ip
-
- def get_lb_private(self):
- return self.__lbPrivateIp
-
- def set_lb_privateip(self, ip):
- self.__lbPrivateIp = ip
-
- def get_deployment(self):
- return self.__deployment
-
- def set_deployment(self, dep):
- self.__deployment = dep
-
- def get_manager_service_name(self):
- return self.__managerServiceName
-
- def set_manager_service_name(self, mgr):
- self.__managerServiceName = mgr
-
- def get_worker_service_name(self):
- return self.__workerServiceName
-
- def set_worker_service_name(self, wrkr):
- self.__workerServiceName = wrkr
-
- def get_super_tenant_repo_path(self):
- return self.__superTenantRepositoryPath
-
- def get_tenant_repo_path(self):
- return self.__tenantRepositoryPath
-
- def is_checkout_enabled(self):
- return self.__isCheckoutEnabled
-
- instance = None
-
- def __init__(self):
- if not CartridgeAgentConfiguration.instance:
- CartridgeAgentConfiguration.instance = CartridgeAgentConfiguration.__CartridgeAgentConfiguration()
-
- def __getattr__(self, item):
- return getattr(self.instance, item)
-
-
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/__init__.py b/tools/python-cartridge-agent/cartridge-agent/event/__init__.py
deleted file mode 100644
index 0de6991..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__author__ = 'chamilad'
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/instance/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/instance/__init__.py b/tools/python-cartridge-agent/cartridge-agent/event/instance/__init__.py
deleted file mode 100644
index 0de6991..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/instance/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__author__ = 'chamilad'
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/__init__.py b/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/__init__.py
deleted file mode 100644
index 3bcb310..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ['events']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/events.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/events.py b/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/events.py
deleted file mode 100644
index 5ab3e6c..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/instance/notifier/events.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import json
-
-
-class ArtifactUpdatedEvent:
- def __init__(self):
- self.cluster_id = None
- self.status = None
- self.repo_username = None
- self.repo_password = None
- self.repo_url = None
- self.tenant_id = None
- self.commit_enabled = None
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = ArtifactUpdatedEvent()
-
- instance.cluster_id = json_obj["clusterId"] if "clusterId" in json_obj else None
- instance.status = json_obj["status"] if "status" in json_obj else None
- instance.repo_username = json_obj["repoUserName"] if "repoUserName" in json_obj else None
- instance.repo_password = json_obj["repoPassword"] if "repoPassword" in json_obj else None
- instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
- instance.commit_enabled = json_obj["commitEnabled"] if "commitEnabled" in json_obj else None
-
- return instance
-
-
-class InstanceCleanupClusterEvent:
- def __init__(self, cluster_id):
- self.cluster_id = cluster_id
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- c_id = json_obj["clusterId"] if "clusterId" in json_obj else None
-
- return InstanceCleanupClusterEvent(c_id)
-
-
-class InstanceCleanupMemberEvent:
- def __init__(self, member_id):
- self.member_id = member_id
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- m_id = json_obj["memberId"] if "memberId" in json_obj else None
-
- return InstanceCleanupMemberEvent(m_id)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/instance/status/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/instance/status/__init__.py b/tools/python-cartridge-agent/cartridge-agent/event/instance/status/__init__.py
deleted file mode 100644
index cd8b9d2..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/instance/status/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['events']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/instance/status/events.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/instance/status/events.py b/tools/python-cartridge-agent/cartridge-agent/event/instance/status/events.py
deleted file mode 100644
index 878667c..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/instance/status/events.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import json
-
-
-class InstanceActivatedEvent:
- def __init__(self, service_name, cluster_id, network_partition_id, parition_id, member_id):
- self.serviceName = service_name
- self.clusterId = cluster_id
- self.networkPartitionId = network_partition_id
- self.partitionId = parition_id
- self.memberId = member_id
-
- def to_json(self):
- return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
-
-
-class InstanceStartedEvent:
- def __init__(self, service_name, cluster_id, network_partition_id, parition_id, member_id):
- self.serviceName = service_name
- self.clusterId = cluster_id
- self.networkPartitionId = network_partition_id
- self.partitionId = parition_id
- self.memberId = member_id
-
- def to_json(self):
- return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/tenant/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/tenant/__init__.py b/tools/python-cartridge-agent/cartridge-agent/event/tenant/__init__.py
deleted file mode 100644
index cd8b9d2..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/tenant/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['events']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/event/tenant/events.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/event/tenant/events.py b/tools/python-cartridge-agent/cartridge-agent/event/tenant/events.py
deleted file mode 100644
index 7395f7e..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/event/tenant/events.py
+++ /dev/null
@@ -1,98 +0,0 @@
-import json
-
-
-class SubscriptionDomainAddedEvent():
-
- def __init__(self):
- self.tenant_id = None
- self.service_name = None
- self.cluster_ids = None
- self.domain_name = None
- self.application_context = None
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = SubscriptionDomainAddedEvent()
-
- instance.cluster_ids = json_obj["clusterIds"] if "clusterIds" in json_obj else None
- instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
- instance.service_name = json_obj["serviceName"] if "serviceName" in json_obj else None
- instance.domain_name = json_obj["domainName"] if "domainName" in json_obj else None
- instance.application_context = json_obj["applicationContext"] if "applicationContext" in json_obj else None
-
- return instance
-
-
-class SubscriptionDomainRemovedEvent:
-
- def __init__(self, tenant_id, service_name, cluster_ids, domain_name):
- self.tenant_id = tenant_id
- self.service_name = service_name
- self.cluster_ids = cluster_ids
- self.domain_name = domain_name
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = SubscriptionDomainRemovedEvent()
-
- instance.cluster_ids = json_obj["clusterIds"] if "clusterIds" in json_obj else None
- instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
- instance.service_name = json_obj["serviceName"] if "serviceName" in json_obj else None
- instance.domain_name = json_obj["domainName"] if "domainName" in json_obj else None
-
- return instance
-
-
-class CompleteTenantEvent:
-
- def __init__(self):
- self.tenants = None
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = CompleteTenantEvent()
-
- instance.tenants = json_obj["tenants"] if "tenants" in json_obj else None
-
- return instance
-
-
-class TenantSubscribedEvent:
-
- def __init__(self):
- self.tenant_id = None
- self.service_name = None
- self.cluster_ids = None
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = TenantSubscribedEvent()
-
- instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
- instance.service_name = json_obj["serviceName"] if "serviceName" in json_obj else None
- instance.cluster_ids = json_obj["clusterIds"] if "clusterIds" in json_obj else None
-
- return instance
-
-
-class TenantUnsubscribedEvent:
-
- def __init__(self):
- self.tenant_id = None
- self.service_name = None
- self.cluster_ids = None
-
- @staticmethod
- def create_from_json(json_str):
- json_obj = json.loads(json_str)
- instance = TenantUnsubscribedEvent()
-
- instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
- instance.service_name = json_obj["serviceName"] if "serviceName" in json_obj else None
- instance.cluster_ids = json_obj["clusterIds"] if "clusterIds" in json_obj else None
-
- return instance
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/exception/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/exception/__init__.py b/tools/python-cartridge-agent/cartridge-agent/exception/__init__.py
deleted file mode 100644
index 7f59666..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/exception/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ['parameternotfoundexception']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/exception/parameternotfoundexception.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/exception/parameternotfoundexception.py b/tools/python-cartridge-agent/cartridge-agent/exception/parameternotfoundexception.py
deleted file mode 100644
index a9a776e..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/exception/parameternotfoundexception.py
+++ /dev/null
@@ -1,9 +0,0 @@
-class ParameterNotFoundException(Exception):
- __message = None
-
- def __init__(self, message):
- Exception.__init__(self, message)
- self.__message = message
-
- def get_message(self):
- return self.__message
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/extensionhandler.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/extensionhandler.py b/tools/python-cartridge-agent/cartridge-agent/extensionhandler.py
index 4a0d8f2..adf3dd6 100644
--- a/tools/python-cartridge-agent/cartridge-agent/extensionhandler.py
+++ b/tools/python-cartridge-agent/cartridge-agent/extensionhandler.py
@@ -1,44 +1,44 @@
-#!/usr/bin/env python
-import stomp
-import time
-import logging
-import sys
-import random
-import os
-import threading
-import socket
-import json
-from subprocess import Popen,PIPE
-
-
-def onArtifactUpdatedEvent(extenstionpath,scriptname):
- Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
- print Process.communicate() #now you should see your output
- # os.system()
-
-def onInstanceCleanupMemberEvent(extenstionpath,scriptname):
- Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
- print Process.communicate()
-
-def onInstanceCleanupClusterEvent(extenstionpath,scriptname):
- Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
- print Process.communicate()
-
-def startServerExtension():
- print('=================================startServerExtension')
-
-def onInstanceStartedEvent(extensionpath, scriptname, multitenant, copyartifactscriptname, apppath, envparams):
- print('=================================onInstanceStartedEvent')
- #if ismultitenant
- # execute copy artifact extension
-
- if multitenant == "true":
- Process = Popen([os.path.join(extensionpath, copyartifactscriptname), apppath + "/repository/deployment/server/", "/tmp/-1234/"], shell=True, stdin=PIPE, stderr=PIPE)
- print Process.communicate()
-
- #addPayloadParams()
- Process = Popen([os.path.join(extensionpath, scriptname), envparams], shell=True, stdin=PIPE, stderr=PIPE)
- print Process.communicate()
-
- #execute instance started extension with empty map
-
+# #!/usr/bin/env python
+# import stomp
+# import time
+# import logging
+# import sys
+# import random
+# import os
+# import threading
+# import socket
+# import json
+# from subprocess import Popen,PIPE
+#
+#
+# def onArtifactUpdatedEvent(extenstionpath,scriptname):
+# Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
+# print Process.communicate() #now you should see your output
+# # os.system()
+#
+# def onInstanceCleanupMemberEvent(extenstionpath,scriptname):
+# Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
+# print Process.communicate()
+#
+# def onInstanceCleanupClusterEvent(extenstionpath,scriptname):
+# Process=Popen([os.path.join(extenstionpath,scriptname),str('php')],shell=True,stdin=PIPE,stderr=PIPE)
+# print Process.communicate()
+#
+# def startServerExtension():
+# print('=================================startServerExtension')
+#
+# def onInstanceStartedEvent(extensionpath, scriptname, multitenant, copyartifactscriptname, apppath, envparams):
+# print('=================================onInstanceStartedEvent')
+# #if ismultitenant
+# # execute copy artifact extension
+#
+# if multitenant == "true":
+# Process = Popen([os.path.join(extensionpath, copyartifactscriptname), apppath + "/repository/deployment/server/", "/tmp/-1234/"], shell=True, stdin=PIPE, stderr=PIPE)
+# print Process.communicate()
+#
+# #addPayloadParams()
+# Process = Popen([os.path.join(extensionpath, scriptname), envparams], shell=True, stdin=PIPE, stderr=PIPE)
+# print Process.communicate()
+#
+# #execute instance started extension with empty map
+#
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/extensions/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/extensions/__init__.py b/tools/python-cartridge-agent/cartridge-agent/extensions/__init__.py
deleted file mode 100644
index 33da048..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/extensions/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__=['defaultextensionhandler']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/extensions/defaultextensionhandler.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/extensions/defaultextensionhandler.py b/tools/python-cartridge-agent/cartridge-agent/extensions/defaultextensionhandler.py
deleted file mode 100644
index 766dde0..0000000
--- a/tools/python-cartridge-agent/cartridge-agent/extensions/defaultextensionhandler.py
+++ /dev/null
@@ -1,148 +0,0 @@
-import logging
-
-from ..artifactmgt.git.agentgithandler import AgentGitHandler
-from ..artifactmgt.repositoryinformation import RepositoryInformation
-from ..config.cartridgeagentconfiguration import CartridgeAgentConfiguration
-from ..util import extensionutils, cartridgeagentconstants, cartridgeagentutils
-from ..publisher import cartridgeagentpublisher
-
-
-class DefaultExtensionHandler:
- log = None
- cartridge_agent_config = None
-
- def __init__(self):
- logging.basicConfig(level=logging.DEBUG)
- self.log = logging.getLogger(__name__)
-
- self.cartridge_agent_config = CartridgeAgentConfiguration()
-
- pass
-
- def on_instance_started_event(self):
- try:
- self.log.debug("Processing instance started event...")
- if self.cartridge_agent_config.is_multitenant():
- artifact_source = "%r/repository/deployment/server/" % self.cartridge_agent_config.get_app_path()
- artifact_dest = cartridgeagentconstants.SUPERTENANT_TEMP_PATH
- extensionutils.execute_copy_artifact_extension(artifact_source, artifact_dest)
-
- env_params = {}
- extensionutils.execute_instance_started_extention(env_params)
-
- except Exception:
- self.log.exception("Error processing instance started event")
-
- def on_instance_activated_event(self):
- extensionutils.execute_instance_activated_extension()
-
- def on_artifact_updated_event(self, event):
- self.log.info("Artifact update event received: [tenant] %r [cluster] %r [status] %r" %
- (event.tenant_id, event.cluster_id, event.status))
-
- cluster_id_event = str(event.cluster_id).strip()
- cluster_id_payload = self.cartridge_agent_config.get_cluster_id()
- repo_url = str(event.repo_url).strip()
-
- if (repo_url != "") and (cluster_id_payload is not None) and (cluster_id_payload == cluster_id_event):
- local_repo_path = self.cartridge_agent_config.get_app_path()
-
- secret = self.cartridge_agent_config.get_cartridge_key()
- repo_password = cartridgeagentutils.decrypt_password(event.repo_password, secret)
-
- repo_username = event.repo_username
- tenant_id = event.tenant_id
- is_multitenant = self.cartridge_agent_config.is_multitenant()
- commit_enabled = event.commit_enabled
-
- self.log.info("Executing git checkout")
-
- # create repo object
- repo_info = RepositoryInformation(repo_url, repo_username, repo_password, local_repo_path, tenant_id,
- is_multitenant, commit_enabled)
-
- #checkout code
- checkout_result = AgentGitHandler.checkout(repo_info)
- #execute artifact updated extension
- env_params = {"STRATOS_ARTIFACT_UPDATED_CLUSTER_ID": event.cluster_id,
- "STRATOS_ARTIFACT_UPDATED_TENANT_ID": event.tenant_id,
- "STRATOS_ARTIFACT_UPDATED_REPO_URL": event.repo_url,
- "STRATOS_ARTIFACT_UPDATED_REPO_PASSWORD": event.repo_password,
- "STRATOS_ARTIFACT_UPDATED_REPO_USERNAME": event.repo_username,
- "STRATOS_ARTIFACT_UPDATED_STATUS": event.status}
-
- extensionutils.execute_artifacts_updated_extension(env_params)
-
- #if !cloneExists publish instanceActivatedEvent
- if not checkout_result["cloned"]:
- #publish instanceActivated
- cartridgeagentpublisher.publish_instance_activated_event()
-
- #TODO: set artifact update task
-
- def on_artifact_update_scheduler_event(self, tenantId):
- pass
-
- def on_instance_cleanup_cluster_event(self, instanceCleanupClusterEvent):
- pass
-
- def onInstanceCleanupMemberEvent(self, instanceCleanupMemberEvent):
- pass
-
- def onMemberActivatedEvent(self, memberActivatedEvent):
- pass
-
- def onCompleteTopologyEvent(self, completeTopologyEvent):
- pass
-
- def onCompleteTenantEvent(self, completeTenantEvent):
- pass
-
- def onMemberTerminatedEvent(self, memberTerminatedEvent):
- pass
-
- def onMemberSuspendedEvent(self, memberSuspendedEvent):
- pass
-
- def onMemberStartedEvent(self, memberStartedEvent):
- pass
-
- def start_server_extension(self):
- raise NotImplementedError
- # extensionutils.wait_for_complete_topology()
- # self.log.info("[start server extension] complete topology event received")
- #
- # service_name_in_payload = self.cartridge_agent_config.get_service_name()
- # cluster_id_in_payload = self.cartridge_agent_config.get_cluster_id()
- # member_id_in_payload = self.cartridge_agent_config.get_member_id()
- #
- # try:
- # consistant = extensionutils.check_topology_consistency(service_name_in_payload, cluster_id_in_payload, member_id_in_payload)
- #
- # if not consistant:
- # self.log.error("Topology is inconsistent...failed to execute start server event")
- # return
- #
- #
- # except:
- # self.log.exception("Error processing start servers event")
- # finally:
- # pass
-
- def volume_mount_extension(self, persistence_mappings_payload):
- extensionutils.execute_volume_mount_extension(persistence_mappings_payload)
-
- def onSubscriptionDomainAddedEvent(self, subscriptionDomainAddedEvent):
- pass
-
- def onSubscriptionDomainRemovedEvent(self, subscriptionDomainRemovedEvent):
- pass
-
- def onCopyArtifactsExtension(self, src, des):
- pass
-
- def onTenantSubscribedEvent(self, tenantSubscribedEvent):
- pass
-
- def onTenantUnSubscribedEvent(self, tenantUnSubscribedEvent):
- pass
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/__init__.py
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/__init__.pyc
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/__init__.pyc b/tools/python-cartridge-agent/cartridge-agent/modules/__init__.pyc
new file mode 100644
index 0000000..c030e83
Binary files /dev/null and b/tools/python-cartridge-agent/cartridge-agent/modules/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/__init__.py
new file mode 100644
index 0000000..b1e49e4
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/__init__.py
@@ -0,0 +1 @@
+__all__=['repositoryinformation']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/__init__.py
new file mode 100644
index 0000000..372e725
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/__init__.py
@@ -0,0 +1 @@
+__all__=['agentgithandler', 'gitrepository']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/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
new file mode 100644
index 0000000..fff1ae8
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/agentgithandler.py
@@ -0,0 +1,148 @@
+import logging
+
+from git import *
+
+from gitrepository import GitRepositoryContext
+from ... config.cartridgeagentconfiguration import CartridgeAgentConfiguration
+from ... util import cartridgeagentutils
+
+
+class AgentGitHandler:
+ logging.basicConfig(level=logging.DEBUG)
+ log = logging.getLogger(__name__)
+
+ SUPER_TENANT_ID = -1234
+ SUPER_TENANT_REPO_PATH = "/repository/deployment/server/"
+ TENANT_REPO_PATH = "/repository/tenants/"
+
+ cartridge_agent_config = CartridgeAgentConfiguration()
+
+ __git_repositories = {}
+ # (tenant_id => gitrepository.GitRepository)
+
+ @staticmethod
+ def checkout(repo_info):
+ repo_context = AgentGitHandler.get_repo_context(repo_info.tenant_id)
+ if repo_context is not None:
+ #has been previously cloned, this is not the subscription run
+ cloned = True
+ #TODO: handle conflicts and errors using repo.git.pull(), status(), checkout() outputs
+ AgentGitHandler.log.debug("Existing git repository detected for tenant %r, no clone required" % repo_info.tenant_id)
+ AgentGitHandler.pull(repo_context)
+ else:
+ #subscribing run.. need to clone
+ cloned = False
+ repo_context = AgentGitHandler.create_git_repo_context(repo_info)
+ AgentGitHandler.clone(repo_context)
+
+ return {"cloned": cloned, "repo_context": repo_context}
+
+ @staticmethod
+ def pull(repo_context):
+ #create repo object
+ repo = Repo(repo_context.local_repo_path)
+ repo.remotes.origin.pull()
+
+ # TODO: handle conflict errors
+
+
+ @staticmethod
+ def clone(repo_context):
+ try:
+ repo = Repo.clone_from(repo_context.repo_url, repo_context.local_repo_path)
+ repo_context.cloned = True
+ AgentGitHandler.add_repo_context(repo_context)
+ AgentGitHandler.log.info("Git clone operation for tenant %r successful" % repo_context.tenant_id)
+ except GitCommandError as ex:
+ if "remote: Repository not found." in ex.message:
+ AgentGitHandler.log.exception("Accessing remote git repository failed for tenant %r" % repo_context.tenant_id)
+ #GitPython deletes the target folder if remote not found
+ cartridgeagentutils.create_dir(repo_context.local_repo_path)
+ else:
+ AgentGitHandler.log.exception("Git clone operation for tenant %r failed" % repo_context.tenant_id)
+
+ @staticmethod
+ def add_repo_context(repo_context):
+ AgentGitHandler.__git_repositories[repo_context.tenant_id] = repo_context
+
+ @staticmethod
+ def get_repo_context(tenant_id):
+ if tenant_id in AgentGitHandler.__git_repositories:
+ return AgentGitHandler.__git_repositories[tenant_id]
+
+ return None
+
+ @staticmethod
+ def remove_repo_context(tenant_id):
+ if tenant_id in AgentGitHandler.__git_repositories:
+ del AgentGitHandler.__git_repositories[tenant_id]
+
+ @staticmethod
+ def create_git_repo_context(repo_info):
+ repo_context = GitRepositoryContext()
+ repo_context.tenant_id = repo_info.tenant_id
+ repo_context.local_repo_path = AgentGitHandler.get_repo_path_for_tenant(
+ repo_info.tenant_id, repo_info.repo_path, repo_info.is_multitenant)
+ repo_context.repo_url = repo_info.repo_url
+ repo_context.repo_username = repo_info.repo_username
+ repo_context.repo_password = repo_info.repo_password
+
+ # TODO: push
+ # push not implemented
+ # if is_key_based_auth(repo_info.repo_url, tenant_id):
+ # repo.key_based_auth = True
+ # init_ssh_auth()
+ # else:
+ # repo.key_based_auth = False
+
+ repo_context.cloned = False
+
+ return repo_context
+
+ # @staticmethod
+ # def is_key_based_auth(repo_url, tenant_id):
+
+
+ @staticmethod
+ def get_repo_path_for_tenant(tenant_id, git_local_repo_path, is_multitenant):
+ repo_path = ""
+
+ if is_multitenant:
+ if tenant_id == AgentGitHandler.SUPER_TENANT_ID:
+ #super tenant, /repository/deploy/server/
+ super_tenant_repo_path = AgentGitHandler.cartridge_agent_config.get_super_tenant_repo_path()
+ #"app_path"
+ repo_path += git_local_repo_path
+
+ if super_tenant_repo_path is not None and super_tenant_repo_path != "":
+ super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.startswith("/") else "/" + super_tenant_repo_path
+ super_tenant_repo_path = super_tenant_repo_path if super_tenant_repo_path.endswith("/") else super_tenant_repo_path + "/"
+ #"app_path/repository/deploy/server/"
+ repo_path += super_tenant_repo_path
+ else:
+ #"app_path/repository/deploy/server/"
+ repo_path += AgentGitHandler.SUPER_TENANT_REPO_PATH
+
+ else:
+ #normal tenant, /repository/tenants/tenant_id
+ tenant_repo_path = AgentGitHandler.cartridge_agent_config.get_tenant_repo_path()
+ #"app_path"
+ repo_path += git_local_repo_path
+
+ if tenant_repo_path is not None and tenant_repo_path != "":
+ tenant_repo_path = tenant_repo_path if tenant_repo_path.startswith("/") else "/" + tenant_repo_path
+ tenant_repo_path = tenant_repo_path if tenant_repo_path.endswith("/") else tenant_repo_path + "/"
+ #"app_path/repository/tenants/244653444"
+ repo_path += tenant_repo_path + tenant_id
+ else:
+ #"app_path/repository/tenants/244653444"
+ repo_path += AgentGitHandler.TENANT_REPO_PATH + tenant_id
+
+ #tenant_dir_path = git_local_repo_path + AgentGitHandler.TENANT_REPO_PATH + tenant_id
+ cartridgeagentutils.create_dir(repo_path)
+ else:
+ #not multi tenant, app_path
+ repo_path = git_local_repo_path
+
+ AgentGitHandler.log.debug("Repo path returned : %r" % repo_path)
+ return repo_path
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/gitrepository.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/gitrepository.py b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/gitrepository.py
new file mode 100644
index 0000000..12ce591
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/git/gitrepository.py
@@ -0,0 +1,12 @@
+class GitRepositoryContext:
+
+ def __init__(self):
+ self.repo_url = None
+ self.local_repo_path = None
+ self.cloned = False
+ self.repo = None
+ self.tenant_id = None
+ self.key_based_auth = False
+ self.repo_username = None
+ self.repo_password = None
+ #scheduled update service
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/repositoryinformation.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/repositoryinformation.py b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/repositoryinformation.py
new file mode 100644
index 0000000..d30c319
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/artifactmgt/repositoryinformation.py
@@ -0,0 +1,13 @@
+class RepositoryInformation:
+ """
+ Holds repository information to be used in artifact management
+ """
+
+ def __init__(self, repo_url, repo_username, repo_password, repo_path, tenant_id, is_multitenant, commit_enabled):
+ self.repo_url = repo_url
+ self.repo_username = repo_username
+ self.repo_password = repo_password
+ self.repo_path = repo_path
+ self.tenant_id = tenant_id
+ self.is_multitenant = is_multitenant
+ self.commit_enabled = commit_enabled
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.py
new file mode 100644
index 0000000..836c3ab
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.py
@@ -0,0 +1 @@
+__all__=['cartridgeagentconfiguration']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.pyc
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.pyc b/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.pyc
new file mode 100644
index 0000000..7ca42b4
Binary files /dev/null and b/tools/python-cartridge-agent/cartridge-agent/modules/config/__init__.pyc differ
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/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
new file mode 100644
index 0000000..495d759
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
@@ -0,0 +1,298 @@
+import ConfigParser
+import logging
+
+from .. util import cartridgeagentconstants
+from .. exception.parameternotfoundexception import ParameterNotFoundException
+
+
+class CartridgeAgentConfiguration:
+ class __CartridgeAgentConfiguration:
+
+ def __init__(self):
+ # set log level
+ logging.basicConfig(level=logging.DEBUG)
+ self.log = logging.getLogger(__name__)
+
+ self.payload_params = {}
+ self.__read_conf_file()
+ self.__read_parameter_file()
+
+ try:
+ self.__service_group = self.payload_params[cartridgeagentconstants.SERVICE_GROUP] \
+ if cartridgeagentconstants.SERVICE_GROUP in self.payload_params \
+ else None
+
+ if cartridgeagentconstants.CLUSTERING in self.payload_params and \
+ str(self.payload_params[cartridgeagentconstants.CLUSTERING]).strip().lower() == "true":
+ self.__isClustered = True
+ else:
+ self.__isClustered = False
+ # self.__isClustered = self.payload_params[
+ # cartridgeagentconstants.CLUSTERING] if cartridgeagentconstants.CLUSTERING in self.payload_params else None
+
+ self.__service_name = self.read_property(cartridgeagentconstants.SERVICE_NAME)
+ self.__cluster_id = self.read_property(cartridgeagentconstants.CLUSTER_ID)
+ self.__network_partition_id = self.read_property(cartridgeagentconstants.NETWORK_PARTITION_ID)
+ self.__partitionId = self.read_property(cartridgeagentconstants.PARTITION_ID)
+ self.__memberId = self.read_property(cartridgeagentconstants.MEMBER_ID)
+ self.__cartridgeKey = self.read_property(cartridgeagentconstants.CARTRIDGE_KEY)
+ self.__appPath = self.read_property(cartridgeagentconstants.APP_PATH)
+ self.__repoUrl = self.read_property(cartridgeagentconstants.REPO_URL)
+ self.__ports = str(self.read_property(cartridgeagentconstants.PORTS)).split("|")
+
+ try:
+ self.__logFilePaths = str(self.read_property(cartridgeagentconstants.CLUSTER_ID)).strip().split("|")
+ except ParameterNotFoundException as ex:
+ self.log.debug("Cannot read log file path : %r" % ex.get_message())
+ self.__logFilePaths = None
+
+ is_multi_str = self.read_property(cartridgeagentconstants.CLUSTER_ID)
+ self.__isMultitenant = True if str(is_multi_str).lower().strip() == "true" else False
+
+ try:
+ self.__persistenceMappings = self.read_property("PERSISTENCE_MAPPING")
+ except ParameterNotFoundException as ex:
+ self.log.debug("Cannot read persistence mapping : %r" % ex.get_message())
+ self.__persistenceMappings = None
+
+ try:
+ is_commit_str = self.read_property(cartridgeagentconstants.COMMIT_ENABLED)
+ self.__isCommitsEnabled = True if str(is_commit_str).lower().strip() == "true" else False
+ except ParameterNotFoundException:
+ try:
+ is_commit_str = self.read_property(cartridgeagentconstants.AUTO_COMMIT)
+ self.__isCommitsEnabled = 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.__isCommitsEnabled = False
+
+ auto_checkout_str = self.read_property(cartridgeagentconstants.AUTO_CHECKOUT)
+ self.__isCheckoutEnabled = True if str(auto_checkout_str).lower().strip() == "true" else False
+
+ self.__listenAddress = self.read_property(cartridgeagentconstants.LISTEN_ADDRESS)
+
+ try:
+ int_repo_str = self.read_property(cartridgeagentconstants.PROVIDER)
+ self.__isInternalRepo = True if str(int_repo_str).strip().lower() == cartridgeagentconstants.INTERNAL else False
+ except ParameterNotFoundException:
+ self.log.info(" INTERNAL payload parameter is not found")
+ self.__isInternalRepo = False
+
+ self.__tenantId = self.read_property(cartridgeagentconstants.TENANT_ID)
+ self.__lbClusterId = self.read_property(cartridgeagentconstants.LB_CLUSTER_ID)
+ self.__minCount = self.read_property(cartridgeagentconstants.MIN_INSTANCE_COUNT)
+ self.__lbPrivateIp = self.read_property(cartridgeagentconstants.LB_PRIVATE_IP)
+ self.__lbPublicIp = self.read_property(cartridgeagentconstants.LB_PUBLIC_IP)
+ self.__tenantRepositoryPath = self.read_property(cartridgeagentconstants.TENANT_REPO_PATH)
+ self.__superTenantRepositoryPath = self.read_property(cartridgeagentconstants.SUPER_TENANT_REPO_PATH)
+
+ try:
+ self.__deployment = self.read_property(cartridgeagentconstants.DEPLOYMENT)
+ except ParameterNotFoundException:
+ self.__deployment = None
+
+ # Setting worker-manager setup - manager service name
+ if self.__deployment is None:
+ self.__managerServiceName = None
+
+ if str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower():
+ self.__managerServiceName = self.__service_name
+
+ elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower():
+ self.__deployment = self.read_property(cartridgeagentconstants.MANAGER_SERVICE_TYPE)
+
+ elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower():
+ self.__deployment = None
+ else:
+ self.__deployment = None
+
+ # Setting worker-manager setup - worker service name
+ if self.__deployment is None:
+ self.__workerServiceName = None
+
+ if str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_WORKER.lower():
+ self.__managerServiceName = self.__service_name
+
+ elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_MANAGER.lower():
+ self.__deployment = self.read_property(cartridgeagentconstants.WORKER_SERVICE_TYPE)
+
+ elif str(self.__deployment).lower() == cartridgeagentconstants.DEPLOYMENT_DEFAULT.lower():
+ self.__deployment = None
+ else:
+ self.__deployment = None
+
+ try:
+ self.__isPrimary = self.read_property(cartridgeagentconstants.CLUSTERING_PRIMARY_KEY)
+ except ParameterNotFoundException:
+ self.__isPrimary = None
+ except ParameterNotFoundException as ex:
+ raise RuntimeError(ex)
+
+ self.log.info("Cartridge agent configuration initialized")
+
+ self.log.debug("service-name: %r" % self.__service_name)
+ self.log.debug("cluster-id: %r" % self.__cluster_id)
+ self.log.debug("network-partition-id: %r" % self.__network_partition_id)
+ self.log.debug("partition-id: %r" % self.__partitionId)
+ self.log.debug("member-id: %r" % self.__memberId)
+ self.log.debug("cartridge-key: %r" % self.__cartridgeKey)
+ self.log.debug("app-path: %r" % self.__appPath)
+ self.log.debug("repo-url: %r" % self.__repoUrl)
+ self.log.debug("ports: %r" % str(self.__ports))
+ self.log.debug("lb-private-ip: %r" % self.__lbPrivateIp)
+ self.log.debug("lb-public-ip: %r" % self.__lbPublicIp)
+
+ def __read_conf_file(self):
+ """
+ Reads and stores the agent's configuration file
+ :return:
+ """
+
+ self.properties = ConfigParser.SafeConfigParser()
+ self.properties.read('agent.conf')
+
+ def __read_parameter_file(self):
+ """
+ Reads the payload file of the cartridge and stores the values in a dictionary
+ :return:
+ """
+
+ param_file = self.read_property(cartridgeagentconstants.PARAM_FILE_PATH)
+
+ try:
+ if param_file is not None:
+ metadata_file = open(param_file)
+ metadata_payload_content = metadata_file.read()
+ self.payload_params = dict(param.split("=") for param in metadata_payload_content.split(","))
+ metadata_file.close()
+ else:
+ self.log.error("File not found: %r" % param_file)
+ except:
+ self.log.error("Could not read launch parameter file, hence trying to read from System properties.")
+
+ def read_property(self, property_key):
+
+ if self.properties.has_option("agent", property_key):
+ temp_str = self.properties.get("agent", property_key)
+ if temp_str != "" and temp_str is not None:
+ return temp_str
+
+ if self.payload_params.has_key(property_key):
+ temp_str = self.payload_params[property_key]
+ if temp_str != "" and temp_str is not None:
+ return temp_str
+
+ raise ParameterNotFoundException("Cannot find the value of required parameter: %r" % property_key)
+
+ def get_service_name(self):
+ return self.__service_name
+
+ def get_cluster_id(self):
+ return self.__cluster_id
+
+ def get_network_partition_id(self):
+ return self.__network_partition_id
+
+ def get_partition_id(self):
+ return self.__partitionId
+
+ def get_member_id(self):
+ return self.__memberId
+
+ def get_cartridge_key(self):
+ return self.__cartridgeKey
+
+ def get_app_path(self):
+ return self.__appPath
+
+ def get_repo_url(self):
+ return self.__repoUrl
+
+ def get_ports(self):
+ return self.__ports
+
+ def get_log_file_paths(self):
+ return self.__logFilePaths
+
+ def is_multitenant(self):
+ return self.__isMultitenant
+
+ def get_persistance_mappings(self):
+ return self.__persistenceMappings
+
+ def is_commits_enabled(self):
+ return self.__isCommitsEnabled
+
+ def get_listen_address(self):
+ return self.__listenAddress
+
+ def is_internal_repo(self):
+ return self.__isInternalRepo
+
+ def get_tenant_id(self):
+ return self.__tenantId
+
+ def get_lb_cluster_id(self):
+ return self.__lbClusterId
+
+ def get_service_group(self):
+ return self.__service_group
+
+ def is_clustered(self):
+ return self.__isClustered
+
+ def get_min_count(self):
+ return self.__minCount
+
+ def is_primary(self):
+ return self.__isPrimary
+
+ def get_lb_public_ip(self):
+ return self.__lbPublicIp
+
+ def set_lb_public_ip(self, ip):
+ self.__lbPublicIp = ip
+
+ def get_lb_private(self):
+ return self.__lbPrivateIp
+
+ def set_lb_privateip(self, ip):
+ self.__lbPrivateIp = ip
+
+ def get_deployment(self):
+ return self.__deployment
+
+ def set_deployment(self, dep):
+ self.__deployment = dep
+
+ def get_manager_service_name(self):
+ return self.__managerServiceName
+
+ def set_manager_service_name(self, mgr):
+ self.__managerServiceName = mgr
+
+ def get_worker_service_name(self):
+ return self.__workerServiceName
+
+ def set_worker_service_name(self, wrkr):
+ self.__workerServiceName = wrkr
+
+ def get_super_tenant_repo_path(self):
+ return self.__superTenantRepositoryPath
+
+ def get_tenant_repo_path(self):
+ return self.__tenantRepositoryPath
+
+ def is_checkout_enabled(self):
+ return self.__isCheckoutEnabled
+
+ instance = None
+
+ def __init__(self):
+ if not CartridgeAgentConfiguration.instance:
+ CartridgeAgentConfiguration.instance = CartridgeAgentConfiguration.__CartridgeAgentConfiguration()
+
+ def __getattr__(self, item):
+ return getattr(self.instance, item)
+
+
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.pyc
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.pyc b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.pyc
new file mode 100644
index 0000000..180de3f
Binary files /dev/null and b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.pyc differ
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/__init__.py
new file mode 100644
index 0000000..0de6991
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/__init__.py
@@ -0,0 +1 @@
+__author__ = 'chamilad'
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/__init__.py
new file mode 100644
index 0000000..0de6991
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/__init__.py
@@ -0,0 +1 @@
+__author__ = 'chamilad'
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/__init__.py
new file mode 100644
index 0000000..3bcb310
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/__init__.py
@@ -0,0 +1 @@
+__all__ = ['events']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/events.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/events.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/events.py
new file mode 100644
index 0000000..5ab3e6c
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/notifier/events.py
@@ -0,0 +1,50 @@
+import json
+
+
+class ArtifactUpdatedEvent:
+ def __init__(self):
+ self.cluster_id = None
+ self.status = None
+ self.repo_username = None
+ self.repo_password = None
+ self.repo_url = None
+ self.tenant_id = None
+ self.commit_enabled = None
+
+ @staticmethod
+ def create_from_json(json_str):
+ json_obj = json.loads(json_str)
+ instance = ArtifactUpdatedEvent()
+
+ instance.cluster_id = json_obj["clusterId"] if "clusterId" in json_obj else None
+ instance.status = json_obj["status"] if "status" in json_obj else None
+ instance.repo_username = json_obj["repoUserName"] if "repoUserName" in json_obj else None
+ instance.repo_password = json_obj["repoPassword"] if "repoPassword" in json_obj else None
+ instance.tenant_id = json_obj["tenantId"] if "tenantId" in json_obj else None
+ instance.commit_enabled = json_obj["commitEnabled"] if "commitEnabled" in json_obj else None
+
+ return instance
+
+
+class InstanceCleanupClusterEvent:
+ def __init__(self, cluster_id):
+ self.cluster_id = cluster_id
+
+ @staticmethod
+ def create_from_json(json_str):
+ json_obj = json.loads(json_str)
+ c_id = json_obj["clusterId"] if "clusterId" in json_obj else None
+
+ return InstanceCleanupClusterEvent(c_id)
+
+
+class InstanceCleanupMemberEvent:
+ def __init__(self, member_id):
+ self.member_id = member_id
+
+ @staticmethod
+ def create_from_json(json_str):
+ json_obj = json.loads(json_str)
+ m_id = json_obj["memberId"] if "memberId" in json_obj else None
+
+ return InstanceCleanupMemberEvent(m_id)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/__init__.py
new file mode 100644
index 0000000..cd8b9d2
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/__init__.py
@@ -0,0 +1 @@
+__all__=['events']
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/events.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/events.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/events.py
new file mode 100644
index 0000000..878667c
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/instance/status/events.py
@@ -0,0 +1,25 @@
+import json
+
+
+class InstanceActivatedEvent:
+ def __init__(self, service_name, cluster_id, network_partition_id, parition_id, member_id):
+ self.serviceName = service_name
+ self.clusterId = cluster_id
+ self.networkPartitionId = network_partition_id
+ self.partitionId = parition_id
+ self.memberId = member_id
+
+ def to_json(self):
+ return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
+
+
+class InstanceStartedEvent:
+ def __init__(self, service_name, cluster_id, network_partition_id, parition_id, member_id):
+ self.serviceName = service_name
+ self.clusterId = cluster_id
+ self.networkPartitionId = network_partition_id
+ self.partitionId = parition_id
+ self.memberId = member_id
+
+ def to_json(self):
+ return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/ed08e2d3/tools/python-cartridge-agent/cartridge-agent/modules/event/tenant/__init__.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/event/tenant/__init__.py b/tools/python-cartridge-agent/cartridge-agent/modules/event/tenant/__init__.py
new file mode 100644
index 0000000..cd8b9d2
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/event/tenant/__init__.py
@@ -0,0 +1 @@
+__all__=['events']
\ No newline at end of file