1717
1818import logging
1919import six
20- import sys
2120
2221from cliff import command
2322from 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
256270class ShowUser (show .ShowOne ):
0 commit comments