Skip to content

Commit 22a6e88

Browse files
author
Dean Troyer
committed
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
1 parent 493339d commit 22a6e88

2 files changed

Lines changed: 538 additions & 28 deletions

File tree

‎openstackclient/identity/v2_0/user.py‎

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import logging
1919
import six
20-
import sys
2120

2221
from cliff import command
2322
from cliff import lister
@@ -53,15 +52,14 @@ def get_parser(self, prog_name):
5352
enable_group = parser.add_mutually_exclusive_group()
5453
enable_group.add_argument(
5554
'--enable',
56-
dest='enabled',
5755
action='store_true',
58-
default=True,
59-
help='Enable user')
56+
help='Enable user (default)',
57+
)
6058
enable_group.add_argument(
6159
'--disable',
62-
dest='enabled',
63-
action='store_false',
64-
help='Disable user')
60+
action='store_true',
61+
help='Disable user',
62+
)
6563
return parser
6664

6765
def take_action(self, parsed_args):
@@ -74,13 +72,19 @@ def take_action(self, parsed_args):
7472
).id
7573
else:
7674
project_id = None
75+
enabled = True
76+
if parsed_args.disable:
77+
enabled = False
7778
user = identity_client.users.create(
7879
parsed_args.name,
7980
parsed_args.password,
8081
parsed_args.email,
8182
tenant_id=project_id,
82-
enabled=parsed_args.enabled,
83+
enabled=enabled,
8384
)
85+
# NOTE(dtroyer): The users.create() method wants 'tenant_id' but
86+
# the returned resource has 'tenantId'. Sigh.
87+
# We're using project_id now inside OSC so there.
8488
user._info.update(
8589
{'project_id': user._info.pop('tenantId')}
8690
)
@@ -217,40 +221,50 @@ def get_parser(self, prog_name):
217221
enable_group = parser.add_mutually_exclusive_group()
218222
enable_group.add_argument(
219223
'--enable',
220-
dest='enabled',
221224
action='store_true',
222-
default=True,
223-
help='Enable user (default)')
225+
help='Enable user (default)',
226+
)
224227
enable_group.add_argument(
225228
'--disable',
226-
dest='enabled',
227-
action='store_false',
228-
help='Disable user')
229+
action='store_true',
230+
help='Disable user',
231+
)
229232
return parser
230233

231234
def take_action(self, parsed_args):
232235
self.log.debug('take_action(%s)' % parsed_args)
236+
233237
identity_client = self.app.client_manager.identity
234238
user = utils.find_resource(identity_client.users, parsed_args.user)
235-
kwargs = {}
236-
if parsed_args.name:
237-
kwargs['name'] = parsed_args.name
238-
if parsed_args.email:
239-
kwargs['email'] = parsed_args.email
239+
240+
if parsed_args.password:
241+
identity_client.users.update_password(
242+
user.id,
243+
parsed_args.password,
244+
)
245+
240246
if parsed_args.project:
241247
project = utils.find_resource(
242248
identity_client.tenants,
243249
parsed_args.project,
244250
)
245-
kwargs['tenantId'] = project.id
246-
if 'enabled' in parsed_args:
247-
kwargs['enabled'] = parsed_args.enabled
248-
249-
if not len(kwargs):
250-
sys.stdout.write("User not updated, no arguments present")
251-
return
252-
identity_client.users.update(user.id, **kwargs)
253-
return
251+
identity_client.users.update_tenant(
252+
user.id,
253+
project.id,
254+
)
255+
256+
kwargs = {}
257+
if parsed_args.name:
258+
kwargs['name'] = parsed_args.name
259+
if parsed_args.email:
260+
kwargs['email'] = parsed_args.email
261+
if parsed_args.enable:
262+
kwargs['enabled'] = True
263+
if parsed_args.disable:
264+
kwargs['enabled'] = False
265+
266+
if len(kwargs):
267+
identity_client.users.update(user.id, **kwargs)
254268

255269

256270
class ShowUser(show.ShowOne):

0 commit comments

Comments
 (0)