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

Reply via email to