summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorAshish Singh <ashish.singh7@tcs.com>2015-08-27 17:07:09 +0530
committerDean Troyer <dtroyer@gmail.com>2015-09-08 13:27:50 -0500
commit66010b41f128d415aff6aedde3f21981117600a6 (patch)
treea194456e7f4f6a67d12a4a3b544d1b145d5dd7e0 /openstackclient
parentf14251669f96d6010581702417828f4380144aa2 (diff)
downloadpython-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.py18
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)