Add qpid-python to requirements

Qpid is a supported messaging library, and without this it is
necessary to install it manually in order to use Qpid in some
environments, notably the one used by TripleO.

Change-Id: I398c1d35295223cbc6969b386129c6fc9acbefc7
Closes-Bug: #1225191
Fix handle_create of NetDHCPAgent for updating

When NetDHCPAgent is updated with new network_id which is already
associated with the dhcp_agent_id, UPDATE_FAILED occurs in Heat. Fix
handle_create to check associating information to avoid this situation.

Closes-bug: #1272258
Change-Id: Ic827295e773d893d9af6d7cf1c687aee69e98298
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
Merge "Add qpid-python to requirements"
Merge "Fix handle_create of NetDHCPAgent for updating"
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