You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/03/01 19:36:05 UTC

[44/50] [abbrv] stratos git commit: PCA - Metadata client related changes

PCA - Metadata client related changes


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

Branch: refs/heads/docker-grouping-merge
Commit: f9948c5e3f259fb3b25b5ec40740fdbaa14e4d8d
Parents: 08045d9
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Sun Mar 1 22:04:55 2015 +0530
Committer: Chamila de Alwis <ch...@wso2.com>
Committed: Sun Mar 1 23:54:57 2015 +0530

----------------------------------------------------------------------
 .../cartridge.agent/cartridge.agent/agent.conf  |   3 +-
 .../cartridge.agent/cartridge.agent/config.py   |   6 +-
 .../cartridge.agent/constants.py                |   3 +
 .../cartridge.agent/mdsclient.py                | 118 +++++++++++++++++++
 .../modules/artifactmgt/git/agentgithandler.py  |   5 +-
 .../modules/event/eventhandler.py               |   8 +-
 .../src/test/resources/agent.conf               |   1 +
 .../src/test/resources/payload/launch-params    |   2 +-
 .../src/test/resources/payload/launch-params2   |   1 +
 9 files changed, 140 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
index 1e1f764..51f5831 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
@@ -38,7 +38,8 @@ monitoring.server.secure.port         =MONITORING-SERVER-SECURE-PORT
 monitoring.server.admin.username      =MONITORING-SERVER-ADMIN-USERNAME
 monitoring.server.admin.password      =MONITORING-SERVER-ADMIN-PASSWORD
 log.file.paths                        =LOG_FILE_PATHS
-APPLICATION_PATH                      =APPLICATION_PATH
+APPLICATION_PATH                      =APPLICATION-PATH
+METADATA_SERVICE_URL                  =METADATA-SERVICE-URL
 super.tenant.repository.path          =/repository/deployment/server/
 tenant.repository.path                =/repository/tenants/
 extension.instance.started            =instance-started.sh

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
index 33d2fbb..1ad9499 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
@@ -296,7 +296,11 @@ class CartridgeAgentConfiguration:
                     for param in metadata_payload_content.split(","):
                         if param.strip() != "":
                             param_value = param.strip().split("=")
-                            self.__payload_params[param_value[0]] = param_value[1]
+                            try:
+                                self.__payload_params[param_value[0]] = param_value[1]
+                            except IndexError:
+                                # If an index error comes when reading values, keep on reading
+                                pass
 
                     # self.payload_params = dict(
                     #     param.split("=") for param in metadata_payload_content.split(","))

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
index 1427a2b..7331d7f 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
@@ -43,6 +43,8 @@ PERSISTENCE_MAPPING = "PERSISTENCE_MAPPING"
 DEPENDENCY_CLUSTER_IDS = "DEPENDENCY_CLUSTER_IDS"
 EXPORT_METADATA_KEYS = "EXPORT_METADATA_KEYS"
 IMPORT_METADATA_KEYS = "IMPORT_METADATA_KEYS"
+CARTRIDGE_ALIAS = "CARTRIDGE_ALIAS"
+TOKEN = "TOKEN"
 
 # stratos.sh environment variables keys
 LOG_FILE_PATHS = "LOG_FILE_PATHS"
@@ -62,6 +64,7 @@ PROVIDER = "PROVIDER"
 INTERNAL = "INTERNAL"
 LB_PRIVATE_IP = "lb.private.ip"
 LB_PUBLIC_IP = "lb.public.ip"
+METADATA_SERVICE_URL = "METADATA_SERVICE_URL"
 
 # stratos.sh extension points shell scripts names keys
 INSTANCE_STARTED_SCRIPT = "extension.instance.started"

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/mdsclient.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/mdsclient.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/mdsclient.py
new file mode 100644
index 0000000..f67eca0
--- /dev/null
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/mdsclient.py
@@ -0,0 +1,118 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import urllib2, urllib
+from urllib2 import URLError, HTTPError
+import json
+from modules.util.log import LogFactory
+from config import CartridgeAgentConfiguration
+import constants
+
+
+log = LogFactory().get_log(__name__)
+config = CartridgeAgentConfiguration()
+mds_url = config.read_property(constants.METADATA_SERVICE_URL)
+alias = config.read_property(constants.CARTRIDGE_ALIAS)
+app_id = config.read_property(constants.APPLICATION_ID)
+token = config.read_property(constants.TOKEN)
+alias_resource_url = mds_url + "/metadata/api/application/" + app_id + "/cluster/" + alias + "/properties"
+app_resource_url = mds_url + "/metadata/api/application/" + app_id + "/properties"
+
+
+def put(put_req, app=False):
+    """ Publish a set of key values to the metadata service
+    :param MDSPutRequest put_req:
+    :param
+    :return: the response string or None if exception
+    :rtype: str
+    """
+    # serialize put request object to json
+    request_data = json.dumps(put_req, default=lambda o: o.__dict__)
+    if app:
+        put_request = urllib2.Request(app_resource_url)
+    else:
+        put_request = urllib2.Request(alias_resource_url)
+
+    put_request.add_header("Authorization", "Bearer %s" % token)
+    put_request.add_header('Content-Type', 'application/json')
+
+    try:
+        log.debug("Publishing metadata to Metadata service. [URL] %s, [DATA] %s" % (put_request.get_full_url(), request_data))
+        handler = urllib2.urlopen(put_request, request_data)
+        log.debug("Metadata service response: %s" % handler.getcode())
+
+        return handler.read()
+    except HTTPError as e:
+        log.exception("Error while publishing to Metadata service. The server couldn\'t fulfill the request.: %s" % e)
+        return None
+    except URLError as e:
+        log.exception("Error while publishing to Metadata service. Couldn't reach server URL. : %s" % e)
+        return None
+
+
+def get(app=False):
+    """ Retrieves the key value pairs for the application ID from the metadata service
+    :param
+    :return : MDSResponse object with properties dictionary as key value pairs
+    :rtype: MDSResponse
+    """
+    try:
+        if app:
+            log.debug("Retrieving metadata from the Metadata service. [URL] %s" % app_resource_url)
+            req_response = urllib2.urlopen(app_resource_url)
+        else:
+            log.debug("Retrieving metadata from the Metadata service. [URL] %s" % alias_resource_url)
+            req_response = urllib2.urlopen(alias_resource_url)
+
+        get_response = json.loads(req_response.read())
+        properties = get_response["properties"]
+        log.debug("Retrieved values from Metadata service: %s" % properties)
+        response_obj = MDSResponse()
+
+        for md_property in properties:
+            response_obj.properties[md_property["key"]] = md_property["values"]
+
+        return response_obj
+    except HTTPError as e:
+        log.exception("Error while retrieving from Metadata service. The server couldn\'t fulfill the request.: %s" % e)
+        return None
+    except URLError as e:
+        log.exception("Error while retrieving from Metadata service. Couldn't reach server URL. : %s" % e)
+        return None
+
+
+def update(data):
+    raise NotImplementedError
+
+
+def delete(keys):
+    raise NotImplementedError
+
+
+class MDSPutRequest:
+    """ Class to encapsulate the publish request.
+    The properties member is a list of dictionaries with the format as follows.
+    {"key": key_name, "values": value}
+    """
+    properties = []
+
+
+class MDSResponse:
+    """ Class to encapsulate the response from the metadata service retrieval.
+    The properties member is a dictionary with the retrieved key value pairs.
+    """
+    properties = {}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
index a9164b0..5fad062 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
@@ -182,10 +182,11 @@ class AgentGitHandler:
 
     @staticmethod
     def clone(git_repo):
-        if os.path.isdir(git_repo.local_repo_path):
-            # delete and recreate local repo path if exists
+        if os.path.isdir(git_repo.local_repo_path) and os.listdir(git_repo.local_repo_path) != []:
+            # delete and recreate local repo path if not empty dir
             AgentGitHandler.log.debug("Local repository path not empty. Cleaning.")
             GitUtils.delete_folder_tree(git_repo.local_repo_path)
+            GitUtils.create_dir(git_repo.local_repo_path)
 
         try:
             Repo.clone_from(git_repo.repo_url, git_repo.local_repo_path)

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/event/eventhandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/event/eventhandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/event/eventhandler.py
index 079ebd2..e414ec7 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/event/eventhandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/event/eventhandler.py
@@ -113,7 +113,11 @@ class EventHandler:
             if plugins_for_event is not None:
                 for plugin_info in plugins_for_event:
                     self.__log.debug("Executing plugin %s for event %s" % (plugin_info.name, event))
-                    PluginExecutor(plugin_info, plugin_values).start()
+                    plugin_thread = PluginExecutor(plugin_info, plugin_values)
+                    plugin_thread.start()
+
+                    # block till plugin run completes.
+                    plugin_thread.join()
             else:
                 self.__log.debug("No plugins registered for event %s" % event)
         except Exception as e:
@@ -610,6 +614,6 @@ class PluginExecutor(Thread):
 
     def run(self):
         try:
-            self.__plugin_info.plugin_object.run_plugin(self.__values, self.__log)
+            self.__plugin_info.plugin_object.run_plugin(self.__values)
         except Exception as e:
             self.__log.exception("Error while executing plugin %s: %s" % (self.__plugin_info.name, e))

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/test/resources/agent.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/test/resources/agent.conf b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/agent.conf
index bb264ac..eeee06e 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/test/resources/agent.conf
+++ b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/agent.conf
@@ -38,6 +38,7 @@ monitoring.server.secure.port         =7711
 monitoring.server.admin.username      =admin
 monitoring.server.admin.password      =admin
 log.file.paths                        =
+METADATA_SERVICE_URL                  =https://localhost:9443
 super.tenant.repository.path          =/repository/deployment/server/
 tenant.repository.path                =/repository/tenants/
 extension.instance.started            =instance-started.sh

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params
index 858d622..a909a1e 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params
+++ b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params
@@ -1 +1 @@
-APPLICATION_ID=application1,SERVICE_NAME=php,HOST_NAME=php.php.stratos.org,MULTITENANT=false,TENANT_ID=-1234,TENANT_RANGE=*,CARTRIDGE_ALIAS=php,CLUSTER_ID=php.php.domain,CLUSTER_INSTANCE_ID=single-cartridge-app-1,CARTRIDGE_KEY=PUjpXCLujDhYr5A6,DEPLOYMENT=default,REPO_URL=https://github.com/imesh/stratos-php-applications.git,PORTS=9080,PUPPET_IP=127.0.0.1,PUPPET_HOSTNAME=puppet.apache.stratos.org,PUPPET_ENV=false,MEMBER_ID=php.member-1,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=network-p1,PARTITION_ID=p1,APPLICATION_PATH=/tmp/stratos-pca-test-app-path/,MIN_COUNT=1,INTERNAL=false,CLUSTERING_PRIMARY_KEY=A,LOG_FILE_PATHS=/tmp/temp.log,PERSISTENCE_MAPPING=null,MP_IP=192.168.1.4,MB_PORT=1883
\ No newline at end of file
+APPLICATION_ID=single_group_v1,APPLICATION_PATH=/tmp/tomcat/webapps,BASH=/bin/bash,BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath,BASH_ALIASES=(),BASH_ARGC=(),BASH_ARGV=(),BASH_CMDS=(),BASH_LINENO=([0]="0"),BASH_SOURCE=([0]="/usr/local/bin/populate-user-data.sh"),BASH_VERSINFO=([0]="4" [1]="3" [2]="30" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu"),BASH_VERSION='4.3.30(1)-release',CARTRIDGE_ALIAS=mytomcat,CARTRIDGE_KEY=6abTFgRg7oCkXWCt,CATALINA_HOME=/opt/tomcat,CEP_IP=54.179.197.243,CEP_PORT=7711,CLUSTER_ID=php.php.domain,CLUSTER_INSTANCE_ID=single_group_v1-1,DEPENDENCY_CLUSTER_IDS=myphp.php.domain,DEPLOYMENT=default,DIRSTACK=(),EUID=0,GROUPS=(),GROUP_NAME=null,HOME=/root,HOSTNAME=mytomcat-tomcat-domain3bd3cd47-b95d-475a-aa11-3e3ddc089d49,HOSTTYPE=x86_64,HOST_NAME=mytomcat.tomcat.stratos.org,IFS=' 	,',INSTANCE_ID=null,INTERNAL=false,JAVA_HOME=/opt/jdk1.7.0_67,KUBERNETES_CLUSTER_ID=kubernetes-cluster-1,KUB
 ERNETES_PORT=tcp://10.100.0.2:443,KUBERNETES_PORT_443_TCP=tcp://10.100.0.2:443,KUBERNETES_PORT_443_TCP_ADDR=10.100.0.2,KUBERNETES_PORT_443_TCP_PORT=443,KUBERNETES_PORT_443_TCP_PROTO=tcp,KUBERNETES_RO_PORT=tcp://10.100.0.1:80,KUBERNETES_RO_PORT_80_TCP=tcp://10.100.0.1:80,KUBERNETES_RO_PORT_80_TCP_ADDR=10.100.0.1,KUBERNETES_RO_PORT_80_TCP_PORT=80,KUBERNETES_RO_PORT_80_TCP_PROTO=tcp,KUBERNETES_RO_SERVICE_HOST=10.100.0.1,KUBERNETES_RO_SERVICE_PORT=80,KUBERNETES_SERVICE_HOST=10.100.0.2,KUBERNETES_SERVICE_PORT=443,LB_CLUSTER_ID=null,LOG_LEVEL=DEBUG,MACHTYPE=x86_64-pc-linux-gnu,MB_IP=54.179.197.243,MB_PORT=1883,MEMBER_ID=php.member-1,METADATA_SERVICE_URL=https://54.179.197.243:9443,MIN_COUNT=1,MULTITENANT=false,MYPHP_PHP_DOMAIN_1_PORT=tcp://10.100.171.218:4500,MYPHP_PHP_DOMAIN_1_PORT_4500_TCP=tcp://10.100.171.218:4500,MYPHP_PHP_DOMAIN_1_PORT_4500_TCP_ADDR=10.100.171.218,MYPHP_PHP_DOMAIN_1_PORT_4500_TCP_PORT=4500,MYPHP_PHP_DOMAIN_1_PORT_4500_TCP_PROTO=tcp,MYPHP_PHP_DOMAIN_1_SERVICE_HOST=10.
 100.171.218,MYPHP_PHP_DOMAIN_1_SERVICE_PORT=4500,MYTOMCAT_TOMCAT_DOMAIN_1_PORT=tcp://10.100.16.250:4500,MYTOMCAT_TOMCAT_DOMAIN_1_PORT_4500_TCP=tcp://10.100.16.250:4500,MYTOMCAT_TOMCAT_DOMAIN_1_PORT_4500_TCP_ADDR=10.100.16.250,MYTOMCAT_TOMCAT_DOMAIN_1_PORT_4500_TCP_PORT=4500,MYTOMCAT_TOMCAT_DOMAIN_1_PORT_4500_TCP_PROTO=tcp,MYTOMCAT_TOMCAT_DOMAIN_1_SERVICE_HOST=10.100.16.250,MYTOMCAT_TOMCAT_DOMAIN_1_SERVICE_PORT=4500,NETWORK_PARTITION_ID=network-partition-1,OPTERR=1,OPTIND=1,OSTYPE=linux-gnu,PARTITION_ID=partition-1,PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,PIPESTATUS=([0]="0"),PORTS=8080,POSIXLY_CORRECT=y,PPID=14,PRIMARY=false,PROVIDER=apache,PS4='+ ',PUPPET_DNS_AVAILABLE=null,PUPPET_ENV=false,PUPPET_HOSTNAME=puppet.apache.stratos.org,PUPPET_IP=127.0.0.1,PWD=/opt,REPO_URL=https://github.com/imesh/stratos-tomcat-applications.git,SERVICE_NAME=php,SHELL=/bin/bash,SHELLOPTS=braceexpand:hashall:interactive-comments:posix,SHLVL=2,TENANT_ID=-1234,TENANT_RANGE='*',TER
 M=dumb,TOKEN=eyJhbGciOiJSUzI1NiJ9.eyJleHAiOi04NzI0ODEyNDEsInN1YiI6ImFkbWluIiwiYXpwIjoid3I5SllVaDNtTXd6bVhHVllqWmVIWnhCV2xFYSIsImFwcElkIjoic2luZ2xlX2dyb3VwX3YxIiwiYXVkIjpbIndyOUpZVWgzbU13em1YR1ZZalplSFp4QldsRWEiXSwiaXNzIjoiaHR0cHM6XC9cL2xvY2FsaG9zdDo5NDQzXC9vYXV0aDJlbmRwb2ludHNcL3Rva2VuIiwiaWF0IjotODcyNDgwMjQwfQ.OSa1gIXUT9amhk1YEU02Yc3JtUYqanzrXh5K1YyvRXcpSiY2Ccn2BfJO0hILF5UooRcGBihzfX3979NRcvGwcUDUvOUJ0eaGPmxFZYbu0nr3xD8lhAO3fa1QYsKAvMnMdwyu2uSgSp6R6EUdVleiwlabUoDsuEcKGkIAn_VQvG0,UID=0,_=posix
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/f9948c5e/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params2
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params2 b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params2
new file mode 100644
index 0000000..858d622
--- /dev/null
+++ b/components/org.apache.stratos.python.cartridge.agent/src/test/resources/payload/launch-params2
@@ -0,0 +1 @@
+APPLICATION_ID=application1,SERVICE_NAME=php,HOST_NAME=php.php.stratos.org,MULTITENANT=false,TENANT_ID=-1234,TENANT_RANGE=*,CARTRIDGE_ALIAS=php,CLUSTER_ID=php.php.domain,CLUSTER_INSTANCE_ID=single-cartridge-app-1,CARTRIDGE_KEY=PUjpXCLujDhYr5A6,DEPLOYMENT=default,REPO_URL=https://github.com/imesh/stratos-php-applications.git,PORTS=9080,PUPPET_IP=127.0.0.1,PUPPET_HOSTNAME=puppet.apache.stratos.org,PUPPET_ENV=false,MEMBER_ID=php.member-1,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=network-p1,PARTITION_ID=p1,APPLICATION_PATH=/tmp/stratos-pca-test-app-path/,MIN_COUNT=1,INTERNAL=false,CLUSTERING_PRIMARY_KEY=A,LOG_FILE_PATHS=/tmp/temp.log,PERSISTENCE_MAPPING=null,MP_IP=192.168.1.4,MB_PORT=1883
\ No newline at end of file