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 itertools
|
||||||
import sys
|
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.command import command
|
||||||
from osc_lib import utils
|
from osc_lib import utils
|
||||||
import six
|
import six
|
||||||
@ -251,7 +253,39 @@ class ShowQuota(command.ShowOne):
|
|||||||
project = self._get_project(parsed_args)
|
project = self._get_project(parsed_args)
|
||||||
client = self.app.client_manager.network
|
client = self.app.client_manager.network
|
||||||
if parsed_args.default:
|
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:
|
else:
|
||||||
network_quota = client.get_quota(project)
|
network_quota = client.get_quota(project)
|
||||||
return network_quota
|
return network_quota
|
||||||
|
@ -35,19 +35,16 @@ class QuotaTests(base.TestCase):
|
|||||||
raw_output = self.openstack('quota show ' + self.PROJECT_NAME + opts)
|
raw_output = self.openstack('quota show ' + self.PROJECT_NAME + opts)
|
||||||
self.assertEqual("11\n11\n11\n", raw_output)
|
self.assertEqual("11\n11\n11\n", raw_output)
|
||||||
|
|
||||||
@testtools.skip('broken SDK testing')
|
|
||||||
def test_quota_show(self):
|
def test_quota_show(self):
|
||||||
raw_output = self.openstack('quota show ' + self.PROJECT_NAME)
|
raw_output = self.openstack('quota show ' + self.PROJECT_NAME)
|
||||||
for expected_field in self.EXPECTED_FIELDS:
|
for expected_field in self.EXPECTED_FIELDS:
|
||||||
self.assertIn(expected_field, raw_output)
|
self.assertIn(expected_field, raw_output)
|
||||||
|
|
||||||
@testtools.skip('broken SDK testing')
|
|
||||||
def test_quota_show_default_project(self):
|
def test_quota_show_default_project(self):
|
||||||
raw_output = self.openstack('quota show')
|
raw_output = self.openstack('quota show')
|
||||||
for expected_field in self.EXPECTED_FIELDS:
|
for expected_field in self.EXPECTED_FIELDS:
|
||||||
self.assertIn(expected_field, raw_output)
|
self.assertIn(expected_field, raw_output)
|
||||||
|
|
||||||
@testtools.skip('broken SDK testing')
|
|
||||||
def test_quota_show_with_default_option(self):
|
def test_quota_show_with_default_option(self):
|
||||||
raw_output = self.openstack('quota show --default')
|
raw_output = self.openstack('quota show --default')
|
||||||
for expected_field in self.EXPECTED_FIELDS:
|
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