Fallback to Quota Conf Driver if Quotas table is not defined

commit de15e0b9c5 enabled Quota DB driver default considering
production environments, but it breaks plugins without per-tenant
quota extension. In these plugin quotas tables is not loaded.

This commit fallbacks to ConfDriver if Quota model is not loaded by
checking neutron.db.quota_db which defines Quota model is imported.

Change-Id: Idaaaa9810598cfd3e5ce70020f498643b4819d16
Closes-Bug: #1236993
use proxy mode on vxlan interface only when l2-population is activated

the proxy mode was set by default on every vxlan interfaces
which leads to inaccessibility between VM that are not hosted
on the same host in a vxlan network

Closes-Bug: #1237082

Change-Id: I34028ee0bdfdccda61c6a29f58759259da060b68
Remove obsolete redhat-eventlet.patch

See I62ce43a330d7ae94eda4c7498782a655e63747fa for the gorey details on
why this exists.

As of this fix:

  https://github.com/eventlet/eventlet/pull/34

which was released in eventlet 0.13, we no longer need the patch.

This has now been removed from oslo-incubator, so this is really just
syncing that removal.

Change-Id: I84267f3c6726cb2e750f615e107c48b12c6ed353
Fix auto-deletion of ports when deleting subnets in ML2

When a subnet is deleted, certain ports referencing it are
auto-deleted. The implementation of NeutronDBPluginV2.delete_subnet()
does this at the DB level, so ML2's mechanism drivers were not being
called.

Ml2Plugin.delete_subnet() is changed to not use the base class's
method, and to auto-delete ports by calling its own delete_port()
method outside of the transaction. A loop avoids race conditions with
ports being asynchronously added to the subnet.

The logic in Ml2Plugin.delete_network() is also fixed to properly
handle auto-deleting ports and subnets, and debug logging is added to
the various delete methods.

Closes-Bug: 1234195
Partial-Bug: 1235486
Change-Id: I6d74f89d39ea8afe6915f1d2f9afdf66c0076f5a
Fix access to lifetime dict in update_ipsecpolicy method

Also add corresponding unit test.

Change-Id: Ie1141b5034415ccf3039a71dfedc47cfb2ca7a88
Closes-Bug: #1237912
Imported Translations from Transifex

Change-Id: Iadb02e0009605ba739d6c7e6ccbe1e62331f94fe
Fix migration

In migration 338d7508968c_vpnaas_peer_address_ was mistake in
usage alter_column's parameter type_.

Closes-Bug: #1238561

Change-Id: I6e0eb8260cf5e8d8f557b174c7985e2f7ca1c912
Use L3 api from vpn ipsec driver via service plugin

VPNaaS and ML2 plugin won't work, because ML2 plugin
supports service version of L3.
In this commit, we modify ipsec driver to use L3 plugin.
This is also backward compatible change, because if L2 plugin
supports L3 get_service_plugin API returns L2 plugin.

Fixes bug 1238846

Change-Id: I36e541bb2e3e1df2e01f73a74f3e9005af6c38b7
Note: Exsiting unit test covers this change
Merge "Fix migration"
Merge "Fix auto-deletion of ports when deleting subnets in ML2"
Merge "Fallback to Quota Conf Driver if Quotas table is not defined"
DB migration upgrade/downgrade not employed for brocade-plugin

Fixes bug: 1238921

Change-Id: I441d82a92588d7318a2f3b725643bc1b050a2c9c
cisco/nexus plugin doesn't create port for router interface

Fixes bug 1234826

This fix adds a "nexus_l3_enable" configuration boolean for the
Cisco Nexus plugin. When this config boolean is set to False (default),
then the Nexus switches are only used for L2 switching/segmentation, and
layer 3 functionality is deferred to the OVS subplugin / network
control node. If this config boolean is set to True, layer 3
functionality, e.g. switch virtual interfaces, are supported on
the Nexus switches. (Note that layer 3 functionality is not supported
on all versions/models Nexus switches.)

Some other things addressed with this fix:
- The l3_port_check keyword argument which is optionally passed to the
  Cisco plugin's delete_port method was not being forwarded on to the
  OVS (sub) plugin. This keyword argument needs to be forwarded to OVS
  e.g. when the delete_port is being done in the context of a
  router interface delete (whereby l3_port_check==False).
- UT test cases are added for new "nexus_l3_enable" config, which
  exercise router interface add/delete.
- The Cisco test_network_plugin.py module is refactored/reorganized
  in order to cleanly add a new router interface test class.
- The test_model_update_port_rollback test case was yielding a false
  positive result (device_owner was not being passed to self.port).

Change-Id: I994b2b82769ea5e10e50dbe3a223d1518e99f714
Merge "DB migration upgrade/downgrade not employed for brocade-plugin"
Merge "Use L3 api from vpn ipsec driver via service plugin"
Imported Translations from Transifex

Change-Id: I7f3cd275f90661f52310abf0f353ed87a81f6db1
Imported Translations from Transifex

Change-Id: If1ba48b442712d6b5467df39abad0ce2e36a0a49
Imported Translations from Transifex

Change-Id: Iaf08109b1abaeb5bea4489bd559da5224bcfbc5b
Add support for managing async processes

Interacting with a long-running asynchronous process requires the
use of non-blocking io.  This change adds a helper class that can
launch a long-running process and read stdout and stderr in a
non-blocking fashion via eventlet.

This functionality is intended to support monitoring ovsdb via
a long-running and root-privileged invocation of ovsdb-client.

The complexity of the system interaction in this patch suggested
the addition of a functional test that validated actual behaviour.
The test was added under the neutron/tests/functional path which
is now included in the testr search path.

Partial-Bug: #1177973

Change-Id: I9969e556acecf7a9e77d873371cc2ec2647be011
Merge "cisco/nexus plugin doesn't create port for router interface"