diff --git a/heat/engine/resources/openstack/neutron/neutron.py b/heat/engine/resources/openstack/neutron/neutron.py index 329df0b92c..029127d9d5 100644 --- a/heat/engine/resources/openstack/neutron/neutron.py +++ b/heat/engine/resources/openstack/neutron/neutron.py @@ -94,11 +94,12 @@ class NeutronResource(resource.Resource): @staticmethod def merge_value_specs(props, before_value_specs=None): value_spec_props = props.pop('value_specs') - if before_value_specs: - for k in list(value_spec_props): - if value_spec_props[k] == before_value_specs.get(k, None): - value_spec_props.pop(k) - props.update(value_spec_props) + if value_spec_props is not None: + if before_value_specs: + for k in list(value_spec_props): + if value_spec_props[k] == before_value_specs.get(k, None): + value_spec_props.pop(k) + props.update(value_spec_props) def prepare_update_properties(self, prop_diff): """Prepares prop_diff values for correct neutron update call. @@ -106,7 +107,7 @@ class NeutronResource(resource.Resource): 1. Merges value_specs 2. Defaults resource name to physical resource name if None """ - if 'value_specs' in prop_diff and prop_diff['value_specs']: + if 'value_specs' in prop_diff: NeutronResource.merge_value_specs( prop_diff, self.properties[self.VALUE_SPECS]) if 'name' in prop_diff and prop_diff['name'] is None: diff --git a/heat/tests/openstack/neutron/test_neutron_port.py b/heat/tests/openstack/neutron/test_neutron_port.py index 07d9ee0e0d..c0a4df73f7 100644 --- a/heat/tests/openstack/neutron/test_neutron_port.py +++ b/heat/tests/openstack/neutron/test_neutron_port.py @@ -1080,10 +1080,6 @@ class UpdatePortTest(common.HeatTestCase): if value_specs: for value_spec in six.iteritems(value_specs): update_dict[value_spec[0]] = value_spec[1] - else: - # BUG(zaneb): this is necessary because of a regression - # from https://review.opendev.org/263119 - update_dict['value_specs'] = {} tags = update_dict.pop('tags')