diff --git a/heat/engine/resource.py b/heat/engine/resource.py index 613cefe590..756bcb4d80 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -1942,7 +1942,8 @@ class Resource(object): """ resource_result = {} for key in self._update_allowed_properties: - resource_result[key] = resource_data.get(key) + if key in resource_data: + resource_result[key] = resource_data.get(key) return resource_result diff --git a/heat/tests/test_resource.py b/heat/tests/test_resource.py index 98b5692b0f..1a66dad5ff 100644 --- a/heat/tests/test_resource.py +++ b/heat/tests/test_resource.py @@ -4135,12 +4135,12 @@ class TestLiveStateUpdate(common.HeatTestCase): def test_parse_live_resource_data(self): res = self._prepare_resource_live_state() - res.update_allowed_props = mock.Mock(return_value=['Foo']) + res.update_allowed_props = mock.Mock(return_value=['Foo', 'Bar']) resource_data = { 'Foo': 'brave new data', 'Something not so good': 'for all of us' } - res._update_allowed_properties = ['Foo'] + res._update_allowed_properties = ['Foo', 'Bar'] result = res.parse_live_resource_data(res.properties, resource_data) self.assertEqual({'Foo': 'brave new data'}, result) self._clean_tests_after_resource_live_state(res)