diff options
| author | Jude Cross <jucross@blizzard.com> | 2018-04-02 15:07:25 -0700 |
|---|---|---|
| committer | Jude Cross <jucross@blizzard.com> | 2018-04-03 00:47:00 -0700 |
| commit | 24b06ef273e193819624fd2e021282d2735977b0 (patch) | |
| tree | 464eb71b2a22377f1c7bce2b02486f686e2baebc /openstackclient/common/limits.py | |
| parent | 180d012ca728112e518e53230612fe22a722e4b9 (diff) | |
| download | python-openstackclient-24b06ef273e193819624fd2e021282d2735977b0.tar.gz | |
Fix limits show command without Nova and Cinder
This patch implements an endpoint lookup when showing limits. This
addresses the issue when showing limits without both Nova and Cinder
and will display limits if one is missing.
Change-Id: I2214b281e0206f8fe117aae52de2bf4c4e2c6525
Closes-bug: #1707960
Diffstat (limited to 'openstackclient/common/limits.py')
| -rw-r--r-- | openstackclient/common/limits.py | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/openstackclient/common/limits.py b/openstackclient/common/limits.py index 957f1d02..19db35d7 100644 --- a/openstackclient/common/limits.py +++ b/openstackclient/common/limits.py @@ -83,24 +83,34 @@ class ShowLimits(command.Lister): 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() + compute_limits = None + volume_limits = None + if self.app.client_manager.is_compute_endpoint_enabled(): + compute_limits = compute_client.limits.get(parsed_args.is_reserved, + tenant_id=project_id) + + if self.app.client_manager.is_volume_endpoint_enabled(volume_client): + volume_limits = volume_client.limits.get() + + data = [] if parsed_args.is_absolute: - compute_limits = compute_limits.absolute - volume_limits = volume_limits.absolute + if compute_limits: + data.append(compute_limits.absolute) + if volume_limits: + data.append(volume_limits.absolute) columns = ["Name", "Value"] return (columns, (utils.get_item_properties(s, columns) - for s in itertools.chain(compute_limits, volume_limits))) + for s in itertools.chain(*data))) elif parsed_args.is_rate: - compute_limits = compute_limits.rate - volume_limits = volume_limits.rate + if compute_limits: + data.append(compute_limits.rate) + if volume_limits: + data.append(volume_limits.rate) columns = ["Verb", "URI", "Value", "Remain", "Unit", "Next Available"] return (columns, (utils.get_item_properties(s, columns) - for s in itertools.chain(compute_limits, volume_limits))) - + for s in itertools.chain(*data))) else: - return ({}, {}) + return {}, {} |
