Hi Chamila,

Thanks Chamila. Better to rename so someone looking know that they are
payload parameters

On Wed, Apr 22, 2015 at 11:30 PM, Imesh Gunaratne <[email protected]> wrote:

> 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
>



-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897

Reply via email to