neutron/neutron/plugins/oneconvergence
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
lib Fix H302 violations in plugins package 2014-05-04 12:40:05 +02:00
README One Convergence Neutron Plugin l3 ext support 2014-03-06 21:50:55 +00:00
__init__.py One Convergence Neutron Plugin Implementation 2014-03-06 08:10:07 -08:00
plugin.py Avoid notifying while inside transaction opened in delete_port() 2014-07-05 15:55:18 +02:00

README

One Convergence Neutron Plugin to implement the Neutron v2.0 API. The plugin
works with One Convergence NVSD controller to provide network virtualization
functionality.

The plugin is enabled with the following configuration line in neutron.conf:

core_plugin = neutron.plugins.oneconvergence.plugin.OneConvergencePluginV2

The configuration parameters required for the plugin are specified in the file
etc/neutron/plugins/oneconvergence/nvsdplugin.ini. The configuration file contains
description of the different parameters.

To enable One Convergence Neutron Plugin with devstack and configure the required
parameters, use the following lines in localrc:

Q_PLUGIN=oneconvergence

disable_service n-net
enable_service q-agt
enable_service q-dhcp
enable_service q-svc
enable_service q-l3
enable_service q-meta
enable_service neutron

NVSD_IP=
NVSD_PORT=
NVSD_USER=
NVSD_PASSWD=

The NVSD controller configuration should be specified in nvsdplugin.ini before
invoking stack.sh.