Ensure routing key is specified in the address for a direct producer

This change is already merged in oslo-incubator.  Original commit
message body includes:

    Porting this fix from oslo.messaging.  This fixes the impl_qpid.py
    driver to allow it to work with the latest stable upstream QPID broker
    (version 0.28).  See the Apache Qpid Jira bug
    https://issues.apache.org/jira/browse/QPID-5557

Change-Id: If71f78e50f8a9b3acfd1e9d02c8271f17c4ebee7
Related-Bug: #1300318
(cherry picked from commit 3597ffca77133101943114b80fd4263bada87f4f)
Do not validate constraints in schema constructor

This patch moves validation of constraints out of the constructor of
schema objects into a separate method that can be invoked on the
schema objects after creation. This gives us more control over when
validation shall be invoked.

This patch fixes an issue with custom constraints that could not be
validated when having a default value, since they require the RPC
context to be present. However, the context was not present in the
places where needed.
The short-sighted fix would have been to change a lot of method
signatures to pass the context properly, but that did not seem to be
really clean. The better fix seemed to be to move validation into
a separate method that can be invoked with the proper context. This
will also give us more control on when we do validation, and which
validation we do.

This patch
Closes-Bug: #1314240

This patch will also enable to fix
Partial-Bug: #1314401

For that bug it will be necessary to switch off validation under
certain conditions, which was not possible before when doing
validation right in the constructor.

Cherry-pick from review https://review.openstack.org/#/c/91485
(cherry picked from commit 19f83e84269e1aec2d299ada616a4648e00f4333)

Conflicts:

        heat/engine/parameters.py
        heat/engine/service.py
        heat/tests/test_hot.py

Change-Id: I19e1fb520551eb42bf36bb380f1cc28c81bbaedd
Do no re-validate parameters for existing stacks

This patch disables validation of stack parameters values when
loading existing stacks from the database. The old behavior was
to always validate stack parameter values when initializing a
Stack object. However, this causes problems especially with
custom constraints when a constraint could be fulfilled during
stack creation but cannot be fulfilled at a later point (e.g.
when a flavor or keypair has been deleted). In such a case,
the existing stack became completely unusable.

This patch changes the behavior to not do parameter validation
for existing stacks. The assumption is that validation at stack
creation time should be sufficient to make sure the stack is valid,
so only valid stacks end up in the database. Therefore, validating
parameters again when loading stacks is not really required.

Closes-Bug: #1314401

Cherry-pick from review https://review.openstack.org/#/c/94329
(cherry picked from commit 349a6f04b53309f7fa8f3225f98d41670888d20c)

Conflicts:

        heat/tests/test_parser.py

Change-Id: I0947c2dcfb9db4c81b07de582aab86f262d0c008
Merge "Do not validate constraints in schema constructor" into stable/icehouse
Merge "Do no re-validate parameters for existing stacks" into stable/icehouse
Allow metadata updates to provider resources

If the metadata of a provider resource changes, we shouldn't replace the
whole provider.

This is not a backport, because this has been fixed more generically for
all resources in master, where update_allowed_properties no longer
exists.

Change-Id: I706b3a2faeef582e906fe2195d79200ab3853a2c
Closes-Bug: #1332354
Fix String Parameter Receive a unicode

Add unicode encode to parameter to make sure unicode will be
accepted correctly.

Change-Id: Idc9afad7971eaf0320d719946a3f09b8e15c1479
Closes-Bug: #1330370
(cherry picked from commit 7b8d32d58195a2b9098c837fe997d334e2529b8d)
Bump stable/icehouse next version to 2014.1.2

Change-Id: Id7181755d3609c0ae91c2402b34f2de02c06a1f0
Pass the parent's registry into child stacks

We make sure that there is no infinite recursion by not repeating
a TemplateResource within a resources inheritance.

Change-Id: I1ffa66886923b15b52a8075089dd4042f0a55862
Closes-Bug: #1297396
Merge "Fix String Parameter Receive a unicode" into stable/icehouse
Move novaclient exceptions to heat.tests.v1_1.fakes

Applying novaclient exceptions fix from commit:
9850832da563c1113e121b99d38feb21af9daa8d

"Raising nova exceptions has been moved to
heat.tests.v1_1.fakes.fake_exception since it is actually impossible
to directly create a nova exception object which works on both
novaclient 2.17 and (yet to be released) 2.18.
nova.exceptions.from_response is stable across novaclient releases
so all test exceptions are now raised using from_response."

Change-Id: I0c5e58ffdd3eb13b9a87df22f1c5e06cec972913
Closes-Bug: #1322098
Sync threadgroup module from the oslo stable branch

This is to allow change Idf5b7c1100fc85743ac6dc5831731f7ecc96bfd6 to be
applied to the stable branch.

Change-Id: I839129874de6697594fbe5f3bfb937180041bdbc
Stop periodic watcher tasks before deleting stack

In the case where a stack that has a watch task associated with it is
being deleted and the engine successfully acquires a lock, no attempt to
stop the stack will be made since it has no action in-progress.  This
will result in orphaned watcher tasks being left behind, since the
watcher tasks are normally stopped as part of the call to
ThreadGroup.stop().

To fix this, explicitly stop the periodic watcher tasks before calling
stack.delete().

Conflicts:
	heat/engine/service.py

Change-Id: Idf5b7c1100fc85743ac6dc5831731f7ecc96bfd6
Closes-Bug: #1315044
(cherry picked from commit 33ea3573422ac32f4bd1788603fef64bea7e85bd)
Updated from global requirements

Change-Id: Ib84db5aaf53e8f44efde0ae400ac6fa4187f27df
Merge "Allow metadata updates to provider resources" into stable/icehouse
Merge "Updated from global requirements" into stable/icehouse
Merge "Pass the parent's registry into child stacks" into stable/icehouse
Merge "Move novaclient exceptions to heat.tests.v1_1.fakes" into stable/icehouse
Merge "Sync threadgroup module from the oslo stable branch" into stable/icehouse
Merge "Stop periodic watcher tasks before deleting stack" into stable/icehouse