diff options
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/v2_0/ec2creds.py | 14 | ||||
| -rw-r--r-- | openstackclient/identity/v2_0/project.py | 19 | ||||
| -rw-r--r-- | openstackclient/identity/v2_0/role.py | 19 | ||||
| -rw-r--r-- | openstackclient/identity/v2_0/user.py | 19 | ||||
| -rw-r--r-- | openstackclient/identity/v3/domain.py | 48 | ||||
| -rw-r--r-- | openstackclient/identity/v3/group.py | 61 | ||||
| -rw-r--r-- | openstackclient/identity/v3/project.py | 25 | ||||
| -rw-r--r-- | openstackclient/identity/v3/region.py | 38 | ||||
| -rw-r--r-- | openstackclient/identity/v3/role.py | 19 | ||||
| -rw-r--r-- | openstackclient/identity/v3/role_assignment.py | 12 | ||||
| -rw-r--r-- | openstackclient/identity/v3/service.py | 14 | ||||
| -rw-r--r-- | openstackclient/identity/v3/user.py | 38 |
12 files changed, 181 insertions, 145 deletions
diff --git a/openstackclient/identity/v2_0/ec2creds.py b/openstackclient/identity/v2_0/ec2creds.py index a20ffd4b..90553eb1 100644 --- a/openstackclient/identity/v2_0/ec2creds.py +++ b/openstackclient/identity/v2_0/ec2creds.py @@ -37,12 +37,14 @@ class CreateEC2Creds(show.ShowOne): parser.add_argument( '--project', metavar='<project>', - help=_('Specify a project [admin only]'), + help=_('Specify an alternate project' + ' (default: current authenticated project)'), ) parser.add_argument( '--user', metavar='<user>', - help=_('Specify a user [admin only]'), + help=_('Specify an alternate user' + ' (default: current authenticated user)'), ) return parser @@ -95,7 +97,7 @@ class DeleteEC2Creds(command.Command): parser.add_argument( '--user', metavar='<user>', - help=_('Specify a user [admin only]'), + help=_('Specify a user'), ) return parser @@ -125,7 +127,7 @@ class ListEC2Creds(lister.Lister): parser.add_argument( '--user', metavar='<user>', - help=_('Specify a user [admin only]'), + help=_('Specify a user'), ) return parser @@ -154,7 +156,7 @@ class ListEC2Creds(lister.Lister): class ShowEC2Creds(show.ShowOne): - """Show EC2 credentials""" + """Display EC2 credentials details""" log = logging.getLogger(__name__ + '.ShowEC2Creds') @@ -168,7 +170,7 @@ class ShowEC2Creds(show.ShowOne): parser.add_argument( '--user', metavar='<user>', - help=_('Specify a user [admin only]'), + help=_('Specify a user'), ) return parser diff --git a/openstackclient/identity/v2_0/project.py b/openstackclient/identity/v2_0/project.py index 6450d814..9b195600 100644 --- a/openstackclient/identity/v2_0/project.py +++ b/openstackclient/identity/v2_0/project.py @@ -104,16 +104,17 @@ class CreateProject(show.ShowOne): class DeleteProject(command.Command): - """Delete an existing project""" + """Delete project(s)""" log = logging.getLogger(__name__ + '.DeleteProject') def get_parser(self, prog_name): parser = super(DeleteProject, self).get_parser(prog_name) parser.add_argument( - 'project', + 'projects', metavar='<project>', - help=_('Project to delete (name or ID)'), + nargs="+", + help=_('Project(s) to delete (name or ID)'), ) return parser @@ -121,12 +122,12 @@ class DeleteProject(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity - project = utils.find_resource( - identity_client.tenants, - parsed_args.project, - ) - - identity_client.tenants.delete(project.id) + for project in parsed_args.projects: + project_obj = utils.find_resource( + identity_client.tenants, + project, + ) + identity_client.tenants.delete(project_obj.id) return diff --git a/openstackclient/identity/v2_0/role.py b/openstackclient/identity/v2_0/role.py index 475baa2c..d03664e0 100644 --- a/openstackclient/identity/v2_0/role.py +++ b/openstackclient/identity/v2_0/role.py @@ -114,16 +114,17 @@ class CreateRole(show.ShowOne): class DeleteRole(command.Command): - """Delete an existing role""" + """Delete role(s)""" log = logging.getLogger(__name__ + '.DeleteRole') def get_parser(self, prog_name): parser = super(DeleteRole, self).get_parser(prog_name) parser.add_argument( - 'role', + 'roles', metavar='<role>', - help=_('Role to delete (name or ID)'), + nargs="+", + help=_('Role(s) to delete (name or ID)'), ) return parser @@ -131,12 +132,12 @@ class DeleteRole(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity - role = utils.find_resource( - identity_client.roles, - parsed_args.role, - ) - - identity_client.roles.delete(role.id) + for role in parsed_args.roles: + role_obj = utils.find_resource( + identity_client.roles, + role, + ) + identity_client.roles.delete(role_obj.id) return diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py index 7f1ea6da..b5bbce3b 100644 --- a/openstackclient/identity/v2_0/user.py +++ b/openstackclient/identity/v2_0/user.py @@ -128,16 +128,17 @@ class CreateUser(show.ShowOne): class DeleteUser(command.Command): - """Delete user""" + """Delete user(s)""" log = logging.getLogger(__name__ + '.DeleteUser') def get_parser(self, prog_name): parser = super(DeleteUser, self).get_parser(prog_name) parser.add_argument( - 'user', + 'users', metavar='<user>', - help=_('User to delete (name or ID)'), + nargs="+", + help=_('User(s) to delete (name or ID)'), ) return parser @@ -145,12 +146,12 @@ class DeleteUser(command.Command): 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, - ) - - identity_client.users.delete(user.id) + for user in parsed_args.users: + user_obj = utils.find_resource( + identity_client.users, + user, + ) + identity_client.users.delete(user_obj.id) return diff --git a/openstackclient/identity/v3/domain.py b/openstackclient/identity/v3/domain.py index 9e50fe54..189f0970 100644 --- a/openstackclient/identity/v3/domain.py +++ b/openstackclient/identity/v3/domain.py @@ -29,7 +29,7 @@ from openstackclient.i18n import _ # noqa class CreateDomain(show.ShowOne): - """Create domain command""" + """Create new domain""" log = logging.getLogger(__name__ + '.CreateDomain') @@ -42,21 +42,20 @@ class CreateDomain(show.ShowOne): ) parser.add_argument( '--description', - metavar='<domain-description>', + metavar='<description>', help='New domain description', ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', - dest='enabled', action='store_true', - default=True, - help='Enable domain') + help='Enable domain (default)', + ) enable_group.add_argument( '--disable', - dest='enabled', - action='store_false', - help='Disable domain') + action='store_true', + help='Disable domain', + ) parser.add_argument( '--or-show', action='store_true', @@ -68,11 +67,15 @@ class CreateDomain(show.ShowOne): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + enabled = True + if parsed_args.disable: + enabled = False + try: domain = identity_client.domains.create( name=parsed_args.name, description=parsed_args.description, - enabled=parsed_args.enabled, + enabled=enabled, ) except ksc_exc.Conflict as e: if parsed_args.or_show: @@ -87,7 +90,7 @@ class CreateDomain(show.ShowOne): class DeleteDomain(command.Command): - """Delete domain command""" + """Delete domain""" log = logging.getLogger(__name__ + '.DeleteDomain') @@ -96,7 +99,7 @@ class DeleteDomain(command.Command): parser.add_argument( 'domain', metavar='<domain>', - help='Name or ID of domain to delete', + help='Domain to delete (name or ID)', ) return parser @@ -110,7 +113,7 @@ class DeleteDomain(command.Command): class ListDomain(lister.Lister): - """List domain command""" + """List domains""" log = logging.getLogger(__name__ + '.ListDomain') @@ -126,7 +129,7 @@ class ListDomain(lister.Lister): class SetDomain(command.Command): - """Set domain command""" + """Set domain properties""" log = logging.getLogger(__name__ + '.SetDomain') @@ -135,28 +138,26 @@ class SetDomain(command.Command): parser.add_argument( 'domain', metavar='<domain>', - help='Name or ID of domain to change', + help='Domain to modify (name or ID)', ) parser.add_argument( '--name', - metavar='<new-domain-name>', + metavar='<name>', help='New domain name', ) parser.add_argument( '--description', - metavar='<domain-description>', + metavar='<description>', help='New domain description', ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', - dest='enabled', action='store_true', - help='Enable domain (default)', + help='Enable domain', ) enable_group.add_argument( '--disable', - dest='disabled', action='store_true', help='Disable domain', ) @@ -172,9 +173,10 @@ class SetDomain(command.Command): kwargs['name'] = parsed_args.name if parsed_args.description: kwargs['description'] = parsed_args.description - if parsed_args.enabled: + + if parsed_args.enable: kwargs['enabled'] = True - if parsed_args.disabled: + if parsed_args.disable: kwargs['enabled'] = False if not kwargs: @@ -185,7 +187,7 @@ class SetDomain(command.Command): class ShowDomain(show.ShowOne): - """Show domain command""" + """Show domain details""" log = logging.getLogger(__name__ + '.ShowDomain') @@ -194,7 +196,7 @@ class ShowDomain(show.ShowOne): parser.add_argument( 'domain', metavar='<domain>', - help='Name or ID of domain to display', + help='Domain to display (name or ID)', ) return parser diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py index b617cd76..fbd8dd72 100644 --- a/openstackclient/identity/v3/group.py +++ b/openstackclient/identity/v3/group.py @@ -39,12 +39,12 @@ class AddUserToGroup(command.Command): parser.add_argument( 'group', metavar='<group>', - help='Group name or ID that user will be added to', + help='Group that user will be added to (name or ID)', ) parser.add_argument( 'user', metavar='<user>', - help='User name or ID to add to group', + help='User to add to group (name or ID)', ) return parser @@ -68,7 +68,7 @@ class AddUserToGroup(command.Command): class CheckUserInGroup(command.Command): - """Checks that user is in a specific group""" + """Check user in group""" log = logging.getLogger(__name__ + '.CheckUserInGroup') @@ -77,12 +77,12 @@ class CheckUserInGroup(command.Command): parser.add_argument( 'group', metavar='<group>', - help='Group name or ID that user will be added to', + help='Group to check if user belongs to (name or ID)', ) parser.add_argument( 'user', metavar='<user>', - help='User name or ID to add to group', + help='User to check (name or ID)', ) return parser @@ -106,7 +106,7 @@ class CheckUserInGroup(command.Command): class CreateGroup(show.ShowOne): - """Create group command""" + """Create new group""" log = logging.getLogger(__name__ + '.CreateGroup') @@ -118,11 +118,11 @@ class CreateGroup(show.ShowOne): help='New group name') parser.add_argument( '--description', - metavar='<group-description>', + metavar='<description>', help='New group description') parser.add_argument( '--domain', - metavar='<group-domain>', + metavar='<domain>', help='References the domain ID or name which owns the group') parser.add_argument( '--or-show', @@ -159,16 +159,17 @@ class CreateGroup(show.ShowOne): class DeleteGroup(command.Command): - """Delete group command""" + """Delete group(s)""" log = logging.getLogger(__name__ + '.DeleteGroup') def get_parser(self, prog_name): parser = super(DeleteGroup, self).get_parser(prog_name) parser.add_argument( - 'group', + 'groups', metavar='<group>', - help='Name or ID of group to delete') + nargs="+", + help='Group(s) to delete (name or ID)') parser.add_argument( '--domain', metavar='<domain>', @@ -180,16 +181,18 @@ class DeleteGroup(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + domain = None if parsed_args.domain: domain = common.find_domain(identity_client, parsed_args.domain) - group = utils.find_resource(identity_client.groups, - parsed_args.group, - domain_id=domain.id) - else: - group = utils.find_resource(identity_client.groups, - parsed_args.group) - - identity_client.groups.delete(group.id) + for group in parsed_args.groups: + if domain is not None: + group_obj = utils.find_resource(identity_client.groups, + group, + domain_id=domain.id) + else: + group_obj = utils.find_resource(identity_client.groups, + group) + identity_client.groups.delete(group_obj.id) return @@ -265,12 +268,12 @@ class RemoveUserFromGroup(command.Command): parser.add_argument( 'group', metavar='<group>', - help='Group name or ID that user will be removed from', + help='Group that user will be removed from (name or ID)', ) parser.add_argument( 'user', metavar='<user>', - help='User name or ID to remove from group', + help='User to remove from group (name or ID)', ) return parser @@ -294,7 +297,7 @@ class RemoveUserFromGroup(command.Command): class SetGroup(command.Command): - """Set group command""" + """Set group properties""" log = logging.getLogger(__name__ + '.SetGroup') @@ -303,18 +306,18 @@ class SetGroup(command.Command): parser.add_argument( 'group', metavar='<group>', - help='Name or ID of group to change') + help='Group to modify (name or ID)') parser.add_argument( '--name', - metavar='<new-group-name>', + metavar='<name>', help='New group name') parser.add_argument( '--domain', - metavar='<group-domain>', - help='New domain name or ID that will now own the group') + metavar='<domain>', + help='New domain that will now own the group (name or ID)') parser.add_argument( '--description', - metavar='<group-description>', + metavar='<description>', help='New group description') return parser @@ -338,7 +341,7 @@ class SetGroup(command.Command): class ShowGroup(show.ShowOne): - """Show group command""" + """Show group details""" log = logging.getLogger(__name__ + '.ShowGroup') @@ -347,7 +350,7 @@ class ShowGroup(show.ShowOne): parser.add_argument( 'group', metavar='<group>', - help='Name or ID of group to display', + help='Group to display (name or ID)', ) parser.add_argument( '--domain', diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 42412e41..28eb4277 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -117,16 +117,17 @@ class CreateProject(show.ShowOne): class DeleteProject(command.Command): - """Delete an existing project""" + """Delete project(s)""" log = logging.getLogger(__name__ + '.DeleteProject') def get_parser(self, prog_name): parser = super(DeleteProject, self).get_parser(prog_name) parser.add_argument( - 'project', + 'projects', metavar='<project>', - help='Project to delete (name or ID)', + nargs="+", + help='Project(s) to delete (name or ID)', ) parser.add_argument( '--domain', @@ -139,16 +140,18 @@ class DeleteProject(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + domain = None if parsed_args.domain: domain = common.find_domain(identity_client, parsed_args.domain) - project = utils.find_resource(identity_client.projects, - parsed_args.project, - domain_id=domain.id) - else: - project = utils.find_resource(identity_client.projects, - parsed_args.project) - - identity_client.projects.delete(project.id) + for project in parsed_args.projects: + if domain is not None: + project_obj = utils.find_resource(identity_client.projects, + project, + domain_id=domain.id) + else: + project_obj = utils.find_resource(identity_client.projects, + project) + identity_client.projects.delete(project_obj.id) return diff --git a/openstackclient/identity/v3/region.py b/openstackclient/identity/v3/region.py index cce3417d..5fb73913 100644 --- a/openstackclient/identity/v3/region.py +++ b/openstackclient/identity/v3/region.py @@ -35,22 +35,22 @@ class CreateRegion(show.ShowOne): # seems like poor UX, we will only support user-defined IDs. parser.add_argument( 'region', - metavar='<region>', - help=_('New region'), + metavar='<region-id>', + help=_('New region ID'), ) parser.add_argument( '--parent-region', - metavar='<parent-region>', - help=_('The parent region of new region'), + metavar='<region-id>', + help=_('Parent region ID'), ) parser.add_argument( '--description', - metavar='<region-description>', + metavar='<description>', help=_('New region description'), ) parser.add_argument( '--url', - metavar='<region-url>', + metavar='<url>', help=_('New region url'), ) @@ -82,8 +82,8 @@ class DeleteRegion(command.Command): parser = super(DeleteRegion, self).get_parser(prog_name) parser.add_argument( 'region', - metavar='<region>', - help=_('Region to delete'), + metavar='<region-id>', + help=_('Region ID to delete'), ) return parser @@ -104,8 +104,8 @@ class ListRegion(lister.Lister): parser = super(ListRegion, self).get_parser(prog_name) parser.add_argument( '--parent-region', - metavar='<parent-region>', - help=_('Filter by parent region'), + metavar='<region-id>', + help=_('Filter by parent region ID'), ) return parser @@ -137,22 +137,22 @@ class SetRegion(command.Command): parser = super(SetRegion, self).get_parser(prog_name) parser.add_argument( 'region', - metavar='<region>', - help=_('Region to change'), + metavar='<region-id>', + help=_('Region ID to modify'), ) parser.add_argument( '--parent-region', - metavar='<parent-region>', - help=_('New parent region of the region'), + metavar='<region-id>', + help=_('New parent region ID'), ) parser.add_argument( '--description', - metavar='<region-description>', + metavar='<description>', help=_('New region description'), ) parser.add_argument( '--url', - metavar='<region-url>', + metavar='<url>', help=_('New region url'), ) return parser @@ -179,7 +179,7 @@ class SetRegion(command.Command): class ShowRegion(show.ShowOne): - """Show region""" + """Display region details""" log = logging.getLogger(__name__ + '.ShowRegion') @@ -187,8 +187,8 @@ class ShowRegion(show.ShowOne): parser = super(ShowRegion, self).get_parser(prog_name) parser.add_argument( 'region', - metavar='<region>', - help=_('Region to display'), + metavar='<region-id>', + help=_('Region ID to display'), ) return parser diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py index f86854bc..d680278e 100644 --- a/openstackclient/identity/v3/role.py +++ b/openstackclient/identity/v3/role.py @@ -177,16 +177,17 @@ class CreateRole(show.ShowOne): class DeleteRole(command.Command): - """Delete an existing role""" + """Delete role(s)""" log = logging.getLogger(__name__ + '.DeleteRole') def get_parser(self, prog_name): parser = super(DeleteRole, self).get_parser(prog_name) parser.add_argument( - 'role', + 'roles', metavar='<role>', - help='Role to delete (name or ID)', + nargs="+", + help='Role(s) to delete (name or ID)', ) return parser @@ -194,12 +195,12 @@ class DeleteRole(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity - role = utils.find_resource( - identity_client.roles, - parsed_args.role, - ) - - identity_client.roles.delete(role.id) + for role in parsed_args.roles: + role_obj = utils.find_resource( + identity_client.roles, + role, + ) + identity_client.roles.delete(role_obj.id) return diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py index 5cc97e8d..f053b608 100644 --- a/openstackclient/identity/v3/role_assignment.py +++ b/openstackclient/identity/v3/role_assignment.py @@ -21,7 +21,7 @@ from openstackclient.common import utils class ListRoleAssignment(lister.Lister): - """Lists role assignments according to the given filters""" + """List role assignments""" log = logging.getLogger(__name__ + '.ListRoleAssignment') @@ -36,29 +36,29 @@ class ListRoleAssignment(lister.Lister): parser.add_argument( '--role', metavar='<role>', - help='Name or ID of role to filter', + help='Role to filter (name or ID)', ) user_or_group = parser.add_mutually_exclusive_group() user_or_group.add_argument( '--user', metavar='<user>', - help='Name or ID of user to filter', + help='User to filter (name or ID)', ) user_or_group.add_argument( '--group', metavar='<group>', - help='Name or ID of group to filter', + help='Group to filter (name or ID)', ) domain_or_project = parser.add_mutually_exclusive_group() domain_or_project.add_argument( '--domain', metavar='<domain>', - help='Name or ID of domain to filter', + help='Domain to filter (name or ID)', ) domain_or_project.add_argument( '--project', metavar='<project>', - help='Name or ID of project to filter', + help='Project to filter (name or ID)', ) return parser diff --git a/openstackclient/identity/v3/service.py b/openstackclient/identity/v3/service.py index 4f622269..f4c5d426 100644 --- a/openstackclient/identity/v3/service.py +++ b/openstackclient/identity/v3/service.py @@ -43,6 +43,11 @@ class CreateService(show.ShowOne): metavar='<service-name>', help='New service name', ) + parser.add_argument( + '--description', + metavar='<description>', + help='New service description', + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', @@ -67,6 +72,7 @@ class CreateService(show.ShowOne): service = identity_client.services.create( name=parsed_args.name, type=parsed_args.type, + description=parsed_args.description, enabled=enabled, ) @@ -137,6 +143,11 @@ class SetService(command.Command): metavar='<service-name>', help='New service name', ) + parser.add_argument( + '--description', + metavar='<description>', + help='New service description', + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', @@ -156,6 +167,7 @@ class SetService(command.Command): if (not parsed_args.name and not parsed_args.type + and not parsed_args.description and not parsed_args.enable and not parsed_args.disable): return @@ -167,6 +179,8 @@ class SetService(command.Command): kwargs['type'] = parsed_args.type if parsed_args.name: kwargs['name'] = parsed_args.name + if parsed_args.description: + kwargs['description'] = parsed_args.description if parsed_args.enable: kwargs['enabled'] = True if parsed_args.disable: diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py index 037af70e..a60c8c83 100644 --- a/openstackclient/identity/v3/user.py +++ b/openstackclient/identity/v3/user.py @@ -15,6 +15,7 @@ """Identity v3 User action implementations""" +import copy import logging import six @@ -137,16 +138,17 @@ class CreateUser(show.ShowOne): class DeleteUser(command.Command): - """Delete user""" + """Delete user(s)""" log = logging.getLogger(__name__ + '.DeleteUser') def get_parser(self, prog_name): parser = super(DeleteUser, self).get_parser(prog_name) parser.add_argument( - 'user', + 'users', metavar='<user>', - help='User to delete (name or ID)', + nargs="+", + help='User(s) to delete (name or ID)', ) parser.add_argument( '--domain', @@ -159,16 +161,18 @@ class DeleteUser(command.Command): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + domain = None if parsed_args.domain: domain = common.find_domain(identity_client, parsed_args.domain) - user = utils.find_resource(identity_client.users, - parsed_args.user, - domain_id=domain.id) - else: - user = utils.find_resource(identity_client.users, - parsed_args.user) - - identity_client.users.delete(user.id) + for user in parsed_args.users: + if domain is not None: + user_obj = utils.find_resource(identity_client.users, + user, + domain_id=domain.id) + else: + user_obj = utils.find_resource(identity_client.users, + user) + identity_client.users.delete(user_obj.id) return @@ -217,17 +221,21 @@ class ListUser(lister.Lister): # List users if parsed_args.long: - columns = ('ID', 'Name', 'Project Id', 'Domain Id', - 'Description', 'Email', 'Enabled') + columns = ['ID', 'Name', 'Default Project Id', 'Domain Id', + 'Description', 'Email', 'Enabled'] + column_headers = copy.deepcopy(columns) + column_headers[2] = 'Project' + column_headers[3] = 'Domain' else: - columns = ('ID', 'Name') + columns = ['ID', 'Name'] + column_headers = copy.deepcopy(columns) data = identity_client.users.list( domain=domain, group=group, ) return ( - columns, + column_headers, (utils.get_item_properties( s, columns, formatters={}, |
