From 70e6333e7d4b3fa87496ff3a888527693875273b Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Thu, 6 Mar 2014 12:50:37 -0700 Subject: Add ability to set key value pairs in projects Add supporto of extra key value pairs for projects (aka tenants) * Added option --property key=value to create and set commands * Support for versions v2 and v3 Change-Id: I84064b8b308579d1b66c83b1ed3d1a37614ec087 Closes-Bug: #1220280 --- openstackclient/identity/v3/project.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'openstackclient/identity/v3') diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index f245a888..ebae733d 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -22,6 +22,7 @@ from cliff import command from cliff import lister from cliff import show +from openstackclient.common import parseractions from openstackclient.common import utils @@ -58,6 +59,13 @@ class CreateProject(show.ShowOne): action='store_true', help='Disable project', ) + parser.add_argument( + '--property', + metavar='', + action=parseractions.KeyValueAction, + help='Property to add for this project ' + '(repeat option to set multiple properties)', + ) return parser def take_action(self, parsed_args): @@ -75,12 +83,16 @@ class CreateProject(show.ShowOne): enabled = True if parsed_args.disable: enabled = False + kwargs = {} + if parsed_args.property: + kwargs = parsed_args.property.copy() project = identity_client.projects.create( parsed_args.name, domain, description=parsed_args.description, enabled=enabled, + **kwargs ) info = {} @@ -182,6 +194,13 @@ class SetProject(command.Command): action='store_true', help='Disable project', ) + parser.add_argument( + '--property', + metavar='', + action=parseractions.KeyValueAction, + help='Property to add for this project ' + '(repeat option to set multiple properties)', + ) return parser def take_action(self, parsed_args): @@ -192,6 +211,7 @@ class SetProject(command.Command): and not parsed_args.description and not parsed_args.domain and not parsed_args.enable + and not parsed_args.property and not parsed_args.disable): return @@ -214,6 +234,8 @@ class SetProject(command.Command): kwargs['enabled'] = True if parsed_args.disable: kwargs['enabled'] = False + if parsed_args.property: + kwargs.update(parsed_args.property) if 'id' in kwargs: del kwargs['id'] if 'domain_id' in kwargs: -- cgit v1.2.1