Allow proper instance with volume suspension

When suspending a stack that contains an instance with a volume
attached through the instance's "Volumes" property, the stack will
go into a SUSPEND_COMPLETE state, but the actual instance will still
be in an ACTIVE state. This is because check_suspend_complete will
return TRUE without ever starting the instance's suspend task.
This commit ensures that the instance suspension TaskRunner is
actually started.

Change-Id: I77291d21b291242684cf42e7143b264521ba113e
Closes-Bug: #1284306
Allow handle_signal to assert which actions are valid

This retains the current behaviour for InstanceGroup and Restarter
while allowing other resources to apply different policies about
what actions are allowed when a signal is received. This is needed
by SoftwareDeployment, which can legitimately receive signals
during SUSPEND and DELETE.

Change-Id: I6f694451669b6c9b60b9fbd3ad77d0fc111bbb5a
Closes-Bug: #1286920
Allows vip from a different subnet for lbaas resource

This fix allows user to specify a different subnet while adding
a vip to a pool resource. If vip subnet is not provided, pool
subnet is used by default.

Change-Id: I0b7740ca37961ae412866cc15ab439dafbfcf9d9
Closes-Bug: #1286001
heat_keystoneclient don't pass project and trust_id

When creating a keystoneclient connection with a trust, we should
not pass the project_name, as the token can only be scoped to either
a trust or project, not both.  Previous versions of keystoneclient
worked with both, but recent changes mean this no longer works.

Change-Id: I5c7e7498137d428360f2b5f1e8bd2d079c80cd9b
Closes-Bug: #1288223
Fix HOT set_stack_id

HOTParameters.set_stack_id didn't return True in case of success, which
made the stack prints a spurious warning about not being able to set
StackId.

Change-Id: If8dc76a8588f730fd184abdab0be28e60a34fa99
Make user_creds_id a parser.Stack attribute

Expose the user_creds_id column via a stack attribute, like all
the other columns, this avoids loading another stack object from
the DB just to retrieve the id, and also provides a convenient
interface to update the id when required (via Stack.store())

Partial-Bug: #1266523
Change-Id: Id404f9402b24988266acd881d1e775aa3cfee60d
fix DB API user_creds_get for non-existent ID

If you pass a non-existent ID to the user_creds_get call, it throws
an exception "TypeError: 'NoneType' object is not iterable", but it
should probably return None to be consistent with other get methods

Partial-Bug: #1266523
Change-Id: I8887afa04d80b91ff4479c6ede3818da4d67d726
Add user_creds_delete to the DB API

Partial-Bug: #1266523
Change-Id: I8c49c6630ecaa856078146e032ba7a2fa61786d4
Move HOT template code to its own module

Change-Id: Id491feb251db7a42eddd6dcdcc2f68628e6f8c22
Add an InvalidTemplateVersion exception

Change-Id: I9dcc9a2d1ee611d0b8d6554c238784ea98a77930
Make template formats pluggable

Change-Id: I546c34db0803306feaa9bfd326a7aef837db0edb
Fix AccessPolicy update with added resources

This adds a test exposing bug #1286307 and moves the check for resources being
present from AccessPolicy's handle_create to check_create_complete. This defers
the check to a later point where the referenced resources are present.

Change-Id: I47573812a3f80f3ae5b858cca486ec5826f606fd
Closes-Bug: #1286307
Merge "Allow proper instance with volume suspension"
Merge "Fix AccessPolicy update with added resources"
Merge "Fix HOT set_stack_id"
Handle 503 response from Nova API

The stack fails when Nova responds with a 503 during a
create/update/delete.  503 (Service Unavailable) is an intermittent,
non-critical error and should be handled the same way OverLimit and 500
errors are being handled.

Change-Id: Iadc3b39d099fcc7870764b7a42c5edee41c527dc
Closes-Bug: #1289549
Merge "Move HOT template code to its own module"
Merge "Add an InvalidTemplateVersion exception"
Merge "Handle 503 response from Nova API"
Merge "Make user_creds_id a parser.Stack attribute"