From a0f0e52b8ea12a72d15a1756f6b28a768e3069ee Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Wed, 22 May 2019 13:12:49 +0200 Subject: [PATCH] Allocation API: correct setting name to None This is a follow-up to commit aec48ca2752127403c4b6f72706d9897cde10ee4. Change-Id: Id87c0a6e3232a9cdd98cb5ee1f722815986fb9c5 --- ironic/api/controllers/v1/allocation.py | 2 +- .../tests/unit/api/controllers/v1/test_allocation.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ironic/api/controllers/v1/allocation.py b/ironic/api/controllers/v1/allocation.py index db714de381..ae2dd7a64d 100644 --- a/ironic/api/controllers/v1/allocation.py +++ b/ironic/api/controllers/v1/allocation.py @@ -409,7 +409,7 @@ class AllocationsController(pecan.rest.RestController): self._validate_patch(patch) names = api_utils.get_patch_values(patch, '/name') for name in names: - if len(name) and not api_utils.is_valid_logical_name(name): + if name and not api_utils.is_valid_logical_name(name): msg = _("Cannot update allocation with invalid name " "'%(name)s'") % {'name': name} raise exception.Invalid(msg) diff --git a/ironic/tests/unit/api/controllers/v1/test_allocation.py b/ironic/tests/unit/api/controllers/v1/test_allocation.py index 20aa72f981..a4955777c7 100644 --- a/ironic/tests/unit/api/controllers/v1/test_allocation.py +++ b/ironic/tests/unit/api/controllers/v1/test_allocation.py @@ -466,6 +466,17 @@ class TestPatch(test_api_base.BaseApiTest): obj_fields.NotificationLevel.INFO, obj_fields.NotificationStatus.END)]) + def test_replace_name_with_none(self): + response = self.patch_json('/allocations/%s' % self.allocation.uuid, + [{'path': '/name', + 'value': None, 'op': 'replace'}], + headers=self.headers) + self.assertEqual('application/json', response.content_type) + self.assertEqual(http_client.OK, response.status_code) + result = self.get_json('/allocations/%s' % self.allocation.uuid, + headers=self.headers) + self.assertIsNone(result['name']) + @mock.patch.object(notification_utils, '_emit_api_notification') @mock.patch.object(objects.Allocation, 'save') def test_update_error(self, mock_save, mock_notify):