diff --git a/kingbird/api/controllers/v1/quota_class.py b/kingbird/api/controllers/v1/quota_class.py index bca1533..4cbf715 100644 --- a/kingbird/api/controllers/v1/quota_class.py +++ b/kingbird/api/controllers/v1/quota_class.py @@ -37,10 +37,11 @@ class QuotaClassSetController(object): consts.NEUTRON_QUOTA_FIELDS + consts.NOVA_QUOTA_FIELDS) - def _format_quota_set(self, quota_class, quota_set): + def _format_quota_set(self, context, quota_class, quota_set): """Convert the quota object to a result dict.""" + result = db_api.quota_class_get_default(context) if quota_class: - result = dict(id=str(quota_class)) + result['class_name'] = str(quota_class) else: result = {} @@ -67,7 +68,7 @@ class QuotaClassSetController(object): values = db_api.quota_class_get_all_by_name(context, class_name) - return self._format_quota_set(class_name, values) + return self._format_quota_set(context, class_name, values) @index.when(method='PUT', template='json') def put(self, project_id, class_name): @@ -100,7 +101,7 @@ class QuotaClassSetController(object): values = db_api.quota_class_get_all_by_name(context, class_name) - return self._format_quota_set(class_name, values) + return self._format_quota_set(context, class_name, values) @index.when(method='delete', template='json') def delete(self, project_id, class_name): diff --git a/kingbird/tests/unit/api/v1/controllers/test_quota_class.py b/kingbird/tests/unit/api/v1/controllers/test_quota_class.py index 4fc34f5..a209d6b 100644 --- a/kingbird/tests/unit/api/v1/controllers/test_quota_class.py +++ b/kingbird/tests/unit/api/v1/controllers/test_quota_class.py @@ -48,6 +48,10 @@ class TestQuotaClassController(testroot.KBApiTest): @mock.patch.object(quota_class, 'db_api') def test_get_all_admin(self, mock_db_api): result = Result('class1', 'ram', 100) + default_result = Result('default', 'cores', 10) + mock_db_api.quota_class_get_default.return_value = \ + {"class_name": default_result.class_name, + default_result.resource: default_result.hard_limit} mock_db_api.quota_class_get_all_by_name.return_value = \ {"class_name": result.class_name, result.resource: result.hard_limit} @@ -56,7 +60,8 @@ class TestQuotaClassController(testroot.KBApiTest): fake_url, headers=ADMIN_HEADERS) self.assertEqual(response.status_int, 200) - self.assertEqual({'quota_class_set': {'id': 'class1', 'ram': 100}}, + self.assertEqual({'quota_class_set': {'class_name': 'class1', + 'ram': 100, 'cores': 10}}, eval(response.text)) def test_get_invalid_req(self): @@ -74,6 +79,10 @@ class TestQuotaClassController(testroot.KBApiTest): @mock.patch.object(quota_class, 'db_api') def test_put_admin(self, mock_db_api): result = Result('class1', 'cores', 10) + default_result = Result('default', 'ram', 100) + mock_db_api.quota_class_get_default.return_value = \ + {"class_name": default_result.class_name, + default_result.resource: default_result.hard_limit} mock_db_api.quota_class_get_all_by_name.return_value = \ {"class_name": result.class_name, result.resource: result.hard_limit} @@ -84,7 +93,8 @@ class TestQuotaClassController(testroot.KBApiTest): headers=ADMIN_HEADERS, params=data) self.assertEqual(response.status_int, 200) - self.assertEqual({'quota_class_set': {'id': 'class1', 'cores': 10}}, + self.assertEqual({'quota_class_set': {'class_name': 'class1', + 'cores': 10, 'ram': 100}}, eval(response.text)) @mock.patch.object(quota_class, 'db_api')