diff options
| author | Terry Howe <terrylhowe@gmail.com> | 2014-03-06 12:50:37 -0700 |
|---|---|---|
| committer | Terry Howe <terrylhowe@gmail.com> | 2014-03-06 14:22:17 -0700 |
| commit | 70e6333e7d4b3fa87496ff3a888527693875273b (patch) | |
| tree | e809d6d4bea743b124c12e4712fadbacbb758bb6 /openstackclient/identity | |
| parent | 808fa652109e8d0141f88b258df05874e6676d98 (diff) | |
| download | python-openstackclient-70e6333e7d4b3fa87496ff3a888527693875273b.tar.gz | |
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
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/v2_0/project.py | 22 | ||||
| -rw-r--r-- | openstackclient/identity/v3/project.py | 22 |
2 files changed, 44 insertions, 0 deletions
diff --git a/openstackclient/identity/v2_0/project.py b/openstackclient/identity/v2_0/project.py index 2d0acb8f..60a52ad4 100644 --- a/openstackclient/identity/v2_0/project.py +++ b/openstackclient/identity/v2_0/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 @@ -53,6 +54,13 @@ class CreateProject(show.ShowOne): action='store_true', help='Disable project', ) + parser.add_argument( + '--property', + metavar='<key=value>', + action=parseractions.KeyValueAction, + help='Property to add for this project ' + '(repeat option to set multiple properties)', + ) return parser def take_action(self, parsed_args): @@ -62,11 +70,15 @@ 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.tenants.create( parsed_args.name, description=parsed_args.description, enabled=enabled, + **kwargs ) info = {} @@ -163,6 +175,13 @@ class SetProject(command.Command): action='store_true', help='Disable project', ) + parser.add_argument( + '--property', + metavar='<key=value>', + action=parseractions.KeyValueAction, + help='Property to add for this project ' + '(repeat option to set multiple properties)', + ) return parser def take_action(self, parsed_args): @@ -172,6 +191,7 @@ class SetProject(command.Command): if (not parsed_args.name and not parsed_args.description and not parsed_args.enable + and not parsed_args.property and not parsed_args.disable): return @@ -189,6 +209,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 'name' in kwargs: 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='<key=value>', + 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='<key=value>', + 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: |
