summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v2_0
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-07-03 16:47:40 -0500
committerDean Troyer <dtroyer@gmail.com>2013-08-16 14:35:46 -0500
commit493339d4da6b56f46416fff583ff6cc7748570ec (patch)
tree847fe6214daca6548d41d402d89b92e618173991 /openstackclient/identity/v2_0
parent93612bbf53500bfeace7460e7cb317ed0073a6d1 (diff)
downloadpython-openstackclient-493339d4da6b56f46416fff583ff6cc7748570ec.tar.gz
Add Identity v2 project tests
* establish the the form of cliff command classes * implement some common fake objects * implement Identity command tests for v2 project * fix stdout/stderr capture Also re-work the project create and set commands for exclusive options (--enable|--disable) to actually behave properly. Yay tests! Change-Id: Icbb313db544c1f8dd3c9af7709971838b5a4d115
Diffstat (limited to 'openstackclient/identity/v2_0')
-rw-r--r--openstackclient/identity/v2_0/project.py44
1 files changed, 27 insertions, 17 deletions
diff --git a/openstackclient/identity/v2_0/project.py b/openstackclient/identity/v2_0/project.py
index d2d74ed0..0721a7ce 100644
--- a/openstackclient/identity/v2_0/project.py
+++ b/openstackclient/identity/v2_0/project.py
@@ -45,26 +45,28 @@ class CreateProject(show.ShowOne):
enable_group = parser.add_mutually_exclusive_group()
enable_group.add_argument(
'--enable',
- dest='enabled',
action='store_true',
- default=True,
- help='Enable project',
+ help='Enable project (default)',
)
enable_group.add_argument(
'--disable',
- dest='enabled',
- action='store_false',
+ action='store_true',
help='Disable project',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
+
identity_client = self.app.client_manager.identity
+ enabled = True
+ if parsed_args.disable:
+ enabled = False
project = identity_client.tenants.create(
parsed_args.project_name,
description=parsed_args.description,
- enabled=parsed_args.enabled)
+ enabled=enabled,
+ )
info = {}
info.update(project._info)
@@ -150,36 +152,44 @@ class SetProject(command.Command):
enable_group = parser.add_mutually_exclusive_group()
enable_group.add_argument(
'--enable',
- dest='enabled',
action='store_true',
- default=True,
- help='Enable project (default)',
+ help='Enable project',
)
enable_group.add_argument(
'--disable',
- dest='enabled',
- action='store_false',
+ action='store_true',
help='Disable project',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
+
identity_client = self.app.client_manager.identity
project = utils.find_resource(
identity_client.tenants,
parsed_args.project,
)
- kwargs = {}
+
+ kwargs = project._info
if parsed_args.name:
kwargs['name'] = parsed_args.name
if parsed_args.description:
kwargs['description'] = parsed_args.description
- if 'enabled' in parsed_args:
- kwargs['enabled'] = parsed_args.enabled
-
- project.update(**kwargs)
- return
+ if parsed_args.enable:
+ kwargs['enabled'] = True
+ if parsed_args.disable:
+ kwargs['enabled'] = False
+
+ if 'id' in kwargs:
+ del kwargs['id']
+ if 'name' in kwargs:
+ # Hack around borken Identity API arg names
+ kwargs['tenant_name'] = kwargs['name']
+ del kwargs['name']
+
+ if len(kwargs):
+ identity_client.tenants.update(project.id, **kwargs)
class ShowProject(show.ShowOne):