summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-19 06:15:08 +0000
committerGerrit Code Review <review@openstack.org>2015-04-19 06:15:08 +0000
commit61fb68e8b3203ee9b8cfb0c95857f36bd81351a4 (patch)
tree6510dbdde5ae972d7c3e02bd22b8ae7cb3bb55b3 /openstackclient
parenta5e79d58ae508e218a113bfa3976fae369980688 (diff)
parent77e3fbae1a866e05219d272f9c3bdbaaa8030854 (diff)
downloadpython-openstackclient-61fb68e8b3203ee9b8cfb0c95857f36bd81351a4.tar.gz
Merge "Add support for showing limits of a specific project"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/limits.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/openstackclient/common/limits.py b/openstackclient/common/limits.py
index 9c9458ab..4abcf169 100644
--- a/openstackclient/common/limits.py
+++ b/openstackclient/common/limits.py
@@ -21,6 +21,7 @@ import logging
from cliff import lister
from openstackclient.common import utils
+from openstackclient.identity import common as identity_common
class ShowLimits(lister.Lister):
@@ -49,6 +50,18 @@ class ShowLimits(lister.Lister):
action="store_true",
default=False,
help="Include reservations count [only valid with --absolute]")
+ parser.add_argument(
+ '--project',
+ metavar='<project>',
+ help='Show limits for a specific project (name or ID)'
+ ' [only valid with --absolute]',
+ )
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain that owns --project (name or ID)'
+ ' [only valid with --absolute]',
+ )
return parser
def take_action(self, parsed_args):
@@ -57,7 +70,21 @@ class ShowLimits(lister.Lister):
compute_client = self.app.client_manager.compute
volume_client = self.app.client_manager.volume
- compute_limits = compute_client.limits.get(parsed_args.is_reserved)
+ project_id = None
+ if parsed_args.project is not None:
+ identity_client = self.app.client_manager.identity
+ if parsed_args.domain is not None:
+ domain = identity_common.find_domain(identity_client,
+ parsed_args.domain)
+ project_id = utils.find_resource(identity_client.projects,
+ parsed_args.project,
+ domain_id=domain.id).id
+ else:
+ project_id = utils.find_resource(identity_client.projects,
+ parsed_args.project).id
+
+ compute_limits = compute_client.limits.get(parsed_args.is_reserved,
+ tenant_id=project_id)
volume_limits = volume_client.limits.get()
if parsed_args.is_absolute: