diff options
| author | Steve Martinelli <stevemar@ca.ibm.com> | 2015-04-03 02:26:22 -0400 |
|---|---|---|
| committer | Steve Martinelli <stevemar@ca.ibm.com> | 2015-04-03 02:26:22 -0400 |
| commit | 77e3fbae1a866e05219d272f9c3bdbaaa8030854 (patch) | |
| tree | 3a29927a5f146a6f9b1e40e7469de5a267da2302 /openstackclient/common | |
| parent | d5f2c50c0f2de6d741f86113fc5260bdb7895102 (diff) | |
| download | python-openstackclient-77e3fbae1a866e05219d272f9c3bdbaaa8030854.tar.gz | |
Add support for showing limits of a specific project
Looks like the option to show limits of a specific project was
missing. This resulted in always using the authenticated project.
Change-Id: I512a05df20860ffb52af34f3b64c9eb81dae8c61
Closes-Bug: 1438379
Diffstat (limited to 'openstackclient/common')
| -rw-r--r-- | openstackclient/common/limits.py | 29 |
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: |
