diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py index 7bd3706593..5e6282eb8c 100644 --- a/openstackclient/identity/v3/user.py +++ b/openstackclient/identity/v3/user.py @@ -53,6 +53,16 @@ class CreateUser(show.ShowOne): metavar='<project>', help='New default project name or ID', ) + parser.add_argument( + '--domain', + metavar='<domain>', + help='New default domain name or ID', + ) + parser.add_argument( + '--description', + metavar='<description>', + help='Description for new user', + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', @@ -72,17 +82,27 @@ class CreateUser(show.ShowOne): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity + if parsed_args.project: project_id = utils.find_resource( identity_client.projects, parsed_args.project).id else: project_id = None + + if parsed_args.domain: + domain_id = utils.find_resource( + identity_client.domains, parsed_args.domain).id + else: + domain_id = None + user = identity_client.users.create( parsed_args.name, + domain_id, + project_id, parsed_args.password, parsed_args.email, - project_id=project_id, - enabled=parsed_args.enabled, + parsed_args.description, + parsed_args.enabled ) info = {} @@ -138,7 +158,8 @@ class ListUser(lister.Lister): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) if parsed_args.long: - columns = ('ID', 'Name', 'Project Id', 'Email', 'Enabled') + columns = ('ID', 'Name', 'Project Id', 'Domain Id', + 'Description', 'Email', 'Enabled') else: columns = ('ID', 'Name') data = self.app.client_manager.identity.users.list() @@ -177,10 +198,20 @@ class SetUser(command.Command): metavar='<user-email>', help='New user email address', ) + parser.add_argument( + '--domain', + metavar='<domain>', + help='New domain name or ID', + ) parser.add_argument( '--project', metavar='<project>', - help='New default project name or ID', + help='New project name or ID', + ) + parser.add_argument( + '--description', + metavar='<description>', + help='New description', ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( @@ -208,10 +239,16 @@ class SetUser(command.Command): kwargs['name'] = parsed_args.name if parsed_args.email: kwargs['email'] = parsed_args.email + if parsed_args.description: + kwargs['description'] = parsed_args.description if parsed_args.project: project_id = utils.find_resource( identity_client.projects, parsed_args.project).id kwargs['projectId'] = project_id + if parsed_args.domain: + domain_id = utils.find_resource( + identity_client.domains, parsed_args.domain).id + kwargs['domainId'] = domain_id if 'enabled' in parsed_args: kwargs['enabled'] = parsed_args.enabled