summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v3
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2014-06-19 12:38:30 -0500
committerDean Troyer <dtroyer@gmail.com>2014-06-19 13:00:02 -0500
commit9dd3a5326c0fe04df3b4224754fd02351a4623c9 (patch)
treedbb94751fb72d158eea397e0ca79473188693066 /openstackclient/identity/v3
parentc6cc1d72d50404b5921b9d451afcb513ad98ff9a (diff)
downloadpython-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.py47
-rw-r--r--openstackclient/identity/v3/user.py50
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):