diff options
| author | Jenkins <jenkins@review.openstack.org> | 2017-01-15 05:51:42 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2017-01-15 05:51:42 +0000 |
| commit | 368666194bb11e1543fb683e8b42729620a69aac (patch) | |
| tree | 48bb5b434c49a26432523b427a1d280932173e20 /openstackclient/common | |
| parent | 4c5cea46bed0812c090cb6732fc9bc4a8dead387 (diff) | |
| parent | 819526591ee2cdbf7f138a08f9c38b9c804e5d31 (diff) | |
| download | python-openstackclient-368666194bb11e1543fb683e8b42729620a69aac.tar.gz | |
Merge "Fix quota show --default command"
Diffstat (limited to 'openstackclient/common')
| -rw-r--r-- | openstackclient/common/quota.py | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py index afc6195f..fa6c5765 100644 --- a/openstackclient/common/quota.py +++ b/openstackclient/common/quota.py @@ -18,6 +18,8 @@ import itertools import sys +from openstack import exceptions as sdk_exceptions +from openstack.network.v2 import quota as _quota from osc_lib.command import command from osc_lib import utils import six @@ -251,7 +253,39 @@ class ShowQuota(command.ShowOne): project = self._get_project(parsed_args) client = self.app.client_manager.network if parsed_args.default: - network_quota = client.get_quota_default(project) + # TODO(dtroyer): Remove the top of this if block once the + # fixed SDK QuotaDefault class is the minimum + # required version. This is expected to be + # SDK release 0.9.13 + if hasattr(_quota.QuotaDefault, 'project'): + # hack 0.9.11+ + quotadef_obj = client._get_resource( + _quota.QuotaDefault, + project, + ) + quotadef_obj.base_path = quotadef_obj.base_path % { + 'project': project, + } + try: + network_quota = quotadef_obj.get( + client.session, + requires_id=False, + ) + except sdk_exceptions.NotFoundException as e: + raise sdk_exceptions.ResourceNotFound( + message="No %s found for %s" % + (_quota.QuotaDefault.__name__, project), + details=e.details, + response=e.response, + request_id=e.request_id, + url=e.url, + method=e.method, + http_status=e.http_status, + cause=e.cause, + ) + # end hack-around + else: + network_quota = client.get_quota_default(project) else: network_quota = client.get_quota(project) return network_quota |
