Reproduce:
- BGPVPN A
- Network B associated to A
- Port C in network B
Now delete Port C. neutronclient will report success but in the neutron logs I see the logs below.
2015-11-18 11:51:01.527 DEBUG neutron.plugins.ml2.plugin [req-c7bc9eb4-9412-47ec-852c-3182b8cd15bf admin fcd217bcd44e40298d9920720e66d790] Calling delete_port for 8780f4d0-f482-4d6f-8494-78effbc3c1e8 owned by from (pid=1110) delete_port /data/repos/os-neutron-bgpvpn/neutron/plugins/ml2/plugin.py:1360
2015-11-18 11:51:01.650 DEBUG neutron.callbacks.manager [req-c7bc9eb4-9412-47ec-852c-3182b8cd15bf admin fcd217bcd44e40298d9920720e66d790] Notify callbacks for port, after_delete from (pid=1110) _notify_loop /data/repos/os-neutron-bgpvpn/neutron/callbacks/manager.py:133
2015-11-18 11:51:01.651 DEBUG neutron.callbacks.manager [req-c7bc9eb4-9412-47ec-852c-3182b8cd15bf admin fcd217bcd44e40298d9920720e66d790] Calling callback networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe.BaGPipeBGPVPNDriver.registry_port_deleted from (pid=1110) _notify_loop /data/repos/os-neutron-bgpvpn/neutron/callbacks/manager.py:140
2015-11-18 11:51:01.652 INFO networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe [req-c7bc9eb4-9412-47ec-852c-3182b8cd15bf admin fcd217bcd44e40298d9920720e66d790] remove_port_from_bgpvpn_agent port updated on port 8780f4d0-f482-4d6f-8494-78effbc3c1e8 status DOWN
2015-11-18 11:51:01.739 ERROR neutron.callbacks.manager [req-c7bc9eb4-9412-47ec-852c-3182b8cd15bf admin fcd217bcd44e40298d9920720e66d790] Error during notification for networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe.BaGPipeBGPVPNDriver.registry_port_deleted port, after_delete
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager Traceback (most recent call last):
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/os-neutron-bgpvpn/neutron/callbacks/manager.py", line 141, in _notify_loop
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager callback(resource, event, trigger, **kwargs)
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 392, in registry_port_deleted
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager self.remove_port_from_bgpvpn_agent(context, port_dict)
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 353, in remove_port_from_bgpvpn_agent
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager agent_host = self._get_port_host(port['id'])
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 300, in _get_port_host
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager port_id)
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/os-neutron-bgpvpn/neutron/db/db_base_plugin_v2.py", line 1252, in get_port
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager port = self._get_port(context, id)
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager File "/data/repos/os-neutron-bgpvpn/neutron/db/db_base_plugin_common.py", line 218, in _get_port
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager raise n_exc.PortNotFound(port_id=id)
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager PortNotFound: Port 8780f4d0-f482-4d6f-8494-78effbc3c1e8 could not be found
2015-11-18 11:51:01.739 TRACE neutron.callbacks.manager
The issue lies in the fact that the service plugin subscribes to port AFTER_DELETE events rather than BEFORE_DELETE event.
When the callback is triggered, it is too late, the Port does not exist anymore.