diff --git a/ironic/objects/node.py b/ironic/objects/node.py index 1c12229a0f..11536ac00a 100644 --- a/ironic/objects/node.py +++ b/ironic/objects/node.py @@ -298,9 +298,7 @@ class Node(base.IronicObject, object_base.VersionedObjectDictCompat): :raises: InvalidParameterValue if some property values are invalid. """ values = self.obj_get_changes() - properties = values.get('properties') - if properties: - self._validate_property_values(properties) + self._validate_property_values(values.get('properties')) db_node = self.dbapi.create_node(values) self._from_db_object(self, db_node) @@ -342,9 +340,7 @@ class Node(base.IronicObject, object_base.VersionedObjectDictCompat): :raises: InvalidParameterValue if some property values are invalid. """ updates = self.obj_get_changes() - properties = updates.get('properties') - if properties: - self._validate_property_values(properties) + self._validate_property_values(updates.get('properties')) if 'driver' in updates and 'driver_internal_info' not in updates: # Clean driver_internal_info when changes driver self.driver_internal_info = {} diff --git a/ironic/tests/unit/objects/test_node.py b/ironic/tests/unit/objects/test_node.py index 1d99de4c4c..cca57db0d5 100644 --- a/ironic/tests/unit/objects/test_node.py +++ b/ironic/tests/unit/objects/test_node.py @@ -163,13 +163,8 @@ class TestNodeObject(base.DbTestCase): node = objects.Node.get(self.context, uuid) node.properties = {"local_gb": "5G", "memory_mb": "5", 'cpus': '-1', 'cpu_arch': 'x86_64'} - expected_error_message = ( - ('The following properties for node %(node_uuid)s ' - 'should be non-negative integers, but provided values ' - 'are: local_gb=5G, cpus=-1') % - {'node_uuid': uuid}) self.assertRaisesRegexp(exception.InvalidParameterValue, - expected_error_message, node.save) + ".*local_gb=5G, cpus=-1$", node.save) mock_get_node.assert_called_once_with(uuid) def test__validate_property_values_success(self):