9c94d96031
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.
Conflicts:
neutron/db/l3_db.py
neutron/plugins/bigswitch/plugin.py
neutron/plugins/nuage/plugin.py
Change-Id: I2411f2aa778ea088be416d062c4816c16f49d2bf
Closes-Bug: 1330955
(cherry picked from commit
|
||
---|---|---|
.. | ||
agent | ||
common | ||
db | ||
README | ||
__init__.py | ||
agent_notify_api.py | ||
mlnx_plugin.py | ||
rpc_callbacks.py |
README
Mellanox Neutron Plugin This plugin implements Neutron v2 APIs with support for Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. For more details on the plugin, please refer to the following link: https://wiki.openstack.org/wiki/Mellanox-Quantum