neutron/neutron/plugins/embrane
Ihar Hrachyshka 876c2c25e1 Avoid notifying while inside transaction opened in delete_port()
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
2014-07-05 15:55:18 +02:00
..
agent Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
common Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
l2base Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
plugins Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
README Embrane Neutron Plugin 2013-08-25 14:22:38 -07:00
__init__.py Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
base_plugin.py Avoid notifying while inside transaction opened in delete_port() 2014-07-05 15:55:18 +02:00

README

Embrane Neutron Plugin

This plugin interfaces OpenStack Neutron with Embrane's heleos platform, which
provides layer 3-7 network services for cloud environments.

L2 connectivity is leveraged by one of the supported existing plugins.

For more details on use, configuration and implementation please refer to:
http://wiki.openstack.org/wiki/Neutron/EmbraneNeutronPlugin