Skip to content

Commit 6f326ac

Browse files
committed
Support fetching network project default quota
Neutron server and openstacksdk had supported to fetch network project default quota, this patch add the CLI support in openstackclient. Change-Id: If0ef74c268c41a866c62156da0603a40ae4e6e31 Closes-Bug: #1204956 Depends-On: I6a4e2a146351dd1e7d652442511f1ef2c279da42
1 parent 320ed01 commit 6f326ac

4 files changed

Lines changed: 32 additions & 2 deletions

File tree

openstackclient/common/quota.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,16 @@ def get_compute_volume_quota(self, client, parsed_args):
247247
return quota._info
248248

249249
def get_network_quota(self, parsed_args):
250-
if parsed_args.quota_class or parsed_args.default:
250+
if parsed_args.quota_class:
251251
return {}
252252
if self.app.client_manager.is_network_endpoint_enabled():
253253
project = self._get_project(parsed_args)
254-
return self.app.client_manager.network.get_quota(project)
254+
client = self.app.client_manager.network
255+
if parsed_args.default:
256+
network_quota = client.get_quota_default(project)
257+
else:
258+
network_quota = client.get_quota(project)
259+
return network_quota
255260
else:
256261
return {}
257262

openstackclient/tests/functional/common/test_quota.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class QuotaTests(base.TestCase):
1717
"""Functional tests for quota. """
1818
# Test quota information for compute, network and volume.
1919
EXPECTED_FIELDS = ['instances', 'networks', 'volumes']
20+
EXPECTED_CLASS_FIELDS = ['instances', 'volumes']
2021
PROJECT_NAME = None
2122

2223
@classmethod
@@ -40,3 +41,13 @@ def test_quota_show_default_project(self):
4041
raw_output = self.openstack('quota show')
4142
for expected_field in self.EXPECTED_FIELDS:
4243
self.assertIn(expected_field, raw_output)
44+
45+
def test_quota_show_with_default_option(self):
46+
raw_output = self.openstack('quota show --default')
47+
for expected_field in self.EXPECTED_FIELDS:
48+
self.assertIn(expected_field, raw_output)
49+
50+
def test_quota_show_with_class_option(self):
51+
raw_output = self.openstack('quota show --class')
52+
for expected_field in self.EXPECTED_CLASS_FIELDS:
53+
self.assertIn(expected_field, raw_output)

openstackclient/tests/unit/common/test_quota.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,8 @@ def setUp(self):
383383
)
384384
self.network = self.app.client_manager.network
385385
self.network.get_quota = mock.Mock(return_value=network_fakes.QUOTA)
386+
self.network.get_quota_default = mock.Mock(
387+
return_value=network_fakes.QUOTA)
386388

387389
self.cmd = quota.ShowQuota(self.app, None)
388390

@@ -403,6 +405,7 @@ def test_quota_show(self):
403405
identity_fakes.project_id)
404406
self.network.get_quota.assert_called_once_with(
405407
identity_fakes.project_id)
408+
self.assertNotCalled(self.network.get_quota_default)
406409

407410
def test_quota_show_with_default(self):
408411
arglist = [
@@ -422,6 +425,9 @@ def test_quota_show_with_default(self):
422425
identity_fakes.project_id)
423426
self.volume_quotas_mock.defaults.assert_called_once_with(
424427
identity_fakes.project_id)
428+
self.network.get_quota_default.assert_called_once_with(
429+
identity_fakes.project_id)
430+
self.assertNotCalled(self.network.get_quota)
425431

426432
def test_quota_show_with_class(self):
427433
arglist = [
@@ -441,6 +447,8 @@ def test_quota_show_with_class(self):
441447
identity_fakes.project_id)
442448
self.volume_quotas_class_mock.get.assert_called_once_with(
443449
identity_fakes.project_id)
450+
self.assertNotCalled(self.network.get_quota)
451+
self.assertNotCalled(self.network.get_quota_default)
444452

445453
def test_quota_show_no_project(self):
446454
parsed_args = self.check_parser(self.cmd, [], [])
@@ -452,3 +460,4 @@ def test_quota_show_no_project(self):
452460
identity_fakes.project_id)
453461
self.network.get_quota.assert_called_once_with(
454462
identity_fakes.project_id)
463+
self.assertNotCalled(self.network.get_quota_default)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
features:
3+
- Supported to fetch network project default quota with command
4+
``quota show --default``.
5+
[Bug `1204956 <https://bugs.launchpad.net/neutron/+bug/1204956>`_]

0 commit comments

Comments
 (0)