From: Kevin Benton Date: Wed, 24 Jun 2015 09:15:29 +0000 (-0700) Subject: Don't process network_delete events on OVS agent X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f527f8cf426ee63b592225d5e691ac107085784d;p=openstack-build%2Fneutron-build.git Don't process network_delete events on OVS agent There is no reason to reclaim the local VLAN on a network_delete event since it will be reclaimed when the last port is deleted anyway. This method was racey with recent port creation events and lead to occasional traces when it would yank the local VLAN out from underneath an ongoing port wiring process. Change-Id: I5eee6175c053006b35b6efe274d27931a9d5d89f Closes-Bug: #1468251 --- diff --git a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py index 968fec88a..6c966d561 100644 --- a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py +++ b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py @@ -336,7 +336,6 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin, # Define the listening consumers for the agent consumers = [[topics.PORT, topics.UPDATE], [topics.PORT, topics.DELETE], - [topics.NETWORK, topics.DELETE], [constants.TUNNEL, topics.UPDATE], [constants.TUNNEL, topics.DELETE], [topics.SECURITY_GROUP, topics.UPDATE], @@ -354,17 +353,6 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin, if vif_id in vlan_mapping.vif_ports: return network_id - def network_delete(self, context, **kwargs): - LOG.debug("network_delete received") - network_id = kwargs.get('network_id') - LOG.debug("Delete %s", network_id) - # The network may not be defined on this agent - lvm = self.local_vlan_map.get(network_id) - if lvm: - self.reclaim_local_vlan(network_id) - else: - LOG.debug("Network %s not used on agent.", network_id) - def port_update(self, context, **kwargs): port = kwargs.get('port') # Put the port identifier in the updated_ports set. diff --git a/neutron/tests/unit/plugins/openvswitch/agent/test_ovs_neutron_agent.py b/neutron/tests/unit/plugins/openvswitch/agent/test_ovs_neutron_agent.py index fec863aa5..e2d2dfc37 100644 --- a/neutron/tests/unit/plugins/openvswitch/agent/test_ovs_neutron_agent.py +++ b/neutron/tests/unit/plugins/openvswitch/agent/test_ovs_neutron_agent.py @@ -506,19 +506,6 @@ class TestOvsNeutronAgent(object): report_st.assert_called_with(self.agent.context, self.agent.agent_state, True) - def test_network_delete(self): - with mock.patch.object(self.agent, "reclaim_local_vlan") as recl_fn,\ - mock.patch.object(self.agent.tun_br, - "cleanup_tunnel_port") as clean_tun_fn: - self.agent.network_delete("unused_context", - network_id="123") - self.assertFalse(recl_fn.called) - self.agent.local_vlan_map["123"] = "LVM object" - self.agent.network_delete("unused_context", - network_id="123") - self.assertFalse(clean_tun_fn.called) - recl_fn.assert_called_with("123") - def test_port_update(self): port = {"id": "123", "network_id": "124",