A good design Chamila! May be we could rename the variable "values" to something meaningful.
Thanks On Wed, Apr 22, 2015 at 11:37 AM, Chamila De Alwis <[email protected]> wrote: > Hi Udara, > > You don't have to read the payload parameter file from the plugins. When > subclassing from the plugin contract class ICartridgeAgentPlugin in > plugins/contracts.py and overriding run_plugin() method, you receive the > payload parameters as a dictionary in the argument "values". > > Following is a brief example of a plugin, CustomPlugin, which reads a > value from the meta data service and the payload parameters. I hope the > code is self-describable. > > > import mdsclient > from plugins.contracts import ICartridgeAgentPlugin > import time > from modules.util.log import LogFactory > import os > > > class CustomPlugin(ICartridgeAgentPlugin): > > def run_plugin(self, values): > log = LogFactory().get_log(__name__) > # wait till SOME_VALUE becomes available > mds_response = None > while mds_response is None: > time.sleep(5) > mds_response = mdsclient.get(app=True) > if mds_response is not None and > mds_response.properties.get("SOME_VALUE") is None: > mds_response = > > env_var["STRATOS_HOST_NAME"] = values["HOST_NAME"] > payload_ports = values["PORT_MAPPINGS"].split("|") > > On Apr 22, 2015 9:39 AM, "Udara Liyanage" <[email protected]> wrote: > >> Hi, >> >> Is there a util method to read payload parameters in Python Cartridge agent? >> I am writing a plugin/extension which needs to read payload parameters to >> function. >> >> Currently I am reading the file and access the properties >> >> >> launch_params_file = >> os.path.abspath(os.path.dirname(__file__)).split("extensions")[0] + >> "payload/launch-params" >> metadata_file = open(launch_params_file, "r") >> properties = {} >> for param in metadata_payload_content.split(","): >> if param.strip() != "": >> param_value = param.strip().split("=") >> properties[param_value[0]] = param_value[1] >> >> token = properties['TOKEN'] >> >> Udara Liyanage >> Software Engineer >> WSO2, Inc.: http://wso2.com >> lean. enterprise. middleware >> >> web: http://udaraliyanage.wordpress.com >> phone: +94 71 443 6897 >> > -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos
