Use openstack.common.lockutils module for locks in tox functional tests.

Tox test has been switched to use openstack.common.lockutils module
for interprocess locks. However neutron tox functional tests was
left behind probably because locking is not required by the existing
functional test cases. This change makes neutron tox functional tests
adopt openstack.common.lockutils for locking.

Closes-Bug: 1332380
Change-Id: I4d6076e5f7586a11ea5381f18774d4bab57b0081
Arista Layer 3 Sevice Plugin

This sevice plugin implements routing functions on Arista HW.

Change-Id: Ide411540254db015167111defee7d8c6c1c27347
Implements: blueprint arista-l3-service-plugin
Assign Cisco nw profile to multi-tenants in single request

Currently with Cisco N1kv plugin, user can assign cisco network
profile to only one tenant in a request. So user has to send
multiple requests to assign a cisco network profile to multiple
tenants.
This fix is going to add the support to assign to multiple tenants
in a single request

This fix has corresponding changes in neutron, python-neutronclient
and horizon. All the changes should be committed at the same time

Change-Id: I42ffbd17a80f741d9cf1094dc79b588444bd9d4b
Implements: blueprint cisco-network-profile-multi-tenants-support
Fix policy rules for adding and removing router interfaces

Currently "add_router_interface" and "remove_router_interface"
policy rules have the "update_router" prefix and thus are never
enforced. Removing the prefix activates the rules.

Also moved some rules, so that all router-related rules are
now grouped together.

Closes-Bug: 1356678
Change-Id: Ib6cc45f2c6d0c7ae394274d6196262529b9fd855
Add specific docs build option to tox

Add doc venv to align with other OpenStack projects (such as keystone,
heat and nova) who are using 'docs' for there doc builds.

Change-Id: I0094130224ec2667cdd76f497edf595f09a86d12
Do not log WARN messages about lack of L3 agents for DVR routers

DVR routers are scheduled only when there is need to: for instance when
there's an external gateway associated with it, or when there are
interfaces attached to subnets on which VM's are actually being deployed.

Therefore, do not log misleading messages that apply only to the
centralized case.

Closes-bug: 1358998

Change-Id: Ica7f0d25fe576f05a9adf8eb8239704f09c0b0ac
Minor refactoring of auto_schedule_routers

The method is more complicated than it needs to be, and it makes it difficult
to target fixes for it.

This is done in preparation of fix for DB lock timeout errors observed while
dealing with DVR routers.

Test coverage is already provided, and more granular coverage is added to
reflect the new structure being introduced.

Partial-bug: #1356121

Change-Id: Ifb7a742b64139f3a5d9b88c3c6261b1b890946f9
Do not explicitly set mysql_engine

Setting the mysql_engine when creating a table is not needed
anymore as this is automatically done by an event listener
added with commit 466e89970f11918a809aafe8a048d138d4664299

Change-Id: I0df978dbf2bb44f17102da3c17fd4e93c9e4df8d
Closes-Bug: #1361176
Refactor plugin setup helpers out of test.base

Helper methods for plugin and notification setup were previously
defined on neutron.tests.base.BaseTestCase.  The imports required to
support these helpers were preventing the api tests from consuming
tempest due to configuration conflicts that resulted between neutron
and tempest.  This change moves the helpers to a new module in
tests/unit so that BaseTestCase can be safely used across all types of
tests.

Partially-Implements: blueprint retargetable-functional-testing

Change-Id: I44251db399cd73390a9d1931a7f253662002ba10
Updated from global requirements

Change-Id: I922b382fa75ecc6a8e14f25914c27e3eb245766e
Add _store_ip_allocation method

This refactor supports patch [1]
The code to store the IPAllocation is moved to a specific
method _store_ip_allocation

[1] https://review.openstack.org/#/c/100963

Change-Id: I9492dcb9479d6e6dadb79b137a273052d948412b
Implement ip_lib.device_exists_with_ip_mac

ip_lib.device_exists simply checks that a device is in an
(optional) namespace. This patch adds
ip_lib.device_exists_with_ip_mac, which also verifies that
the device is configured with the given IP and MAC addresses.
The new function is used in functional tests in a patch
further down the dependency chain.

Added functional tests for ip_lib.device_exists,
ip_lib.device_exists_with_ip_mac.

Implements: blueprint l3-high-availability
Change-Id: I1495bcf1f1a88e2eb78df79cccb64121ccf435fb
Merge "Use openstack.common.lockutils module for locks in tox functional tests."
Merge "Refactor plugin setup helpers out of test.base"
Merge "Updated from global requirements"
Merge "Fix policy rules for adding and removing router interfaces"
Merge "Do not log WARN messages about lack of L3 agents for DVR routers"
Merge "Do not explicitly set mysql_engine"
Merge "Arista Layer 3 Sevice Plugin"
Merge "Assign Cisco nw profile to multi-tenants in single request"