neutron/neutron/plugins/ryu
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 Moved rpc_compat.py code back into rpc.py 2014-06-24 10:35:39 +02:00
common Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
db Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
README Rename Quantum to Neutron 2013-07-06 15:02:43 -04:00
__init__.py Rename Quantum to Neutron 2013-07-06 15:02:43 -04:00
ryu_neutron_plugin.py Avoid notifying while inside transaction opened in delete_port() 2014-07-05 15:55:18 +02:00

README

Neutron plugin for Ryu Network Operating System
This directory includes neutron plugin for Ryu Network Operating System.

# -- Installation

For how to install/set up this plugin with Ryu and OpenStack, please refer to
https://github.com/osrg/ryu/wiki/OpenStack

# -- Ryu General

For general Ryu stuff, please refer to
http://www.osrg.net/ryu/

Ryu is available at github
git://github.com/osrg/ryu.git
https://github.com/osrg/ryu

The mailing is at
ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Enjoy!