Fix error while connecting to busy NSX L2 Gateway

Ensure that a Conflict error is properly handled.

Change-Id: Ib468ee953aef0fc54ea88064f88637ed46bc6352
Closes-bug: 1270724
Enables BigSwitch/Restproxy ML2 VLAN driver

Refactors Bigswitch/Restproxy plugin by separating into
reusable libraries that can be used by the plugin as well
as the ml2 driver to proxy calls to the backend controller.

Enables basic unit tests for the ML2 driver.

Removes deprecated separate unplug/plug operations on ports.

Implements: blueprint bigswitch-ml2-driver
Change-Id: I4e22ba7e20ec4f405b9fd34a1bf08a48544f317d
Fix race condition in network scheduling to dhcp agent

Rarely dhcp agent rpc call get_active_networks_info() can interleave
with network scheduling initiated by create.port.end notification.
In this case scheduling raises and port creation returns 500.
Need to synchronize on DhcpNetworkBindings table.

Closes-Bug: #1276552
Change-Id: I52d94a40772a99c7032dba15b200bf0f21362f93
Use oslo.rootwrap library instead of local copy

Remove rootwrap code copied from oslo-incubator, make the
{neutron,quantum}-rootwrap console_script entrypoints point to
oslo.rootwrap code instead.

Adjust bin/{neutron,quantum}-rootwrap[-xen-dom0] so that it calls
into oslo.rootwrap.cmd.

Change-Id: I22df4060d6bca6affd7761fec49d2767ca8f59cf
Implements: blueprint neutron-oslo-rootwrap
ML2 Cisco Nexus MD: Create pre/post DB event handlers

Split ML2 cisco nexus event handers for update and delete
into precommit (called during DB transactions) and postcommit
(called after DB transactions) methods.

Also fixes some unit tests that were incorrectly accessing
context managers without using the "with" statement.

Closes-Bug: #1241098
Change-Id: I59b046342706230222c1be39d13a455ca5a884ea
Prepare for multiple cisco ML2 mech drivers

Code tree reorganization in preparation for ML2 mechanism drivers for
other cisco products. The cisco nexus ML2 mechanism driver and its
test cases need to move down into their own subdirectory.

Closes-bug: #1277222

Change-Id: I2ba366332276069545b3deb0bbd39016a893327b
Improve handling of security group updates

Currently updates to security group rules or membership
are handled by immediately triggering a call to refresh_firewall.
This call is quite expensive, and it is often executed with a
very high frequency.

With this patch, the notification handler simply adds devices for
which the firewall should be refreshed to a set, which will then
be processed in another routine. The latter is supposed to
be called in the main agent loop.

This patch for 'provider updates' simply sets a flag for refreshing
the firewall for all devices.

In order to avoid breaking other agents leveraging the security
group RPC mixin, the reactive behaviour is still available, and is
still the default way of handling security group updates.

Partial-Bug: #1253993
Partially implements blueprint: neutron-tempest-parallel

Change-Id: I1574544734865506ff5383404516cc9349c16ec4
Merge "Improve handling of security group updates"
Merge "Fix race condition in network scheduling to dhcp agent"
Merge "ML2 Cisco Nexus MD: Create pre/post DB event handlers"
Merge "Use oslo.rootwrap library instead of local copy"
Merge "Fix error while connecting to busy NSX L2 Gateway"
Merge "Enables BigSwitch/Restproxy ML2 VLAN driver"
Merge "Prepare for multiple cisco ML2 mech drivers"