summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorkafka <guowang@unitedstack.com>2015-08-12 12:07:34 +0800
committerSteve Martinelli <stevemar@ca.ibm.com>2015-09-08 18:36:56 +0000
commit10db0df857f8982110b67094f237384acda2fa3a (patch)
tree108648d772574e3f1e1f60cd60fb665df467a184 /openstackclient
parent66010b41f128d415aff6aedde3f21981117600a6 (diff)
downloadpython-openstackclient-10db0df857f8982110b67094f237384acda2fa3a.tar.gz
Add filtering by user for 'openstack server list'
Add a new option to search by user when listing servers, include support for domain scoped users, also update docs Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com> Closes-Bug: #1483974 Change-Id: Ifdade6dc9ca8400fbd85f6b55793ab15ed17b97d
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index a246a04d..30a1b063 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -700,6 +700,12 @@ class ListServer(lister.Lister):
help="Search by project (admin only) (name or ID)")
identity_common.add_project_domain_option_to_parser(parser)
parser.add_argument(
+ '--user',
+ metavar='<user>',
+ help=_('Search by user (admin only) (name or ID)'),
+ )
+ identity_common.add_user_domain_option_to_parser(parser)
+ parser.add_argument(
'--long',
action='store_true',
default=False,
@@ -710,10 +716,10 @@ class ListServer(lister.Lister):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
compute_client = self.app.client_manager.compute
+ identity_client = self.app.client_manager.identity
project_id = None
if parsed_args.project:
- identity_client = self.app.client_manager.identity
project_id = identity_common.find_project(
identity_client,
parsed_args.project,
@@ -721,6 +727,14 @@ class ListServer(lister.Lister):
).id
parsed_args.all_projects = True
+ user_id = None
+ if parsed_args.user:
+ user_id = identity_common.find_project(
+ identity_client,
+ parsed_args.user,
+ parsed_args.user_domain,
+ ).id
+
search_opts = {
'reservation_id': parsed_args.reservation_id,
'ip': parsed_args.ip,
@@ -733,6 +747,7 @@ class ListServer(lister.Lister):
'host': parsed_args.host,
'tenant_id': project_id,
'all_tenants': parsed_args.all_projects,
+ 'user_id': user_id,
}
self.log.debug('search options: %s', search_opts)