summaryrefslogtreecommitdiff
path: root/openstackclient/identity
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-06-20 15:46:39 +0000
committerGerrit Code Review <review@openstack.org>2014-06-20 15:46:39 +0000
commit23f64a469a5ba77b2d06e10dc4e6c7d318f11835 (patch)
treee4a37f1faa7d4f359bf6ec54a73ce661b5cc0503 /openstackclient/identity
parent3019f11032459c10efea152186bd630479867f37 (diff)
parent9dd3a5326c0fe04df3b4224754fd02351a4623c9 (diff)
downloadpython-openstackclient-23f64a469a5ba77b2d06e10dc4e6c7d318f11835.tar.gz
Merge "Complete Identity v3 list command filters"
Diffstat (limited to 'openstackclient/identity')
-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):