diff options
Diffstat (limited to 'openstackclient/identity/v2_0/user.py')
| -rw-r--r-- | openstackclient/identity/v2_0/user.py | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py index 371c45a..60af6dd 100644 --- a/openstackclient/identity/v2_0/user.py +++ b/openstackclient/identity/v2_0/user.py @@ -43,6 +43,12 @@ class CreateUser(show.ShowOne): help='New user password', ) parser.add_argument( + '--password-prompt', + dest="password_prompt", + action="store_true", + help='Prompt interactively for password', + ) + parser.add_argument( '--email', metavar='<user-email>', help='New user email address', @@ -66,7 +72,7 @@ class CreateUser(show.ShowOne): return parser def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) + self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity if parsed_args.project: @@ -80,6 +86,8 @@ class CreateUser(show.ShowOne): enabled = True if parsed_args.disable: enabled = False + if parsed_args.password_prompt: + parsed_args.password = utils.get_password(self.app.stdin) user = identity_client.users.create( parsed_args.name, @@ -115,7 +123,7 @@ class DeleteUser(command.Command): return parser def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) + self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity user = utils.find_resource( @@ -143,11 +151,12 @@ class ListUser(lister.Lister): '--long', action='store_true', default=False, - help='Additional fields are listed in output') + help='List additional fields in output') return parser def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) + self.log.debug('take_action(%s)', parsed_args) + identity_client = self.app.client_manager.identity def _format_project(project): if not project: @@ -157,6 +166,14 @@ class ListUser(lister.Lister): else: return project + project = None + if parsed_args.project: + project = utils.find_resource( + identity_client.tenants, + parsed_args.project, + ) + project = project.id + if parsed_args.long: columns = ( 'ID', @@ -175,14 +192,20 @@ class ListUser(lister.Lister): # Cache the project list project_cache = {} try: - for p in self.app.client_manager.identity.tenants.list(): + for p in identity_client.tenants.list(): project_cache[p.id] = p except Exception: # Just forget it if there's any trouble pass else: columns = column_headers = ('ID', 'Name') - data = self.app.client_manager.identity.users.list() + data = identity_client.users.list(tenant_id=project) + + if parsed_args.project: + d = {} + for s in data: + d[s.id] = s + data = d.values() if parsed_args.long: # FIXME(dtroyer): Sometimes user objects have 'tenant_id' instead @@ -225,6 +248,12 @@ class SetUser(command.Command): help='New user password', ) parser.add_argument( + '--password-prompt', + dest="password_prompt", + action="store_true", + help='Prompt interactively for password', + ) + parser.add_argument( '--email', metavar='<user-email>', help='New user email address', @@ -248,9 +277,12 @@ class SetUser(command.Command): return parser def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) + self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + if parsed_args.password_prompt: + parsed_args.password = utils.get_password(self.app.stdin) + if (not parsed_args.name and not parsed_args.name and not parsed_args.password @@ -311,7 +343,7 @@ class ShowUser(show.ShowOne): return parser def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) + self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity user = utils.find_resource( |
