Remove unused python-memcached from requirements.

Change-Id: I6da8607203d15275a05faa7f7ccc570c31f86762
Convert Resource to separate action/status

Next step in decoupling action/status

This adjusts the Resource DB columns, model and class to be consistent
with Event, and split action/status.  This also modifies the both APIs
to join the action/status to avoid changing the API (we can't change
the CFN one anyway and it's desirable to avoid breaking compatibility
with the ReST API, or needing a version bump for this simple change)

Change-Id: I02b56eb14045a058e67b9764d386530d555c339e
engine : abstract state-transition logic

Refactor to abstract the handle_create/check_create_complete
logic, so it can be reused without lots of duplication for
other action transitions

Prompted by review comments from:
https://review.openstack.org/#/c/31982/2/heat/engine/resource.py
related to blueprint: stack-suspend-resume

Change-Id: Idb18913ef6ff700b63d5ec6d340d2353fc2294b7
Merge "Remove unused python-memcached from requirements."
Initial Environment class and test

This implements the "resource-registry" and "parameters" section
I am holding off on the "properties" section until we really
know we need it.

blueprint environments
Change-Id: Ib6e9e5cd1c68c255dc048bdde21a6b3e1dc54243
Use physical resource names with a short_id

The short_id is a random, but stable, 12-character alphanumeric ID.

This will allow two resources of the same name to exist concurrently. That
is necessary for resources to be replaced during an update without
interruption.

Change-Id: If32904a47c6f8fb651e317ce91f2a04f6eadcc0b
Use the Environment from within the engine

at this point the concept only exists in the engine, the
api and client changes will come in later patches.

blueprint environments
Change-Id: I3e208bb72a04bf275bead2aec89006cf680b501b
Remove unused parameter.user_parameters()

blueprint environments
Change-Id: I21246a62f82064120d6ebd4c5e1c607f43df55bc
Use physical_resource_name() for Swift containers

This returns names which are of the same form, but which are based on the
resource id (and hence are stable).

Change-Id: Id091bdef74e07fc0df0e6e4914dae8af8b29384c
Fix bizarre Swift DeletionPolicy unit tests

If something shouldn't be called... don't tell the mocks to expect it to be
called. We will get UnexpectedMethodCallError if it is.

Change-Id: I61a7b77cb273b42177a37efa98fc62fd69770545
Use PhysName for testing Swift container names

Change-Id: Icc000a9235fcd9ee810581b932ded73319decfee
Make template_format.parse usable by environments

(environments don't want template sections)

blueprint environments
Change-Id: I68ac0b8fb0889d245ace4d0ea8d298460c4c1b1a
API support for Environments

Support "Environment" section in the create/update body.
We the roll up the parameters and the environment and send
that as json using the rpc "params" argument. So no changes
to the rpc layer are needed. The engine knows how to deal
with both formats in the Environments class.

blueprint envirnonments
Change-Id: I6d6085d5c052a5f9115ecd46891b00d2fad4d1db
Cleanup the doc strings in heat/rpc/client.py

Change-Id: Ia760937f729a1aa17d84c48054cb143bf6891bfd
scheduler: Improve task descriptions in debug logs

Tasks that were simply defined as ordinary functions (not methods) were
identified by their repr() in the logs, which is only really desirable as a
last resort and for objects (where the __call__() method is the task). Use
the function name instead.

Change-Id: Ie34a3602deb968979118b0961bcddf226cf5983f
scheduler: Simplify DependencyTaskGroup interface

Instead of passing a function that takes one argument and returns a task
that takes no arguments, simply pass a task that takes one argument.

Change-Id: I73d5f137d5db492c09e6887f80e7e759734c211f
Add InstanceId property to EIP resource

This also changes the InstanceId property for an EIPAssociation
to not be required, which was necessary for testing and is inline
with AWS documentation.

Change-Id: I49dd506309fe6a38df6727bca7f6bbebd45fba3f
Fixes: bug #1164864
Merge "Initial Environment class and test"
Add dependency between FloatingIP and RouterGateway

When a template has a FloatingIP and a RouterGateway on the same
external network, there is an implicit dependency on create where
the gateway must be created before the floating ip.

This is implemented by overiding add_dependencies in FloatingIP
and looking in the stack for RouterGateway resource to depend on.

Fixed bug: #1182266

Change-Id: I40f281e5bf2a27280d328fe11d32e6404f412a79
Add a Fn::Split function to aid provider templates

This needed to convert a parameter in CommaDelimedList into
a property of type List.

part of blueprint provider-resource
Change-Id: Id77a2c6be47427360a2be89ca1fea3c097807bac