summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v3
diff options
context:
space:
mode:
authorTerry Howe <terrylhowe@gmail.com>2014-03-06 12:50:37 -0700
committerTerry Howe <terrylhowe@gmail.com>2014-03-06 14:22:17 -0700
commit70e6333e7d4b3fa87496ff3a888527693875273b (patch)
treee809d6d4bea743b124c12e4712fadbacbb758bb6 /openstackclient/identity/v3
parent808fa652109e8d0141f88b258df05874e6676d98 (diff)
downloadpython-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/v3')
-rw-r--r--openstackclient/identity/v3/project.py22
1 files changed, 22 insertions, 0 deletions
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: