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
Merge "Fix String Parameter Receive a unicode" into stable/icehouse
Merge "Allow metadata updates to provider resources" into stable/icehouse
Merge branch 'stable/icehouse' of https://github.com/openstack/heat into icehouse