Patch 033 migration to work w/ MySQL 5.6

With MySQL 5.6 setup to use UTF-8 for everything, the 033 migration
will fail. This is because a VARCHAR(256) cannot be indexed in UTF-8
databases. In versions of MySQL before 5.6, this produced a warning and
a truncated, less-useful index. In 5.6 it was changed to an error.

We will reduce these columns further to 64 bytes in the model in a
subsequent fix. For now, we will just create the table with 64 character
columns on new systems, which will allow this migration to work properly
on mysql-5.6. There is no danger of overflow, as 64 chars is what Keystone
uses for them anyway.

Change-Id: I27b9c61828301ba8c392b3d316f656641af753bc
Closes-Bug: #1316646
Remove unused parameter name in validate_value

Previously validate method for parameters uses "name" for raising
specific error during validation in check_* methods. In patch
I4a1dc2e65e7b118347933bdf18aba49c058aa28b this code was replaced on
validate_constraints. However validate_constraints does not use "name"
parameter. So it should be removed.

Change-Id: I278bd7828ca3a27925d024d443a16a7f75fd6937
Unit tests: Check for lost resource after failed rollback

Check that when a new resource is added to a stack during an update and it
is unable to be deleted during rollback, that we do not lose track of it
but rather it remains in the template whence we can later attempt again to
delete it.

Change-Id: I83ebbc16c84561b69f9bdb8e7485de85b695c1b8
Related-Bug: #1330016
Implement cinder client plugin

This moves the client creation code out of Clients._cinder() into
its own client plugin.

Cinder is a core project, and python-cinderclient is a dependency,
so the import is now mandatory (including the volume_backups import).

Change-Id: I6b937422cd8e20fa620a7e875ae8b4c61e8f9cf8
Change help text for StructuredConfig.CONFIG property

Current help text 'serialized to the chosen format' is misleading
as it only converts to JSON. Hooks have the responsibility to
convert to the required format and use it.

Change-Id: Ic9df130193982c3a89330931812512e055a49029
Closes-Bug: #1339464
Fix OS::Trove::Instance restore_point property

python-troveclient expects restorePoint to be a dictionary with a
"backupRef" key.

Change-Id: Ib4d83e82dcd5c012fdc12255a93682a6c2d9f47c
Closes-Bug: #1338626
Merge "Unit tests: Check for lost resource after failed rollback"
Convert WaitConditionHandle to use handle_signal

The metadata_update interface does pretty much the exact same thing
as handle_signal, with the disadvantage that it's not exposed via
the native ReST API, so convert WaitConditionHandle to use
handle_signal.

This has the following advantages:
- Provides a step towards native waitcondition resources
- Enables signalling existing waitcondition resources via
  heat resource-signal (e.g the native API)
- Moves towards a standardized model where handle_signal is the
  only supported plugin interface for asynchronous signalling of
  resources.

To avoid breaking any CD folks who may not update heat-engine and
heat-api-cfn at the same time, the existing resource interface is
maintained with a deprecation warning (how long to maintain this
is TBC).

Change-Id: Id7dde1c5f13683950a1cb483ae2ce4d1fbf2a56e
blueprint: native-waitcondition
Refactor waitcondition resources to allow easier subclassing

Rework the WaitCondition resources to define some class variables
which will make inheriting from them to implement native resources
easier.

Change-Id: Icf58185cb172b455c927dfe79763f9bb1c5ffed0
blueprint: native-waitcondition
Add an OS::Heat::WaitCondition resource

Refactor so the existing CFN compatible resource and a new native
resource can share the same base implementation.  It's mostly
cosmetic changes to the interfaces, but note the handle reference
is not expected to be a signed URL for the native resource as
native (non ec2token) auth will be used for the native handle.

Note partial test coverage of the new resource is provided via the
existing tests due to the inheritance, but full coverage will be
added via the patch which implements the matching native handle.

Change-Id: I2bc6cb8313bf576188d5d740dac00ce54cb38f3e
blueprint: native-waitcondition
Merge "Change help text for StructuredConfig.CONFIG property"
Merge "Remove unused parameter name in validate_value"
Merge "Patch 033 migration to work w/ MySQL 5.6"
Merge "Convert WaitConditionHandle to use handle_signal"
Merge "Refactor waitcondition resources to allow easier subclassing"
Merge "Add an OS::Heat::WaitCondition resource"
Merge "Implement cinder client plugin"
Merge "Fix OS::Trove::Instance restore_point property"