Eliminate multiple contexts in zmq call()

Because we need compatibility with Grizzly (N-1 support), this should be
reduced to two copies for Havana, before stripping down to a singular
copy for I.

The '-reply' request has its context key removed, with the
msg option maintaining one extra copy of context until I.
A TODO has been entered to clean this up following the Havana release.

This fix eliminates an extra JSON double-deserialization routine.
The double-serialization of context is still performed for Grizzly
compatibility.

fixes bug 1156956

Change-Id: I071e382ec9c7e0df3794fe9ca574a5722f8910a6
Enable message envelope.

Grizzly had the ability to receive messages with an envelope, but did
not send them.  Now update the code to send them.

Change-Id: I73aad7697cf83ad4aabb3c2058b7cc4f53f783c2
Gracefully handle errors in logging config files

Fixes bug #1154245

If the parameter to the --log-config option cannot be loaded by the
logging.config.fileConfig() function, you get an exception like this
raised:

  NoSectionError: No section: 'formatters'

which doesn't do much to help users understand the error.

Improve the situation by wrapping the error in a custom exception type
giving this:

 LogConfigError: Error loading logging config /etc/logging.conf: No section: 'formatters'

Also add some tests to check we raise this error under the most common
failure conditions.

Change-Id: I6ad2eb4867213b6356ce43d75da50218d1b498f6
lockutils: improve the external locks test

Use a separate directory for the lockutils external locks and for the
test's flocks which are used to check that serialization is actually
occurring. By using the same directory, we can't test the code in
lockutils which auto-creates this directory because the dir gets
deleted by a process by lockutils cleanup while another directory
is using it for flocks.

Also, assume the the handles directory has been created in the parent
rather than having each child attempt to create it.

Related, add a try/finally block so that when a child process throws an
exception it immediately exits rather than deleting the temporary
directories created by the parent.

Change-Id: I32d7e8e05fb3f22cf38fa586f8bc97646c83f182
lockutils: add a failing unit test

Add a unit test which fails because of #1107950 - in this case,
lockutils is deleting the lock directory every time the lock is dropped
even though another process might have acquired a lock using that
directory.

Change-Id: Ic82409f9462e570bc102ab469334c53aafc6d7ac
Locking edge case when lock_path does not exist

Fixes bug 1158179

In the case that the lock_path does not exist and there is a contested
resource then the process that was waiting on the lock will not
be locking due to the fact that the directory was deleted.

Change-Id: I75d720d4df499e85386d3e2cc86b927b017e12ac
Improves Logging for for rpc method timeouts

This patch moves the traceback for an rpc timeout from inside an
iterator, which gave a useless traceback, into the main flow of the
program.

It also adds the rpc method being called and the topic used to the
exception's message.

When the caller logs the message higher up the stack, the log
information and traceback will be more useful.

Finally it removes the timeout logging in the amqp.py module, in the
spirit of bug #1137994 and https://review.openstack.org/#/c/23295/

Works towards: bug #1148516

Change-Id: I29a3b1b97c6114c4479e2b71c1257c4d72131535
Include Co-authored-by entries in AUTHORS.

Co-authored-by lines are the way we've decided to indicated shared
authorship of a patch, so content from them should be included in
the generated AUTHORS file.

Fixes bug 1158319.

Change-Id: I9dacf78c01f3ad74e696f16a7aa39edb98e8d185
Merge "Gracefully handle errors in logging config files"
Merge "lockutils: improve the external locks test"
Merge "Enable message envelope."
Merge "Improves Logging for for rpc method timeouts"
Merge "Eliminate multiple contexts in zmq call()"
Merge "lockutils: add a failing unit test"
Merge "Locking edge case when lock_path does not exist"
Remove unused imports

Change-Id: Idf2235300fa2c1c73563ddcff6ce9e84bd11ea0e
Merge "Include Co-authored-by entries in AUTHORS."
Fix problem with setting SSL protocol in QPid

looks like we were setting the wrong param

Fixes LP# 1158807

Change-Id: Id138926f737ce87618d625aa8b289c508a66aaf4
Merge "Remove unused imports"
Merge "Fix problem with setting SSL protocol in QPid"