Merge "Use correct cinder API version for tenant_absolute_limits"
This commit is contained in:
commit
8bbc18703d
@ -988,10 +988,24 @@ def qos_specs_list(request):
|
|||||||
return [QosSpecs(s) for s in qos_spec_list(request)]
|
return [QosSpecs(s) for s in qos_spec_list(request)]
|
||||||
|
|
||||||
|
|
||||||
|
def _cinderclient_with_limits_project_id_query(request):
|
||||||
|
version = get_microversion(request, ['limits_project_id_query'])
|
||||||
|
if version is None:
|
||||||
|
cinder_microversions = microversions.MICROVERSION_FEATURES['cinder']
|
||||||
|
LOG.warning('Insufficient microversion for GET limits with '
|
||||||
|
'project_id query. One of the following API micro '
|
||||||
|
'version is required: %s',
|
||||||
|
cinder_microversions['limits_project_id_query'])
|
||||||
|
else:
|
||||||
|
version = version.get_string()
|
||||||
|
return cinderclient(request, version=version)
|
||||||
|
|
||||||
|
|
||||||
@profiler.trace
|
@profiler.trace
|
||||||
@memoized
|
@memoized
|
||||||
def tenant_absolute_limits(request, tenant_id=None):
|
def tenant_absolute_limits(request, tenant_id=None):
|
||||||
limits = cinderclient(request).limits.get(tenant_id=tenant_id).absolute
|
_cinderclient = _cinderclient_with_limits_project_id_query(request)
|
||||||
|
limits = _cinderclient.limits.get(tenant_id=tenant_id).absolute
|
||||||
limits_dict = {}
|
limits_dict = {}
|
||||||
for limit in limits:
|
for limit in limits:
|
||||||
if limit.value < 0:
|
if limit.value < 0:
|
||||||
|
@ -39,7 +39,8 @@ MICROVERSION_FEATURES = {
|
|||||||
"cinder": {
|
"cinder": {
|
||||||
"groups": ["3.27", "3.43", "3.48"],
|
"groups": ["3.27", "3.43", "3.48"],
|
||||||
"consistency_groups": ["2.0", "3.10"],
|
"consistency_groups": ["2.0", "3.10"],
|
||||||
"message_list": ["3.5", "3.29"]
|
"message_list": ["3.5", "3.29"],
|
||||||
|
"limits_project_id_query": ["3.43", "3.50", "3.55"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,7 +394,8 @@ class CinderApiTests(test.APIMockTestCase):
|
|||||||
qos_associations_mock.assert_called_once_with(qos_specs_only_one[0].id)
|
qos_associations_mock.assert_called_once_with(qos_specs_only_one[0].id)
|
||||||
self.assertEqual(associate_spec, qos_specs_only_one[0].name)
|
self.assertEqual(associate_spec, qos_specs_only_one[0].name)
|
||||||
|
|
||||||
@mock.patch.object(api.cinder, 'cinderclient')
|
@mock.patch.object(api.cinder,
|
||||||
|
'_cinderclient_with_limits_project_id_query')
|
||||||
def test_absolute_limits_with_negative_values(self, mock_cinderclient):
|
def test_absolute_limits_with_negative_values(self, mock_cinderclient):
|
||||||
values = {"maxTotalVolumes": -1, "totalVolumesUsed": -1}
|
values = {"maxTotalVolumes": -1, "totalVolumesUsed": -1}
|
||||||
expected_results = {"maxTotalVolumes": float("inf"),
|
expected_results = {"maxTotalVolumes": float("inf"),
|
||||||
@ -421,6 +422,7 @@ class CinderApiTests(test.APIMockTestCase):
|
|||||||
self.assertEqual(expected_results[key], ret_val[key])
|
self.assertEqual(expected_results[key], ret_val[key])
|
||||||
|
|
||||||
mock_limit.assert_called_once()
|
mock_limit.assert_called_once()
|
||||||
|
mock_cinderclient.assert_called_once_with(self.request)
|
||||||
|
|
||||||
@mock.patch.object(api.cinder, 'cinderclient')
|
@mock.patch.object(api.cinder, 'cinderclient')
|
||||||
def test_pool_list(self, mock_cinderclient):
|
def test_pool_list(self, mock_cinderclient):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user