diff options
| author | Qiu Yu <qiuyu@ebaysf.com> | 2014-01-29 22:54:01 +0800 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2014-06-13 15:20:42 -0500 |
| commit | f78a3f1653c634e40071fb96750b9ca64865c058 (patch) | |
| tree | 2417adb17de522485924cc0adc90cce796006ceb /openstackclient/identity/v3/group.py | |
| parent | 7f6a901d011ae366a5dea6fa7e532ab941125e9e (diff) | |
| download | python-openstackclient-f78a3f1653c634e40071fb96750b9ca64865c058.tar.gz | |
Refactor role list subcommand for identity v3 api
Currently parts of user list and group list command are actually
functioning as role listing, which is quite counter intuitive and
misleading.
This refactor change move role related logic to a single place of role
list command. It now allows role grants listing for user/group +
domain/project combinations.
If no user or group specified, it will list all roles in the system,
which is the default behaviour.
Change-Id: I4ced6df4b76f018d01000d28b4281ad9f252ffcc
Diffstat (limited to 'openstackclient/identity/v3/group.py')
| -rw-r--r-- | openstackclient/identity/v3/group.py | 80 |
1 files changed, 5 insertions, 75 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py index f51129c9..c5a44017 100644 --- a/openstackclient/identity/v3/group.py +++ b/openstackclient/identity/v3/group.py @@ -177,23 +177,6 @@ class ListGroup(lister.Lister): help='Name or ID of group to list [required with --role]', ) parser.add_argument( - '--role', - action='store_true', - default=False, - help='List the roles assigned to <group>', - ) - domain_or_project = parser.add_mutually_exclusive_group() - domain_or_project.add_argument( - '--domain', - metavar='<domain>', - help='Filter list by <domain> [Only valid with --role]', - ) - domain_or_project.add_argument( - '--project', - metavar='<project>', - help='Filter list by <project> [Only valid with --role]', - ) - parser.add_argument( '--long', action='store_true', default=False, @@ -205,65 +188,12 @@ class ListGroup(lister.Lister): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity - if parsed_args.role: - # List roles belonging to group - - # Group is required here, bail if it is not supplied - if not parsed_args.group: - sys.stderr.write('Error: Group must be specified') - # TODO(dtroyer): This lists the commands...I want it to - # show the help for _this_ command. - self.app.DeferredHelpAction( - self.app.parser, - self.app.parser, - None, - None, - ) - return ([], []) - - group = utils.find_resource( - identity_client.groups, - parsed_args.group, - ) - - if parsed_args.domain: - columns = ('ID', 'Name', 'Domain', 'Group') - domain = utils.find_resource( - identity_client.domains, - parsed_args.domain, - ) - data = identity_client.roles.list( - group=group, - domain=domain, - ) - for group_role in data: - group_role.group = group.name - group_role.domain = domain.name - elif parsed_args.project: - columns = ('ID', 'Name', 'Project', 'Group') - project = utils.find_resource( - identity_client.projects, - parsed_args.project, - ) - data = identity_client.roles.list( - group=group, - project=project, - ) - for group_role in data: - group_role.group = group.name - group_role.project = project.name - else: - # TODO(dtroyer): raise exception here, this really is an error - sys.stderr.write("Error: Must specify --domain or --project " - "with --role\n") - return ([], []) + # List groups + if parsed_args.long: + columns = ('ID', 'Name', 'Domain ID', 'Description') else: - # List groups - if parsed_args.long: - columns = ('ID', 'Name', 'Domain ID', 'Description') - else: - columns = ('ID', 'Name') - data = identity_client.groups.list() + columns = ('ID', 'Name') + data = identity_client.groups.list() return (columns, (utils.get_item_properties( |
