diff --git a/karborclient/tests/unit/v1/test_quota_classes.py b/karborclient/tests/unit/v1/test_quota_classes.py index d5d93b4..436a79e 100644 --- a/karborclient/tests/unit/v1/test_quota_classes.py +++ b/karborclient/tests/unit/v1/test_quota_classes.py @@ -30,6 +30,15 @@ class QuotaClassesTest(base.TestCaseShell): '/quota_classes/default', data={'quota_class': {'plans': 50}}, headers={}) + @mock.patch('karborclient.common.http.HTTPClient.json_request') + def test_quota_class_update_with_none(self, mock_request): + mock_request.return_value = mock_request_return + cs.quota_classes.update('default', {'plans': None}) + mock_request.assert_called_with( + 'PUT', + '/quota_classes/default', + data={'quota_class': {'plans': 50}}, headers={}) + @mock.patch('karborclient.common.http.HTTPClient.json_request') def test_show_quota_class(self, mock_request): mock_request.return_value = mock_request_return diff --git a/karborclient/tests/unit/v1/test_quotas.py b/karborclient/tests/unit/v1/test_quotas.py index b3c7bbb..b695b24 100644 --- a/karborclient/tests/unit/v1/test_quotas.py +++ b/karborclient/tests/unit/v1/test_quotas.py @@ -30,6 +30,15 @@ class QuotasTest(base.TestCaseShell): '/quotas/{project_id}'.format(project_id=fakes.PROJECT_ID), data={'quota': {'plans': 50}}, headers={}) + @mock.patch('karborclient.common.http.HTTPClient.json_request') + def test_quota_update_with_none(self, mock_request): + mock_request.return_value = mock_request_return + cs.quotas.update(fakes.PROJECT_ID, {'plans': None}) + mock_request.assert_called_with( + 'PUT', + '/quotas/{project_id}'.format(project_id=fakes.PROJECT_ID), + data={'quota': {'plans': 50}}, headers={}) + @mock.patch('karborclient.common.http.HTTPClient.json_request') def test_show_quota(self, mock_request): mock_request.return_value = mock_request_return diff --git a/karborclient/v1/quota_classes.py b/karborclient/v1/quota_classes.py index 1fffa2e..ca37d3b 100644 --- a/karborclient/v1/quota_classes.py +++ b/karborclient/v1/quota_classes.py @@ -26,6 +26,9 @@ class QuotaClassManager(base.ManagerWithFind): def update(self, class_name, data): + if "plans" in data and data["plans"] is None: + data["plans"] = 50 + body = {"quota_class": data} return self._update('/quota_classes/{class_name}' diff --git a/karborclient/v1/quotas.py b/karborclient/v1/quotas.py index f682e95..fc02eec 100644 --- a/karborclient/v1/quotas.py +++ b/karborclient/v1/quotas.py @@ -26,6 +26,9 @@ class QuotaManager(base.ManagerWithFind): def update(self, project_id, data): + if "plans" in data and data["plans"] is None: + data["plans"] = 50 + body = {"quota": data} return self._update('/quotas/{project_id}' diff --git a/karborclient/v1/shell.py b/karborclient/v1/shell.py index c128528..b4946df 100644 --- a/karborclient/v1/shell.py +++ b/karborclient/v1/shell.py @@ -1357,7 +1357,7 @@ def _quota_set_pretty_show(quotas): metavar='', type=int, default=None, - help='New value for the "plans" quota.') + help='New value for the "plans" quota. The default value is 50.') def do_quota_update(cs, args): """Update the quotas for a project (Admin only).""" project_id = args.tenant @@ -1400,7 +1400,7 @@ def do_quota_class_show(cs, args): metavar='', type=int, default=None, - help='New value for the "plans" quota.') + help='New value for the "plans" quota. The default value is 50.') def do_quota_class_update(cs, args): """Update the quotas for a quota class (Admin only).""" class_name = args.class_name