Skip to content

Commit 72fe3e2

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Fix showing network quotas for a project"
2 parents 180ba2f + 5d1a933 commit 72fe3e2

3 files changed

Lines changed: 37 additions & 11 deletions

File tree

openstackclient/common/quota.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,13 @@ def get_compute_volume_quota(self, client, parsed_args):
188188
def get_network_quota(self, parsed_args):
189189
if parsed_args.quota_class or parsed_args.default:
190190
return {}
191-
service_catalog = self.app.client_manager.auth_ref.service_catalog
192-
if 'network' in service_catalog.get_endpoints():
193-
network_client = self.app.client_manager.network
194-
return network_client.show_quota(parsed_args.project)['quota']
191+
if self.app.client_manager.is_network_endpoint_enabled():
192+
identity_client = self.app.client_manager.identity
193+
project = utils.find_resource(
194+
identity_client.projects,
195+
parsed_args.project,
196+
).id
197+
return self.app.client_manager.network.get_quota(project)
195198
else:
196199
return {}
197200

openstackclient/tests/common/test_quota.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,15 @@ def setUp(self):
214214
loaded=True,
215215
)
216216

217-
self.service_catalog_mock.get_endpoints.return_value = [
218-
fakes.FakeResource(
219-
None,
220-
copy.deepcopy(identity_fakes.ENDPOINT),
221-
loaded=True,
222-
)
223-
]
217+
fake_network_endpoint = fakes.FakeResource(
218+
None,
219+
copy.deepcopy(identity_fakes.ENDPOINT),
220+
loaded=True,
221+
)
222+
223+
self.service_catalog_mock.get_endpoints.return_value = {
224+
'network': fake_network_endpoint
225+
}
224226

225227
self.quotas_class_mock.get.return_value = FakeQuotaResource(
226228
None,
@@ -244,6 +246,8 @@ def setUp(self):
244246
endpoint=fakes.AUTH_URL,
245247
token=fakes.AUTH_TOKEN,
246248
)
249+
self.network = self.app.client_manager.network
250+
self.network.get_quota = mock.Mock(return_value=network_fakes.QUOTA)
247251

248252
self.cmd = quota.ShowQuota(self.app, None)
249253

@@ -260,6 +264,9 @@ def test_quota_show(self):
260264
self.cmd.take_action(parsed_args)
261265

262266
self.quotas_mock.get.assert_called_with(identity_fakes.project_id)
267+
self.volume_quotas_mock.get.assert_called_with(
268+
identity_fakes.project_id)
269+
self.network.get_quota.assert_called_with(identity_fakes.project_id)
263270

264271
def test_quota_show_with_default(self):
265272
arglist = [
@@ -276,6 +283,8 @@ def test_quota_show_with_default(self):
276283
self.cmd.take_action(parsed_args)
277284

278285
self.quotas_mock.defaults.assert_called_with(identity_fakes.project_id)
286+
self.volume_quotas_mock.defaults.assert_called_with(
287+
identity_fakes.project_id)
279288

280289
def test_quota_show_with_class(self):
281290
arglist = [
@@ -293,3 +302,5 @@ def test_quota_show_with_class(self):
293302

294303
self.quotas_class_mock.get.assert_called_with(
295304
identity_fakes.project_id)
305+
self.volume_quotas_class_mock.get.assert_called_with(
306+
identity_fakes.project_id)

openstackclient/tests/network/v2/fakes.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@
2626
extension_alias = 'Dystopian'
2727
extension_links = '[{"href":''"https://github.com/os/network", "type"}]'
2828

29+
QUOTA = {
30+
"subnet": 10,
31+
"network": 10,
32+
"floatingip": 50,
33+
"subnetpool": -1,
34+
"security_group_rule": 100,
35+
"security_group": 10,
36+
"router": 10,
37+
"rbac_policy": -1,
38+
"port": 50,
39+
}
40+
2941

3042
def create_extension():
3143
extension = mock.Mock()

0 commit comments

Comments
 (0)