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
>