diff options
| author | Ashish Singh <ashish.singh7@tcs.com> | 2015-08-27 17:07:09 +0530 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2015-09-08 13:27:50 -0500 |
| commit | 66010b41f128d415aff6aedde3f21981117600a6 (patch) | |
| tree | a194456e7f4f6a67d12a4a3b544d1b145d5dd7e0 /openstackclient | |
| parent | f14251669f96d6010581702417828f4380144aa2 (diff) | |
| download | python-openstackclient-66010b41f128d415aff6aedde3f21981117600a6.tar.gz | |
Add support for listing servers of other projects
Added project and project-domain option to server list
command for listing servers based on project name or id
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Change-Id: Iaadfffe734ad8a72fa4b1eeb2222748c66f7fae0
Closes-Bug: #1488486
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 4efef975..a246a04d 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -36,6 +36,7 @@ from openstackclient.common import exceptions from openstackclient.common import parseractions from openstackclient.common import utils from openstackclient.i18n import _ # noqa +from openstackclient.identity import common as identity_common from openstackclient.network import common @@ -694,6 +695,11 @@ class ListServer(lister.Lister): help=_('Include all projects (admin only)'), ) parser.add_argument( + '--project', + metavar='<project>', + help="Search by project (admin only) (name or ID)") + identity_common.add_project_domain_option_to_parser(parser) + parser.add_argument( '--long', action='store_true', default=False, @@ -704,6 +710,17 @@ 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 + + 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, + parsed_args.project_domain, + ).id + parsed_args.all_projects = True + search_opts = { 'reservation_id': parsed_args.reservation_id, 'ip': parsed_args.ip, @@ -714,6 +731,7 @@ class ListServer(lister.Lister): 'flavor': parsed_args.flavor, 'image': parsed_args.image, 'host': parsed_args.host, + 'tenant_id': project_id, 'all_tenants': parsed_args.all_projects, } self.log.debug('search options: %s', search_opts) |
