diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2014-06-19 12:38:30 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2014-06-19 13:00:02 -0500 |
| commit | 9dd3a5326c0fe04df3b4224754fd02351a4623c9 (patch) | |
| tree | dbb94751fb72d158eea397e0ca79473188693066 /openstackclient/identity/v3 | |
| parent | c6cc1d72d50404b5921b9d451afcb513ad98ff9a (diff) | |
| download | python-openstackclient-9dd3a5326c0fe04df3b4224754fd02351a4623c9.tar.gz | |
Complete Identity v3 list command filters
Complete the 'group list' and 'user list' filter options following
the refactor in https://review.openstack.org/69878
Change-Id: Ib4af417c56d4f7da4b88852f191af615cc7fa2ec
Diffstat (limited to 'openstackclient/identity/v3')
| -rw-r--r-- | openstackclient/identity/v3/group.py | 47 | ||||
| -rw-r--r-- | openstackclient/identity/v3/user.py | 50 |
2 files changed, 74 insertions, 23 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py index c5a44017..4eb14489 100644 --- a/openstackclient/identity/v3/group.py +++ b/openstackclient/identity/v3/group.py @@ -164,17 +164,21 @@ class DeleteGroup(command.Command): class ListGroup(lister.Lister): - """List groups and optionally roles assigned to groups""" + """List groups""" log = logging.getLogger(__name__ + '.ListGroup') def get_parser(self, prog_name): parser = super(ListGroup, self).get_parser(prog_name) parser.add_argument( - 'group', - metavar='<group>', - nargs='?', - help='Name or ID of group to list [required with --role]', + '--domain', + metavar='<domain>', + help='Filter group list by <domain>', + ) + parser.add_argument( + '--user', + metavar='<user>', + help='List group memberships for <user> (name or ID)', ) parser.add_argument( '--long', @@ -188,18 +192,39 @@ class ListGroup(lister.Lister): self.log.debug('take_action(%s)', parsed_args) identity_client = self.app.client_manager.identity + if parsed_args.domain: + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ).id + else: + domain = None + + if parsed_args.user: + user = utils.find_resource( + identity_client.users, + parsed_args.user, + ).id + else: + user = None + # List groups if parsed_args.long: columns = ('ID', 'Name', 'Domain ID', 'Description') else: columns = ('ID', 'Name') - data = identity_client.groups.list() + data = identity_client.groups.list( + domain=domain, + user=user, + ) - return (columns, - (utils.get_item_properties( - s, columns, - formatters={}, - ) for s in data)) + return ( + columns, + (utils.get_item_properties( + s, columns, + formatters={}, + ) for s in data) + ) class RemoveUserFromGroup(command.Command): diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py index c4adb225..38c34973 100644 --- a/openstackclient/identity/v3/user.py +++ b/openstackclient/identity/v3/user.py @@ -148,17 +148,21 @@ class DeleteUser(command.Command): class ListUser(lister.Lister): - """List users and optionally roles assigned to users""" + """List users""" log = logging.getLogger(__name__ + '.ListUser') def get_parser(self, prog_name): parser = super(ListUser, self).get_parser(prog_name) parser.add_argument( - 'user', - metavar='<user>', - nargs='?', - help='Name or ID of user to list [required with --role]', + '--domain', + metavar='<domain>', + help='Filter group list by <domain>', + ) + parser.add_argument( + '--group', + metavar='<group>', + help='List memberships of <group> (name or ID)', ) parser.add_argument( '--long', @@ -169,7 +173,24 @@ class ListUser(lister.Lister): 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.domain: + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ).id + else: + domain = None + + if parsed_args.group: + group = utils.find_resource( + identity_client.groups, + parsed_args.group, + ).id + else: + group = None # List users if parsed_args.long: @@ -177,13 +198,18 @@ class ListUser(lister.Lister): 'Description', 'Email', 'Enabled') else: columns = ('ID', 'Name') - data = self.app.client_manager.identity.users.list() + data = identity_client.users.list( + domain=domain, + group=group, + ) - return (columns, - (utils.get_item_properties( - s, columns, - formatters={}, - ) for s in data)) + return ( + columns, + (utils.get_item_properties( + s, columns, + formatters={}, + ) for s in data) + ) class SetUser(command.Command): |
