add metadata proxy support for Quantum Networks

blueprint metadata-overlapping-networks

Adds Metadata for guest VMs running on Qunatum networks.  This requires
a companion patchset for Nova to test.

Change-Id: I524c6fdcd6a44e46da08395fd84c1288052a69ea
Completes coverage of quantum.agent.netns_cleanup.py

Added test cases
Fixed typos

Fixes bug #1084332

Change-Id: I86c2321dfe5f3f1ac4b8b570a6c76dbb1928bfb0
Completes coverage of quantum.agent.rpc.py

Added test cases

Fixes bug #1084381

Change-Id: I9179aac206befa6b0449814646639ed96a1eadbc
fix remap of floating-ip within l3-agent polling interval

bug 1083990

Change-Id: I1bb365fe6accc24a223acd2b31d4eacdb6809410
Fixes Context exception in BigSwitch/FloodLight Plugin

Bug #1083389

Aligning with the changes in the patch: https://review.openstack.org/#/c/15726
to only use Quantum API context.

Change-Id: I5644ad59c34430a9d558c39bbc07f594609ebfbc
make the DHCP agent use a unique queue name

fixes bug: 1084621

This generates a unique name, so that multiple agents can be active
within a deployment.

Change-Id: Ia2bdc27866e6aa4aebd0bd28d1dfd25c3167dd03
Fixes Rpc related exception in NVP plugin

The rpc changes from commit 05383d13 were not also made against
the nvp_plugin. Bug #1084803

Change-Id: Iac95065bda2f6b83e07c27045f374ab8690865ca
Completes coverage of quantum.agent.linux.utils

Renamed test_agent_utils to test_agent_linux_utils
Added test cases

Fixes bug #1084817

Change-Id: If0269a003bd8e1fc6f6ef3c622d7a015dadf50aa
prevent deletion of router interface if it is needed by a floating ip

bug 1081325

Change-Id: I33495fd7ee812eded015b2d3783d1cf6a3bf14bc
Use /usr/bin/ for the metadata proxy in l3.filters

Updates the l3.filters proxy to use /usr/bin/ instead
of /usr/local/bin.  This should be a more distro friendly
default and follows the pattern used by other OpenStack
services as well.

Change-Id: I8fbaa49f97f5367c112dc399db838d204af7b4c8
update state_path default to be the same value

fixes bug 1085249

This patch sets the default state_path to match a reasonable deployment
value instead of the devstack default.

Change-Id: Ib0c10621d91760588a68a62df8a60682d780e015
Fixes import order nits

Change-Id: I8bcfbcbc0d97a96a9c05d29510d3017b8a054cec
Removes unused code in quantum.common

Removed boolize() in quantum.common.utils

Fixes bug #877120

Change-Id: Icb30b4200baf8743bbee6b4dd035c8b316c38533
Remove __init__.py from bin/ and tools/.

To avoid installation into .../site-packages/quantum via
packages=setuptools.find_packages('.') in setup.py. Both directories
are not Python modules.

Change-Id: I794ad047a5ed52cb040490eb1be54c513c9d1e7c
plugin/ryu: make live-migration work with Ryu plugin

Fixes bug 1085861

Live-migration with Ryu plugin doesn't work because the unique constraint of
PortBinding table is violated as follows.
Now Ryu can handle those informations itself, so remove the table itself and
simplify Ryu plugin.

> ERROR [quantum.api.v2.resource] update failed
> Traceback (most recent call last):
>   File "/quantum/api/v2/resource.py", line 95, in resource
>     result = method(request=request, **args)
>   File "/quantum/api/v2/base.py", line 397, in update
>     obj = obj_updater(request.context, id, **kwargs)
>   File "/quantum/plugins/ryu/ryu_quantum_plugin.py", line 226, in update_port
>     port_binding.dpid, port_binding.port_no))
> InvalidInput: Invalid input for operation: invalid (datapath_id, port_no) requested (00002eab88ec5140, 4), but (0000c2f19014c74a, 1).

Change-Id: I7d993fd01125a27f6bf8e1b3fcac79ddcb8cb361
add state_path sample back to l3_agent.ini file

fixes bug 1086012

A prior change incorrectly removed the sample state_path from the
l3_agent config file.  This change adds the correct sample value to the
file.

Change-Id: I10455706442c004e5d0337834b5baa3b794af5e7
Add metadata_agent.ini to config_path in setup.py.

Change-Id: Ia2795a22165a30684c17e23bdf73f8c6e0c01825
Fix rootwrap cfg for src installed metadata proxy.

 * The metadata proxy script will be installed to /usr/local/bin
   if installed from source, rather than the default /usr/bin.
   The filter config needs to be updated to reflect this or
   invacation of the proxy by the l3 agent will fail.

Change-Id: Iccb4133b1ac33a1b9b232c1d68979fe646e1b977
l3 agent rpc

On one hand, we sync router data (including routers,
their gw ports, interfaces and floatingips) from l3_agent
to quantum server periodically if needed.

On the other hand, we notify l3 agent from quantum server when
we delete or update a router's stuff, such as floating IP,
interface and gwport and router itself.

blueprint rpc-for-l3-agent
bug #1080286

Change-Id: I60f3081975fc7164b22f9e9fa941e702a3f4c663
Refactor resources listing testcase for test_db_plugin.py

Fixes bug 1083502
Add common function '_test_list_resources' for resource listing.

Change-Id: I5b144ff3924cbc623174172f3f74b2d33d24229b