Fix quota show --default command
Work around a bug in OpenStack SDK 0.9.11 and 0.9.12 that causes quota show --default to fail. This can be removed when the proposed SDK fix (https://review.openstack.org/420301) is reelased and in the minimum SDK version in global requirements. quota set --network is still broken, I can't fix it at the moment... Closes-bug: 1656572 Change-Id: Ice77e14782c33e672176afbab36bba95b73d7a11
This commit is contained in:
parent
339ab40ee6
commit
819526591e
@ -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
|
||||
|
@ -35,19 +35,16 @@ class QuotaTests(base.TestCase):
|
||||
raw_output = self.openstack('quota show ' + self.PROJECT_NAME + opts)
|
||||
self.assertEqual("11\n11\n11\n", raw_output)
|
||||
|
||||
@testtools.skip('broken SDK testing')
|
||||
def test_quota_show(self):
|
||||
raw_output = self.openstack('quota show ' + self.PROJECT_NAME)
|
||||
for expected_field in self.EXPECTED_FIELDS:
|
||||
self.assertIn(expected_field, raw_output)
|
||||
|
||||
@testtools.skip('broken SDK testing')
|
||||
def test_quota_show_default_project(self):
|
||||
raw_output = self.openstack('quota show')
|
||||
for expected_field in self.EXPECTED_FIELDS:
|
||||
self.assertIn(expected_field, raw_output)
|
||||
|
||||
@testtools.skip('broken SDK testing')
|
||||
def test_quota_show_with_default_option(self):
|
||||
raw_output = self.openstack('quota show --default')
|
||||
for expected_field in self.EXPECTED_FIELDS:
|
||||
|
6
releasenotes/notes/bug-1656572-b40303ae50a41000.yaml
Normal file
6
releasenotes/notes/bug-1656572-b40303ae50a41000.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Work around a bug in OpenStackSDK 0.9.11 and 0.9.12 that causes
|
||||
``quota show --default`` to fail.
|
||||
[Bug `1656572 <https://bugs.launchpad.net/python-openstackclient/+bug/1656572>`_]
|
Loading…
Reference in New Issue
Block a user