From d981ac299b8754e83b645c72c1d650a6a2d36fde Mon Sep 17 00:00:00 2001 From: Devdatta Kulkarni Date: Wed, 26 Aug 2015 17:34:52 -0500 Subject: [PATCH] Support for specifying parameter file Support for specifying parameter file with the new app command Closes-Bug: #1491621 Change-Id: I752ed9c18969b9b3cfee1547b9cc4b7b150e5cf3 --- solumclient/solum.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/solumclient/solum.py b/solumclient/solum.py index 47d758c..cefb1d8 100644 --- a/solumclient/solum.py +++ b/solumclient/solum.py @@ -705,6 +705,20 @@ class AppCommands(cli_utils.CommandsBase): app_data['ports'] = port_list + def _get_parameters(self, app_data, args): + if args.param_file is not None: + try: + with open(args.param_file) as param_f: + param_def = param_f.read() + app_data['parameters'] = yamlutils.load(param_def) + except IOError: + message = "Could not open param file %s." % args.param_file + raise exc.CommandError(message=message) + except ValueError: + message = ("Param file %s was not YAML." % + args.param_file) + raise exc.CommandError(message=message) + def create(self): self.register() @@ -734,6 +748,11 @@ class AppCommands(cli_utils.CommandsBase): dest="port", type=ValidPort, help="The port your application listens on") + self.parser.add_argument('--param-file', + dest='param_file', + help="A yaml file containing custom" + " parameters to be used in the" + " application") args = self.parser.parse_args() app_data = None if args.appfile is not None: @@ -767,6 +786,8 @@ class AppCommands(cli_utils.CommandsBase): self._get_port(app_data, args) + self._get_parameters(app_data, args) + app = self.client.apps.create(**app_data) app.trigger = app.trigger_actions