Get pool members from DB API

When the Load Balancer members are created as a result of autoscaling
groups calling _lb_update, the reference to the current members is
stored in the database and not in the template.  Treat ResourceData
mappings as canonical.

Closes-Bug: #1248218
Change-Id: Iaf8097eff6ad5ae0809d56604699dca2b08db3f4
Allow nova metadata to be updated

Note this is metadata not Metadata (confusing, I know).

This does not need to be run in a task as the server does not
change state for metadata changes.

Change-Id: If5f9ee89984fab388c0c9d839fbe23a59c68046b
Closes-bug: #1250638
Make instance Tags updatable

Note: I don't think that there is an issue with autoscaling tags
as autoscaling drives the instance via the properties and it doesn't
update intances anyways, it only creates/destroys instances.

Change-Id: I3cea4180f22690ea226273cc96132db6ae3dde12
Closes-bug: #1240885
Add _() to fix i18N compliance (part 2)

In heat, almost 200 log message and at least 30 exception
message are not processed by _(), and will not been translated.
We should use '_("STRING ...")' to enable i18n support.

I split to two parts for review easier because the files
lost of _() are too much.

Change-Id: I36ccd119fc1dcb58e98b77b2c9d139af6a380a7a
Closes-Bug: #1249217
Fixes Error when contain Non-ascii in template

when set template use non-english resource_name and execute
"heat -v resource-list $stack_id". KeyError will occur because
heat can not encode it correctly. This patch will implement
a process to encode the resource_name.

The patch use a new module (strutils.py) taken from
oslo-incubator in order to use safe_encode() and
safe_decode(), and this module is useful for future
patchs.

Change-Id: Idddda20d96bca32cb4df94ede31b40f7141e3afe
Closes-Bug: #1249238
Merge "Fixes Error when contain Non-ascii in template"
Merge "Add _() to fix i18N compliance (part 2)"
Database changes for multi-engine support

Add a stack_lock database table to use as a distributed stack lock to
avoid race conditions when multiple engines are deployed.

Blueprint multiple-engines

Change-Id: I0b8e244a73295dca307cb09ea5da2ebe709134b1
Implement stack-locking for multi-engine support

Implements a distributed stack lock using the database to avoid race
conditions when multiple engines are deployed.

Blueprint multiple-engines

Change-Id: If3c47dafcc5bc1b2188b7737205291bbab8bc231
Utilize stack-lock for multi-engine support

Utilize a distributed stack lock to avoid race conditions when multiple
engines are deployed.

Blueprint multiple-engines

Change-Id: I2278c7922557b6234cd7ff162cea92af83e9fb8b