summaryrefslogtreecommitdiff
path: root/openstackclient/identity
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-08-16 00:03:58 -0500
committerDean Troyer <dtroyer@gmail.com>2013-08-19 15:26:51 -0500
commit22a6e8891ef7b50f0c6a4849ea9f6768c394f7ee (patch)
tree86a32a7d029c5d5457a67a7abc8dd1e39be54661 /openstackclient/identity
parent493339d4da6b56f46416fff583ff6cc7748570ec (diff)
downloadpython-openstackclient-22a6e8891ef7b50f0c6a4849ea9f6768c394f7ee.tar.gz
Add Identity v2 user tests
* implement Identity command tests for v2 user Also re-work the user create and set commands for exclusive options (--enable|--disable) to actually behave properly. Yay tests! Change-Id: Ie1ec2569b3d85a9d556ee70f2e8f69fd2a3c03c8
Diffstat (limited to 'openstackclient/identity')
-rw-r--r--openstackclient/identity/v2_0/user.py70
1 files changed, 42 insertions, 28 deletions
diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py
index 78f21646..7174d4ce 100644
--- a/openstackclient/identity/v2_0/user.py
+++ b/openstackclient/identity/v2_0/user.py
@@ -17,7 +17,6 @@
import logging
import six
-import sys
from cliff import command
from cliff import lister
@@ -53,15 +52,14 @@ class CreateUser(show.ShowOne):
enable_group = parser.add_mutually_exclusive_group()
enable_group.add_argument(
'--enable',
- dest='enabled',
action='store_true',
- default=True,
- help='Enable user')
+ help='Enable user (default)',
+ )
enable_group.add_argument(
'--disable',
- dest='enabled',
- action='store_false',
- help='Disable user')
+ action='store_true',
+ help='Disable user',
+ )
return parser
def take_action(self, parsed_args):
@@ -74,13 +72,19 @@ class CreateUser(show.ShowOne):
).id
else:
project_id = None
+ enabled = True
+ if parsed_args.disable:
+ enabled = False
user = identity_client.users.create(
parsed_args.name,
parsed_args.password,
parsed_args.email,
tenant_id=project_id,
- enabled=parsed_args.enabled,
+ enabled=enabled,
)
+ # NOTE(dtroyer): The users.create() method wants 'tenant_id' but
+ # the returned resource has 'tenantId'. Sigh.
+ # We're using project_id now inside OSC so there.
user._info.update(
{'project_id': user._info.pop('tenantId')}
)
@@ -217,40 +221,50 @@ class SetUser(command.Command):
enable_group = parser.add_mutually_exclusive_group()
enable_group.add_argument(
'--enable',
- dest='enabled',
action='store_true',
- default=True,
- help='Enable user (default)')
+ help='Enable user (default)',
+ )
enable_group.add_argument(
'--disable',
- dest='enabled',
- action='store_false',
- help='Disable user')
+ action='store_true',
+ help='Disable user',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
+
identity_client = self.app.client_manager.identity
user = utils.find_resource(identity_client.users, parsed_args.user)
- kwargs = {}
- if parsed_args.name:
- kwargs['name'] = parsed_args.name
- if parsed_args.email:
- kwargs['email'] = parsed_args.email
+
+ if parsed_args.password:
+ identity_client.users.update_password(
+ user.id,
+ parsed_args.password,
+ )
+
if parsed_args.project:
project = utils.find_resource(
identity_client.tenants,
parsed_args.project,
)
- kwargs['tenantId'] = project.id
- if 'enabled' in parsed_args:
- kwargs['enabled'] = parsed_args.enabled
-
- if not len(kwargs):
- sys.stdout.write("User not updated, no arguments present")
- return
- identity_client.users.update(user.id, **kwargs)
- return
+ identity_client.users.update_tenant(
+ user.id,
+ project.id,
+ )
+
+ kwargs = {}
+ if parsed_args.name:
+ kwargs['name'] = parsed_args.name
+ if parsed_args.email:
+ kwargs['email'] = parsed_args.email
+ if parsed_args.enable:
+ kwargs['enabled'] = True
+ if parsed_args.disable:
+ kwargs['enabled'] = False
+
+ if len(kwargs):
+ identity_client.users.update(user.id, **kwargs)
class ShowUser(show.ShowOne):