From f527f8cf426ee63b592225d5e691ac107085784d Mon Sep 17 00:00:00 2001 From: Kevin Benton Date: Wed, 24 Jun 2015 02:15:29 -0700 Subject: [PATCH] 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 --- .../plugins/openvswitch/agent/ovs_neutron_agent.py | 12 ------------ .../openvswitch/agent/test_ovs_neutron_agent.py | 13 ------------- 2 files changed, 25 deletions(-) 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", -- 2.45.2