http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
new file mode 100644
index 0000000..15871ba
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
@@ -0,0 +1,346 @@
+# 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 ConfigParser
+import os
+import socket
+
+from ..util.log import LogFactory
+
+
+class CartridgeAgentConfiguration:
+    """
+    Handles the configuration information of the particular Cartridge Agent
+    """
+    class __CartridgeAgentConfiguration:
+        def __init__(self):
+            # set log level
+            self.log = LogFactory().get_log(__name__)
+
+            self.payload_params = {}
+            self.properties = None
+
+            self.service_group = None
+            """ :type : str  """
+            self.is_clustered = False
+            """ :type : bool  """
+            self.service_name = None
+            """ :type : str  """
+            self.cluster_id = None
+            """ :type : str  """
+            self.network_partition_id = None
+            """ :type : str  """
+            self.partition_id = None
+            """ :type : str  """
+            self.member_id = None
+            """ :type : str  """
+            self.cartridge_key = None
+            """ :type : str  """
+            self.app_path = None
+            """ :type : str  """
+            self.repo_url = None
+            """ :type : str  """
+            self.ports = []
+            """ :type : list[str]  """
+            self.log_file_paths = []
+            """ :type : list[str]  """
+            self.is_multitenant = False
+            """ :type : bool  """
+            self.persistence_mappings = None
+            """ :type : str  """
+            self.is_commits_enabled = False
+            """ :type : bool  """
+            self.is_checkout_enabled = False
+            """ :type : bool  """
+            self.listen_address = None
+            """ :type : str  """
+            self.is_internal_repo = False
+            """ :type : bool  """
+            self.tenant_id = None
+            """ :type : str  """
+            self.lb_cluster_id = None
+            """ :type : str  """
+            self.min_count = None
+            """ :type : str  """
+            self.lb_private_ip = None
+            """ :type : str  """
+            self.lb_public_ip = None
+            """ :type : str  """
+            self.tenant_repository_path = None
+            """ :type : str  """
+            self.super_tenant_repository_path = None
+            """ :type : str  """
+            self.deployment = None
+            """ :type : str  """
+            self.manager_service_name = None
+            """ :type : str  """
+            self.worker_service_name = None
+            """ :type : str  """
+            self.is_primary = False
+            """ :type : bool  """
+
+            self.payload_params = {}
+            self.__read_conf_file()
+            self.__read_parameter_file()
+
+            self.initialized = False
+            """ :type : bool """
+
+            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.is_clustered = True
+                else:
+                    self.is_clustered = 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, False)
+                self.partition_id = 
self.read_property(cartridgeagentconstants.PARTITION_ID, False)
+                self.member_id = 
self.get_member_id(cartridgeagentconstants.MEMBER_ID)
+                self.cartridge_key = 
self.read_property(cartridgeagentconstants.CARTRIDGE_KEY)
+                self.app_path = 
self.read_property(cartridgeagentconstants.APP_PATH, False)
+                self.repo_url = 
self.read_property(cartridgeagentconstants.REPO_URL, False)
+                self.ports = 
str(self.read_property(cartridgeagentconstants.PORTS)).split("|")
+
+                try:
+                    self.log_file_paths = str(
+                        
self.read_property(cartridgeagentconstants.LOG_FILE_PATHS)).strip().split("|")
+                except ParameterNotFoundException as ex:
+                    self.log.debug("Cannot read log file path : %r" % 
ex.get_message())
+                    self.log_file_paths = None
+
+                is_multi_str = 
self.read_property(cartridgeagentconstants.MULTITENANT)
+                self.is_multitenant = True if 
str(is_multi_str).lower().strip() == "true" else False
+
+                try:
+                    self.persistence_mappings = self.read_property(
+                        cartridgeagentconstants.PERSISTENCE_MAPPING)
+                except ParameterNotFoundException as ex:
+                    self.log.debug("Cannot read persistence mapping : %r" % 
ex.get_message())
+                    self.persistence_mappings = None
+
+                try:
+                    is_commit_str = 
self.read_property(cartridgeagentconstants.COMMIT_ENABLED)
+                    self.is_commits_enabled = True if 
str(is_commit_str).lower().strip() == "true" else False
+                except ParameterNotFoundException:
+                    try:
+                        is_commit_str = 
self.read_property(cartridgeagentconstants.AUTO_COMMIT)
+                        self.is_commits_enabled = True if 
str(is_commit_str).lower().strip() == "true" else False
+                    except ParameterNotFoundException:
+                        self.log.info(
+                            "%r is not found and setting it to false" % 
cartridgeagentconstants.COMMIT_ENABLED)
+                        self.is_commits_enabled = False
+
+                auto_checkout_str = 
self.read_property(cartridgeagentconstants.AUTO_CHECKOUT, False)
+                self.is_checkout_enabled = True if 
str(auto_checkout_str).lower().strip() == "true" else False
+
+                self.listen_address = self.read_property(
+                    cartridgeagentconstants.LISTEN_ADDRESS, False)
+
+                try:
+                    int_repo_str = 
self.read_property(cartridgeagentconstants.PROVIDER)
+                    self.is_internal_repo = True if 
str(int_repo_str).strip().lower() == cartridgeagentconstants.INTERNAL else False
+                except ParameterNotFoundException:
+                    self.log.info(" INTERNAL payload parameter is not found")
+                    self.is_internal_repo = False
+
+                self.tenant_id = 
self.read_property(cartridgeagentconstants.TENANT_ID)
+                self.lb_cluster_id = 
self.read_property(cartridgeagentconstants.LB_CLUSTER_ID, False)
+                self.min_count = 
self.read_property(cartridgeagentconstants.MIN_INSTANCE_COUNT, False)
+                self.lb_private_ip = 
self.read_property(cartridgeagentconstants.LB_PRIVATE_IP, False)
+                self.lb_public_ip = 
self.read_property(cartridgeagentconstants.LB_PUBLIC_IP, False)
+                self.tenant_repository_path = 
self.read_property(cartridgeagentconstants.TENANT_REPO_PATH, False)
+                self.super_tenant_repository_path = 
self.read_property(cartridgeagentconstants.SUPER_TENANT_REPO_PATH, False)
+
+                try:
+                    self.deployment = self.read_property(
+                        cartridgeagentconstants.DEPLOYMENT)
+                except ParameterNotFoundException:
+                    self.deployment = None
+
+                # Setting worker-manager setup - manager service name
+                if self.deployment is None:
+                    self.manager_service_name = None
+
+                if str(self.deployment).lower() == 
cartridgeagentconstants.DEPLOYMENT_MANAGER.lower():
+                    self.manager_service_name = 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.worker_service_name = None
+
+                if str(self.deployment).lower() == 
cartridgeagentconstants.DEPLOYMENT_WORKER.lower():
+                    self.manager_service_name = 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.is_primary = self.read_property(
+                        cartridgeagentconstants.CLUSTERING_PRIMARY_KEY)
+                except ParameterNotFoundException:
+                    self.is_primary = 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.partition_id)
+            self.log.debug("member-id: %r" % self.member_id)
+            self.log.debug("cartridge-key: %r" % self.cartridge_key)
+            self.log.debug("app-path: %r" % self.app_path)
+            self.log.debug("repo-url: %r" % self.repo_url)
+            self.log.debug("ports: %r" % str(self.ports))
+            self.log.debug("lb-private-ip: %r" % self.lb_private_ip)
+            self.log.debug("lb-public-ip: %r" % self.lb_public_ip)
+
+        def get_member_id(self, member_id_field):
+            """
+            Reads the member id from the payload file or configuration file. 
If neither of
+            these sources contain the member id, the hostname is assigned to 
it and returned.
+            :param str member_id_field: the key of the member id to lookup
+            :return: The member id
+            :rtype : str
+            """
+            try:
+                member_id = self.read_property(member_id_field)
+            except ParameterNotFoundException:
+                try:
+                    self.log.info("Reading hostname from container")
+                    member_id = socket.gethostname()
+                except:
+                    self.log.exception("Hostname can not be resolved")
+                    member_id = "unknown"
+
+            self.log.debug("MemberId  is taking the value of hostname : [" + 
member_id + "] ")
+            return member_id
+
+        def __read_conf_file(self):
+            """
+            Reads and stores the agent's configuration file
+            :return: void
+            """
+
+            conf_file_path = 
os.path.abspath(os.path.dirname(__file__)).split("modules")[0] + "agent.conf"
+            self.log.debug("Config file path : %r" % conf_file_path)
+            self.properties = ConfigParser.SafeConfigParser()
+            self.properties.read(conf_file_path)
+
+        def __read_parameter_file(self):
+            """
+            Reads the payload file of the cartridge and stores the values in a 
dictionary
+            :return: void
+            """
+
+            param_file = 
self.read_property(cartridgeagentconstants.PARAM_FILE_PATH, False)
+            self.log.debug("Param file path : %r" % param_file)
+
+            try:
+                if param_file is not None:
+                    metadata_file = open(param_file)
+                    metadata_payload_content = metadata_file.read()
+                    for param in metadata_payload_content.split(","):
+                        if param.strip() != "":
+                            param_value = param.strip().split("=")
+                            self.payload_params[param_value[0]] = 
param_value[1]
+
+                    # 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.exception(
+                    "Could not read launch parameter file, hence trying to 
read from System properties.")
+
+        def read_property(self, property_key, critical=True):
+            """
+            Returns the value of the provided property
+            :param str property_key: the name of the property to be read
+            :return: Value of the property,
+            :rtype: str
+            :exception: ParameterNotFoundException if the provided property 
cannot be found
+            """
+
+            if self.properties.has_option("agent", property_key):
+                self.log.debug("Has key: %r" % property_key)
+                temp_str = self.properties.get("agent", property_key)
+                if temp_str != "" and temp_str is not None:
+                    if str(temp_str).strip().lower() == "null":
+                        return ""
+                    else:
+                        return str(temp_str).strip()
+
+            if property_key in self.payload_params:
+                temp_str = self.payload_params[property_key]
+                if temp_str != "" and temp_str is not None:
+                    if str(temp_str).strip().lower() == "null":
+                        return ""
+                    else:
+                        return str(temp_str).strip()
+
+            if critical:
+                raise ParameterNotFoundException("Cannot find the value of 
required parameter: %r" % property_key)
+
+    instance = None
+    """ :type : __CartridgeAgentConfiguration"""
+
+    # def __new__(cls, *args, **kwargs):
+    #     if not CartridgeAgentConfiguration.instance:
+    #         CartridgeAgentConfiguration.instance = 
CartridgeAgentConfiguration.__CartridgeAgentConfiguration()
+    #
+    #     return CartridgeAgentConfiguration.instance
+
+    def __init__(self):
+        if not CartridgeAgentConfiguration.instance:
+            CartridgeAgentConfiguration.instance = 
CartridgeAgentConfiguration.__CartridgeAgentConfiguration()
+
+    def __getattr__(self, name):
+        return getattr(self.instance, name)
+
+    def __setattr__(self, name, value):
+        return setattr(self.instance, name, value)
+
+
+from ..exception.parameternotfoundexception import ParameterNotFoundException
+from ..util import cartridgeagentconstants

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/__init__.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/__init__.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/__init__.py
new file mode 100644
index 0000000..2456923
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/__init__.py
@@ -0,0 +1,17 @@
+# 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.
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/agent.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/agent.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/agent.py
new file mode 100644
index 0000000..96762f2
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/agent.py
@@ -0,0 +1,225 @@
+# 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.
+
+from thrift.publisher import *
+from thrift.gen.Exception.ttypes import ThriftSessionExpiredException
+from ..util.log import *
+import time
+
+
+class StreamDefinition:
+    """
+    Represents a BAM/CEP stream definition
+    """
+
+    STRING = 'STRING'
+    DOUBLE = 'DOUBLE'
+    INT = 'INT'
+    LONG = 'LONG'
+    BOOL = 'BOOL'
+
+    def __init__(self):
+        self.name = None
+        """:type : str"""
+        self.version = None
+        """:type : str"""
+        self.nickname = None
+        """:type : str"""
+        self.description = None
+        """:type : str"""
+        self.meta_data = []
+        """:type : list[str]"""
+        self.correlation_data = []
+        """:type : list[str]"""
+        self.payload_data = []
+        """:type : list[str]"""
+        self.stream_id =  None
+        """ :type : str """
+
+    def add_metadata_attribute(self, attr_name, attr_type):
+        self.meta_data.append({"name": attr_name, "type": attr_type})
+
+    def add_payloaddata_attribute(self, attr_name, attr_type):
+        self.payload_data.append({"name": attr_name, "type": attr_type})
+
+    def add_correlationdata_attribute(self, attr_name, attr_type):
+        self.correlation_data.append({"name": attr_name, "type": attr_type})
+
+    def __str__(self):
+        """
+        To string override
+        """
+
+        json_str = "{"
+        json_str += "\"name\":\"" + self.name + "\","
+        json_str += "\"version\":\"" + self.version + "\","
+        json_str += "\"nickName\":\"" + self.nickname + "\","
+        json_str += "\"description\":\"" + self.description + "\","
+
+        # add metadata attributes if exists
+        if len(self.meta_data) > 0:
+            json_str += "\"metaData\":["
+            for metadatum in self.meta_data:
+                json_str += "{\"name\":\"" + metadatum["name"] + "\", 
\"type\": \"" + metadatum["type"] + "\"},"
+
+            json_str = json_str[:-1] + "],"
+
+        # add correlationdata attributes if exists
+        if len(self.correlation_data) > 0:
+            json_str += "\"correlationData\":["
+            for coredatum in self.correlation_data:
+                json_str += "{\"name\":\"" + coredatum["name"] + "\", 
\"type\": \"" + coredatum["type"] + "\"},"
+
+            json_str = json_str[:-1] + "],"
+
+        # add payloaddata attributes if exists
+        if len(self.payload_data) > 0:
+            json_str += "\"payloadData\":["
+            for payloaddatum in self.payload_data:
+                json_str += "{\"name\":\"" + payloaddatum["name"] + "\", 
\"type\": \"" + payloaddatum["type"] + "\"},"
+
+            json_str = json_str[:-1] + "],"
+
+        json_str = json_str[:-1] + "}"
+
+        return json_str
+
+
+class ThriftEvent:
+    """
+    Represents an event to be published to a BAM/CEP monitoring server
+    """
+    def __init__(self):
+        self.metaData = []
+        """:type : list[str]"""
+        self.correlationData = []
+        """:type : list[str]"""
+        self.payloadData = []
+        """:type : list[str]"""
+
+
+class ThriftPublisher:
+    """
+    Handles publishing events to BAM/CEP through thrift using the provided 
address and credentials
+    """
+    log = LogFactory().get_log(__name__)
+
+    def __init__(self, ip, port, username, password, stream_definition):
+        """
+        Initializes a ThriftPublisher object.
+
+        At initialization a ThriftPublisher connects and defines a stream 
definition. A connection
+        should be disconnected after all the publishing has been done.
+
+        :param str ip: IP address of the monitoring server
+        :param str port: Port of the monitoring server
+        :param str username: Username
+        :param str password: Password
+        :param StreamDefinition stream_definition: StreamDefinition object for 
this particular connection
+        :return: ThriftPublisher object
+        :rtype: ThriftPublisher
+        """
+        try:
+            port_number = int(port)
+        except ValueError:
+            raise RuntimeError("Port number for Thrift Publisher is invalid: 
%r" % port)
+
+        self.__publisher = Publisher(ip, port_number)
+        self.__publisher.connect(username, password)
+        self.__publisher.defineStream(str(stream_definition))
+
+        self.stream_definition = stream_definition
+        self.stream_id = self.__publisher.streamId
+        self.ip = ip
+        self.port = port
+        self.username = username
+        self.password = password
+
+    def publish(self, event):
+        """
+        Publishes the given event by creating the event bundle from the log 
event
+
+        :param ThriftEvent event: The log event to be published
+        :return: void
+        """
+
+        event_bundle = self.create_event_bundle(event)
+
+        try:
+            self.__publisher.publish(event_bundle)
+        except ThriftSessionExpiredException as ex:
+            self.log.debug("ThriftSession expired. Reconnecting")
+            self.__publisher.connect(self.username, self.password)
+            self.log.debug("connected! stream ID: %r" % self.stream_id)
+
+            self.publish(event)
+
+        self.log.debug("Published event to thrift stream [%r]" % 
self.stream_id)
+
+    def create_event_bundle(self, event):
+        """
+        Creates an EventBundle object to be published to the Thrift stream
+
+        :param ThriftEvent event:
+        :return: EventBundle event bundle object
+        """
+
+        event_bundle = EventBundle()
+        event_bundle.addStringAttribute(self.stream_id)
+        event_bundle.addLongAttribute(time.time() * 1000)
+        ThriftPublisher.assign_attributes(event.metaData, event_bundle)
+        ThriftPublisher.assign_attributes(event.correlationData, event_bundle)
+        ThriftPublisher.assign_attributes(event.payloadData, event_bundle)
+
+        return event_bundle
+
+    def disconnect(self):
+        """
+        Disconnect the thrift publisher
+        :return: void
+        """
+        self.__publisher.disconnect()
+
+    @staticmethod
+    def assign_attributes(attributes, event_bundler):
+        """
+        Adds the given attributes to the given event bundler according to type 
of each attribute
+        :param list attributes: attributes to be assigned
+        :param EventBundle event_bundler: Event bundle to assign attributes to
+        :return: void
+        """
+
+        # __intAttributeList = []
+        # __longAttributeList = []
+        # __doubleAttributeList = []
+        # __boolAttributeList = []
+        # __stringAttributeList = []
+
+        if attributes is not None and len(attributes) > 0:
+            for attrib in attributes:
+                if isinstance(attrib, int):
+                    event_bundler.addIntAttribute(attrib)
+                elif isinstance(attrib, long):
+                    event_bundler.addLongAttribute(attrib)
+                elif isinstance(attrib, float):
+                    event_bundler.addDoubleAttribute(attrib)
+                elif isinstance(attrib, bool):
+                    event_bundler.addBoolAttribute(attrib)
+                elif isinstance(attrib, str):
+                    event_bundler.addStringAttribute(attrib)
+                else:
+                    ThriftPublisher.log.error("Undefined attribute type: %r" % 
attrib)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/__init__.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/__init__.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/__init__.py
new file mode 100644
index 0000000..2456923
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/__init__.py
@@ -0,0 +1,17 @@
+# 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.
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/__init__.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/__init__.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/constants.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/constants.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/constants.py
new file mode 100644
index 0000000..36943ba
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/constants.py
@@ -0,0 +1,8 @@
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/ttypes.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/ttypes.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/ttypes.py
new file mode 100644
index 0000000..d76afca
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Data/ttypes.py
@@ -0,0 +1,320 @@
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from ...thrift.Thrift import TType, TMessageType, TException, 
TApplicationException
+
+from ...thrift.transport import TTransport
+from ...thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from ...thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class ThriftAttributeType:
+  INT = 0
+  LONG = 1
+  FLOAT = 2
+  DOUBLE = 3
+  BOOL = 4
+  STRING = 5
+
+  _VALUES_TO_NAMES = {
+    0: "INT",
+    1: "LONG",
+    2: "FLOAT",
+    3: "DOUBLE",
+    4: "BOOL",
+    5: "STRING",
+  }
+
+  _NAMES_TO_VALUES = {
+    "INT": 0,
+    "LONG": 1,
+    "FLOAT": 2,
+    "DOUBLE": 3,
+    "BOOL": 4,
+    "STRING": 5,
+  }
+
+
+class ThriftAttribute:
+  """
+  Attributes:
+   - name
+   - attributeType
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'name', None, None, ), # 1
+    (2, TType.I32, 'attributeType', None, None, ), # 2
+  )
+
+  def __init__(self, name=None, attributeType=None,):
+    self.name = name
+    self.attributeType = attributeType
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.name = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.I32:
+          self.attributeType = iprot.readI32();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftAttribute')
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 1)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.attributeType is not None:
+      oprot.writeFieldBegin('attributeType', TType.I32, 2)
+      oprot.writeI32(self.attributeType)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftEventBundle:
+  """
+  Attributes:
+   - sessionId
+   - eventNum
+   - intAttributeList
+   - longAttributeList
+   - doubleAttributeList
+   - boolAttributeList
+   - stringAttributeList
+   - arbitraryDataMapMap
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'sessionId', None, None, ), # 1
+    (2, TType.I32, 'eventNum', None, None, ), # 2
+    (3, TType.LIST, 'intAttributeList', (TType.I32,None), None, ), # 3
+    (4, TType.LIST, 'longAttributeList', (TType.I64,None), None, ), # 4
+    (5, TType.LIST, 'doubleAttributeList', (TType.DOUBLE,None), None, ), # 5
+    (6, TType.LIST, 'boolAttributeList', (TType.BOOL,None), None, ), # 6
+    (7, TType.LIST, 'stringAttributeList', (TType.STRING,None), None, ), # 7
+    (8, TType.MAP, 'arbitraryDataMapMap', 
(TType.I32,None,TType.MAP,(TType.STRING,None,TType.STRING,None)), None, ), # 8
+  )
+
+  def __init__(self, sessionId=None, eventNum=None, intAttributeList=None, 
longAttributeList=None, doubleAttributeList=None, boolAttributeList=None, 
stringAttributeList=None, arbitraryDataMapMap=None,):
+    self.sessionId = sessionId
+    self.eventNum = eventNum
+    self.intAttributeList = intAttributeList
+    self.longAttributeList = longAttributeList
+    self.doubleAttributeList = doubleAttributeList
+    self.boolAttributeList = boolAttributeList
+    self.stringAttributeList = stringAttributeList
+    self.arbitraryDataMapMap = arbitraryDataMapMap
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.sessionId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.I32:
+          self.eventNum = iprot.readI32();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.LIST:
+          self.intAttributeList = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = iprot.readI32();
+            self.intAttributeList.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.longAttributeList = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = iprot.readI64();
+            self.longAttributeList.append(_elem11)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.LIST:
+          self.doubleAttributeList = []
+          (_etype15, _size12) = iprot.readListBegin()
+          for _i16 in xrange(_size12):
+            _elem17 = iprot.readDouble();
+            self.doubleAttributeList.append(_elem17)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.LIST:
+          self.boolAttributeList = []
+          (_etype21, _size18) = iprot.readListBegin()
+          for _i22 in xrange(_size18):
+            _elem23 = iprot.readBool();
+            self.boolAttributeList.append(_elem23)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.LIST:
+          self.stringAttributeList = []
+          (_etype27, _size24) = iprot.readListBegin()
+          for _i28 in xrange(_size24):
+            _elem29 = iprot.readString();
+            self.stringAttributeList.append(_elem29)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.MAP:
+          self.arbitraryDataMapMap = {}
+          (_ktype31, _vtype32, _size30 ) = iprot.readMapBegin()
+          for _i34 in xrange(_size30):
+            _key35 = iprot.readI32();
+            _val36 = {}
+            (_ktype38, _vtype39, _size37 ) = iprot.readMapBegin()
+            for _i41 in xrange(_size37):
+              _key42 = iprot.readString();
+              _val43 = iprot.readString();
+              _val36[_key42] = _val43
+            iprot.readMapEnd()
+            self.arbitraryDataMapMap[_key35] = _val36
+          iprot.readMapEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftEventBundle')
+    if self.sessionId is not None:
+      oprot.writeFieldBegin('sessionId', TType.STRING, 1)
+      oprot.writeString(self.sessionId)
+      oprot.writeFieldEnd()
+    if self.eventNum is not None:
+      oprot.writeFieldBegin('eventNum', TType.I32, 2)
+      oprot.writeI32(self.eventNum)
+      oprot.writeFieldEnd()
+    if self.intAttributeList is not None:
+      oprot.writeFieldBegin('intAttributeList', TType.LIST, 3)
+      oprot.writeListBegin(TType.I32, len(self.intAttributeList))
+      for iter44 in self.intAttributeList:
+        oprot.writeI32(iter44)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.longAttributeList is not None:
+      oprot.writeFieldBegin('longAttributeList', TType.LIST, 4)
+      oprot.writeListBegin(TType.I64, len(self.longAttributeList))
+      for iter45 in self.longAttributeList:
+        oprot.writeI64(iter45)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.doubleAttributeList is not None:
+      oprot.writeFieldBegin('doubleAttributeList', TType.LIST, 5)
+      oprot.writeListBegin(TType.DOUBLE, len(self.doubleAttributeList))
+      for iter46 in self.doubleAttributeList:
+        oprot.writeDouble(iter46)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.boolAttributeList is not None:
+      oprot.writeFieldBegin('boolAttributeList', TType.LIST, 6)
+      oprot.writeListBegin(TType.BOOL, len(self.boolAttributeList))
+      for iter47 in self.boolAttributeList:
+        oprot.writeBool(iter47)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.stringAttributeList is not None:
+      oprot.writeFieldBegin('stringAttributeList', TType.LIST, 7)
+      oprot.writeListBegin(TType.STRING, len(self.stringAttributeList))
+      for iter48 in self.stringAttributeList:
+        oprot.writeString(iter48)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.arbitraryDataMapMap is not None:
+      oprot.writeFieldBegin('arbitraryDataMapMap', TType.MAP, 8)
+      oprot.writeMapBegin(TType.I32, TType.MAP, len(self.arbitraryDataMapMap))
+      for kiter49,viter50 in self.arbitraryDataMapMap.items():
+        oprot.writeI32(kiter49)
+        oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter50))
+        for kiter51,viter52 in viter50.items():
+          oprot.writeString(kiter51)
+          oprot.writeString(viter52)
+        oprot.writeMapEnd()
+      oprot.writeMapEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/__init__.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/__init__.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/constants.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/constants.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/constants.py
new file mode 100644
index 0000000..36943ba
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/constants.py
@@ -0,0 +1,8 @@
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/ttypes.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/ttypes.py
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/ttypes.py
new file mode 100644
index 0000000..9fbb1ce
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/Exception/ttypes.py
@@ -0,0 +1,473 @@
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from ...thrift.Thrift import TType, TMessageType, TException, 
TApplicationException
+
+from ...thrift.transport import TTransport
+from ...thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from ...thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+
+class ThriftStreamDefinitionException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftStreamDefinitionException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftNoStreamDefinitionExistException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftNoStreamDefinitionExistException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftDifferentStreamDefinitionAlreadyDefinedException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    
oprot.writeStructBegin('ThriftDifferentStreamDefinitionAlreadyDefinedException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftMalformedStreamDefinitionException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftMalformedStreamDefinitionException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftUndefinedEventTypeException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftUndefinedEventTypeException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftSessionExpiredException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftSessionExpiredException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ThriftAuthenticationException(TException):
+  """
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is 
not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, 
self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and 
self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, 
self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ThriftAuthenticationException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is 
unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == 
other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/stratos/blob/c5adb7aa/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/ThriftEventTransmissionService/ThriftEventTransmissionService-remote
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/ThriftEventTransmissionService/ThriftEventTransmissionService-remote
 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/ThriftEventTransmissionService/ThriftEventTransmissionService-remote
new file mode 100755
index 0000000..0d18f58
--- /dev/null
+++ 
b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/databridge/thrift/gen/ThriftEventTransmissionService/ThriftEventTransmissionService-remote
@@ -0,0 +1,117 @@
+#!/usr/bin/env python
+#
+# Autogenerated by Thrift Compiler (0.9.1)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+import sys
+import pprint
+from urlparse import urlparse
+
+from thrift.transport import TTransport
+from thrift.transport import TSocket
+from thrift.transport import THttpClient
+from thrift.protocol import TBinaryProtocol
+from ThriftEventTransmissionService import ThriftEventTransmissionService
+from ThriftEventTransmissionService.ttypes import *
+
+
+if len(sys.argv) <= 1 or sys.argv[1] == '--help':
+  print ''
+  print 'Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] 
function [arg1 [arg2...]]'
+  print ''
+  print 'Functions:'
+  print '  string defineStream(string sessionId, string streamDefinition)'
+  print '  string findStreamId(string sessionId, string streamName, string 
streamVersion)'
+  print '  void publish(ThriftEventBundle eventBundle)'
+  print '  bool deleteStreamById(string sessionId, string streamId)'
+  print '  bool deleteStreamByNameVersion(string sessionId, string streamName, 
string streamVersion)'
+  print ''
+  sys.exit(0)
+
+pp = pprint.PrettyPrinter(indent = 2)
+host = 'localhost'
+port = 9090
+uri = ''
+framed = False
+http = False
+argi = 1
+
+if sys.argv[argi] == '-h':
+  parts = sys.argv[argi+1].split(':')
+  host = parts[0]
+  if len(parts) > 1:
+    port = int(parts[1])
+  argi += 2
+
+if sys.argv[argi] == '-u':
+  url = urlparse(sys.argv[argi+1])
+  parts = url[1].split(':')
+  host = parts[0]
+  if len(parts) > 1:
+    port = int(parts[1])
+  else:
+    port = 80
+  uri = url[2]
+  if url[4]:
+    uri += '?%s' % url[4]
+  http = True
+  argi += 2
+
+if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
+  framed = True
+  argi += 1
+
+cmd = sys.argv[argi]
+args = sys.argv[argi+1:]
+
+if http:
+  transport = THttpClient.THttpClient(host, port, uri)
+else:
+  socket = TSocket.TSocket(host, port)
+  if framed:
+    transport = TTransport.TFramedTransport(socket)
+  else:
+    transport = TTransport.TBufferedTransport(socket)
+protocol = TBinaryProtocol.TBinaryProtocol(transport)
+client = ThriftEventTransmissionService.Client(protocol)
+transport.open()
+
+if cmd == 'defineStream':
+  if len(args) != 2:
+    print 'defineStream requires 2 args'
+    sys.exit(1)
+  pp.pprint(client.defineStream(args[0],args[1],))
+
+elif cmd == 'findStreamId':
+  if len(args) != 3:
+    print 'findStreamId requires 3 args'
+    sys.exit(1)
+  pp.pprint(client.findStreamId(args[0],args[1],args[2],))
+
+elif cmd == 'publish':
+  if len(args) != 1:
+    print 'publish requires 1 args'
+    sys.exit(1)
+  pp.pprint(client.publish(eval(args[0]),))
+
+elif cmd == 'deleteStreamById':
+  if len(args) != 2:
+    print 'deleteStreamById requires 2 args'
+    sys.exit(1)
+  pp.pprint(client.deleteStreamById(args[0],args[1],))
+
+elif cmd == 'deleteStreamByNameVersion':
+  if len(args) != 3:
+    print 'deleteStreamByNameVersion requires 3 args'
+    sys.exit(1)
+  pp.pprint(client.deleteStreamByNameVersion(args[0],args[1],args[2],))
+
+else:
+  print 'Unrecognized method %s' % cmd
+  sys.exit(1)
+
+transport.close()

Reply via email to