summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2016-06-28 14:39:00 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2016-06-29 19:16:35 +0800
commitdbed97a24df2fb74e4989fb15c912252f8a8bb07 (patch)
treeb1a5bbc4881e23dafc9290c37bf7cc8644134a8b /openstackclient/compute
parent9e47688e5eb2d3e4ee8fe0e15d49b34fe7c5512d (diff)
downloadpython-openstackclient-dbed97a24df2fb74e4989fb15c912252f8a8bb07.tar.gz
Add "--property" option to "flavor create" command
Add "--property" option to "flavor create" command to support adding properties to a new falvor. Change-Id: I4f06b364375d5a81584fe41122d48e9568fa712a Closes-Bug: #1596798
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/flavor.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py
index 01d7da75..000df598 100644
--- a/openstackclient/compute/v2/flavor.py
+++ b/openstackclient/compute/v2/flavor.py
@@ -122,6 +122,13 @@ class CreateFlavor(command.ShowOne):
help=_("Flavor is not available to other projects")
)
parser.add_argument(
+ "--property",
+ metavar="<key=value>",
+ action=parseractions.KeyValueAction,
+ help=_("Property to add for this flavor "
+ "(repeat option to set multiple properties)")
+ )
+ parser.add_argument(
'--project',
metavar='<project>',
help=_("Allow <project> to access private flavor (name or ID) "
@@ -150,8 +157,7 @@ class CreateFlavor(command.ShowOne):
parsed_args.public
)
- flavor = compute_client.flavors.create(*args)._info.copy()
- flavor.pop("links")
+ flavor = compute_client.flavors.create(*args)
if parsed_args.project:
try:
@@ -166,8 +172,17 @@ class CreateFlavor(command.ShowOne):
msg = _("Failed to add project %(project)s access to "
"flavor: %(e)s")
LOG.error(msg % {'project': parsed_args.project, 'e': e})
+ if parsed_args.property:
+ try:
+ flavor.set_keys(parsed_args.property)
+ except Exception as e:
+ LOG.error(_("Failed to set flavor property: %s"), e)
- return zip(*sorted(six.iteritems(flavor)))
+ flavor_info = flavor._info.copy()
+ flavor_info.pop("links")
+ flavor_info['properties'] = utils.format_dict(flavor.get_keys())
+
+ return zip(*sorted(six.iteritems(flavor_info)))
class DeleteFlavor(command.Command):