
delete_port() calls to disassociate_floatingips() while in transaction. The latter method sends RPC notification which may result in eventlet yield. If yield switches a thread to another one that tries to access the same floating IP object in db as disassociate_floatingips() method does, we're locked and get db timeout. We should avoid calling to notifier while under transaction. To achieve this, I introduce a do_notify argument that controls whether notification is done by disassociate_floatingips() itself or delegated to caller. Callers that call to disassociate_floatingips() from under transactions should handle notifications on their own. For this, disassociate_floatingips() returns a set of routers that require notification. Updated drivers to reflect new behaviour. Added unit test. Change-Id: I2411f2aa778ea088be416d062c4816c16f49d2bf Closes-Bug: 1330955
# -- Welcome!
You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!
# -- External Resources:
The homepage for Neutron is: http://launchpad.net/neutron . Use this site for asking for help, and filing bugs. Code is available on github at <http://github.com/openstack/neutron>.
The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:
Neutron Administrator Guide http://docs.openstack.org/trunk/openstack-network/admin/content/
Neutron API Reference: http://docs.openstack.org/api/openstack-network/2.0/content/
The start of some developer documentation is available at: http://wiki.openstack.org/NeutronDevelopment
For help using or hacking on Neutron, you can send mail to <mailto:openstack-dev@lists.openstack.org>.