Implement HOT intrinsic function get_file

This function takes a single string argument and uses that as the key
in a lookup into the template files. The resulting content is substituted
as a chunk of text.

The files keys can be arbitrary and the files section can be built manually
when generating the API request. However by convention heatclient will use
the absolute URL of the file as the key.

Change-Id: I83a73b14e1fbf56545151da1d8a0d7afe89149a4
Retrieve user_id from HTTP Headers to populate Context

We need the user_id within notifications sent by Heat to be able to
handle it in Ceilometer, currently only the username is provided which
can be non-uniq per tenant and could confuse the integrity of data.
The easiest way to do that is to populate the Context within the user_id
retrieved from Headers.
No need to store the user_id in Heat backend.

Related-Blueprint: send-notification

Change-Id: I88bd5612556d2000d72427308d17643f14d35306
Add a nova keypair constraint

The patch adds a new custom constraint validating nova keypairs, and
uses it in the Instance and Server resources.

blueprint param-constraints
Co-Authored-By: cedric.soulas@cloudwatt.com
Change-Id: I98ef4dd94a165da38e188d4a5d7c0b5d8ff76fef
Merge "Add a nova keypair constraint"
Merge "Implement HOT intrinsic function get_file"
Merge "Retrieve user_id from HTTP Headers to populate Context"