Add load balancer PoolMember resource

This adds a new resource to manage the relationship between a load
balancing pool and an address, allowing more options like setting the
weight of the member.

Change-Id: Ic8a55ff8b8b00c7a4e3184b3028d5bf0cdd5c916
Implements: blueprint loadbalancer-pool-members
Add OS::Neutron::NetDHCPAgent for neutron/net.py

This resource supports part of "agent management and scheduler
extensions" in Neutron.  It associates network with dhcp-agent.

I think, it may be needed by administrators who want to decide agents to
work. (e.g. to use HA functionality)

Closes-bug: #1245366
Change-Id: I3dc663c4c51824bd3e69c74ff1d9b50a8ce598c9
Database changes for multi-engine support

Add a stack_lock database table to use as a distributed stack lock to
avoid race conditions when multiple engines are deployed.

Blueprint multiple-engines

Change-Id: I0b8e244a73295dca307cb09ea5da2ebe709134b1
Sync oslo threadgroup.py to fix wait & stop methods

Sync oslo threadgroup.py to 25ff65e955b7ef1091722224f7c71f14fc971354 so
we include the fix for bug #1196525, which resolves a problem where the
wait and stop methods would not actually wait for/stop all threads in
the thread group.

Change-Id: Ia49d7096180b2942cf49b1f0dacde3c5e933337c
Implement stack-locking for multi-engine support

Implements a distributed stack lock using the database to avoid race
conditions when multiple engines are deployed.

Blueprint multiple-engines

Change-Id: If3c47dafcc5bc1b2188b7737205291bbab8bc231
oslo: add the test module needed by test_migrations

Change-Id: I99fbae289c29f03b1a8ef391e3c9bf1bf0f4556d
oslo: update the remainder of the modules

Change-Id: I83796c1e1f2f69d2ce27e7180c4004a5f345f063
Sync global requirements to pin sphinx to sphinx>=1.1.2,<1.2

Sync the global requirements to pin sphinx.  This addresses an issue
where Sphinx 1.2 is not building documents correctly and causing
check/gate to fail.

Change-Id: Id4a54ec708102e35602e87ee9773ca119ce5b4f6
Remove unused variable badkeys

Since it's never used and consumed a set subtraction.

Change-Id: Ic2231ad5e491527c7f746172d9a3e07a6623b823
Merge "Add OS::Neutron::NetDHCPAgent for neutron/net.py"
Merge "Add load balancer PoolMember resource"
Merge "oslo: add the test module needed by test_migrations"
Merge "Database changes for multi-engine support"
Merge "Implement stack-locking for multi-engine support"
Fix missing policy enforcement in CFN API

Currently the CreateStack and UpdateStack actions aren't correctly
enforcing the policy, so add calls to _enforce which fixes that,
and rework the test to illustrate the issue.

Change-Id: Ia5c2e65512ab9d1c163171f8617c081ab96745e5
Closes-Bug: #1256049
Merge "oslo: update the remainder of the modules"
Merge "Remove unused variable badkeys"
Merge "Sync oslo threadgroup.py to fix wait & stop methods"
Deny API requests where context doesn't match path

We shouldn't overwrite the context tenant_id (which comes from the
scope of the auth_token) with that from the path, instead raise a
HTTPForbidden exception if the path-provided tenant_id doesn't match
the context.

Change-Id: Ib6fb9881103312f7492081a20178f12309f35d81
Closes-Bug: #1256983
Merge "Fix missing policy enforcement in CFN API"