Fix event_type names for stack CRUD notifications

According to the documentation [1] and for consistency, notifications
sent by Heat for stack CRUD operations must be :
orchestration.stack.{create,update,delete,suspend,resume}.{start,error,end}

Currently the notifications sent looks like (missing 'stack.')
orchestration.{create,update,delete,suspend,resume}.{start,error,end}

[1] https://wiki.openstack.org/wiki/SystemUsageData

Fixes bug #1273240

Change-Id: Id46158c495f10436b62755deaf5b6a91e2e7e4bc
Make context available during constraint validation

This makes context optionally available in properties and during
constraint validation, to be able to add more advanced constraints which
make API calls.

blueprint param-constraints

Change-Id: I6ec1d6bc952d82029638caea32567036e29e4881
heat_keystoneclient ensure admin client respects SSL options

The SSL related fixes merged under blueprint clients-ssl-options
and bug #1213122 missed the transient client created by
create_trust_context, so add the required options to
service_admin_creds, such that any client created using the
service admin credentials will use SSL if configured to do so.

Change-Id: Iab25c5ee6ec5cba9aaaccb93ce4e680e2f9cd9ac
Related-Bug: #1213122
heat_keystoneclient: Move v3 path logic to constructor

Work out the v3 path in the constructor and set it as a variable
as it is needed in more than one place so it's better to just
do this once.

Change-Id: I6f8e887c0eeacd3b2e78a71e36fcd93850a144c2
heat_keystoneclient: abstract admin_client to a property

To make the connection to keystone with admin credentials reusable
store the admin client object at the class level rather than local
to create_trust_context.  This will avoid the overhead of
getting two authenticated clients when other admin operations are
necessary.

Change-Id: Iaa043b829778f71d03e64a78ccb3f51eadfb3fba
blueprint: instance-users
Store files in the raw_template table

With the get_files intrinsic function, the files data will need to be
available at any time. This change adds a files column to the raw_template
table and saves/loads files from Template class.

Change-Id: I9fd705326ecfe7ca9e00624c67e7dd1965f95a96
test_signal add missing VerifyAll calls

Some tests set mox into replay mode without then doing VerifyAll so
add where missing.

Change-Id: I230768c1e170ab9fab5ca6131394058c2de019f1
Update heat.conf.sample for python-keystoneclient 0.5.0

python-keystoneclient 0.5.0 added a new oslo.config option:

 enforce_token_bind=permissive

Change-Id: Icffdef259be276c6c298ad3a5be8aa6c851f49f3
Updated from global requirements

Change-Id: I138166d61366c57bc772aaa283e9067d2181863e
Implement native signal API

Add a new signal action on resource to emulate CFN signal API.

blueprint native-signal-api

Change-Id: I33e1bd72f208d39c7a87ad8e3de63f94a5536022
Verify setenforce is executable

Some images/distros do not install/use selinux. This small change will
verify that `setenforce` is executable and in the path before attempting
to run the command. This prevents the script from erroring and causing a
failed `cloud-init` run.

Change-Id: I42f802c7994b8d907f0cc4e3b1a38e6fd89dac0c
Merge "heat_keystoneclient ensure admin client respects SSL options"
Merge "heat_keystoneclient: Move v3 path logic to constructor"
Merge "heat_keystoneclient: abstract admin_client to a property"
Resource type for software configuration

    Implementation of the SoftwareConfig resource. Some notes on the implementation:
    * This is a simple wrapper over the REST API, and is essentially
      just for defining data which gets stored.
    * SoftwareConfig will always be UpdateReplace, and the REST entity
      is immutable.
    * OS::Heat::SoftwareConfig will sometimes be used in a template directly
      and sometimes inside a resource provider template which
      defines CM-tool specific properties and aggregates the result into
      the OS::Heat::SoftwareConfig config property.

Implements: blueprint hot-software-config

Change-Id: I7350c31ec59d152751c6aa7d811a91e1df62e89d
A multipart cloud-init resource based on SoftwareConfig

This simple resource allows a multipart mime message to be built out
of an assembly of other SoftwareConfig resources. These assembled resources
will generally be a mixture of OS::Heat::CloudConfig and
OS::Heat::SoftwareConfig resources.

The full multipart content is fetched and stored during resource create.
This is safe since SoftwareConfig data is immutable once created.

Because cloud-init is boot only, this resource won't be used with
a SoftwareDeployment resource, also it will not have inputs or outputs.

Instead, a server's user_data can contain this resource via get_resource
when user_data_format is SOFTWARE_CONFIG.

Implements: blueprint cloud-init-resource

Change-Id: Id72f6ccb6802d654a1dec31f37fb0bcab0e36843
A cloud-config resource based on SoftwareConfig

This simple resource allows cloud-config to be specified
as a map property, and stores the resulting YAML as a SoftwareConfig
resource.

Because cloud-init is boot only, this resource won't be used with
a SoftwareDeployment resource, also it will not have inputs or outputs.

Instead, a server's user_data can contain this resource via get_resource
when user_data_format is SOFTWARE_CONFIG.

Implements: blueprint cloud-init-resource

Change-Id: I15c8d6a03b8da274531b76cca658e37def4eb460
RPC service for software config/deployment

These RPC service methods are wrappers over the DB API.

Implements: blueprint hot-software-config-rest
Change-Id: I2c2e53f633cca30533b9190ebccc0d6eddcfb21f
Merge "Store files in the raw_template table"
Merge "A multipart cloud-init resource based on SoftwareConfig"