Pass backdoor_port to services being launched

Change-Id: I7227648f9b9e1d3e30f4b2d03964ee5c625a1024
Add DynamicLoopCall timers to ThreadGroups

Change-Id: I99a67355a7af054c17d3f6807609dbb11ad40631
Remove the notifier and its dependencies from log.py

Move the code related to the publish error handler out of the
log module so its easier for other projects to consume it

Fixes LP #1179528

Change-Id: Ibf28ba17f81b5ddeda653f6a3501ecac18ffcd42
Adds --nodeps option to update.py

Discards dependencies of configured modules when set.

Change-Id: I4210c9b2d96d4c0750175823b47e39b4097be6ac
Add 't', 'y', and `strict` to `bool_from_string`

't' and 'y' are commonly used for booleans as well, and since it's used in
Nova already, probably makes sense to add common support for it.

`strict` allows callers to detect anonmolous values so they can be handled
separately. This is particularly useful when parsing input from API calls
where bad values might result in 4XX errors instead of being treated as False.

Change-Id: I6218a1895f72cfbfd81776602e63ca3d093475e0
Merge "Add 't', 'y', and `strict` to `bool_from_string`"
Fixes import order nits

Change-Id: I4fdc8eed74dd90d6450864daba7492d5e7266448
Merge "Adds --nodeps option to update.py"
Update KillFilter to stop at '\0' for readlink() function.

Python's readlink() implementation doesn't stop at '\0' when reading
file path. Thus after dnsmasq upgrade, it may return something like
'/usr/sbin/dnsmasq\03453 (deleted)', while C's or Shell's readlink()
return '/usr/sbin/dnsmasq'. This patch fixes this problem by cutting
the readlink() results with '\0', so that KillFilter could get correct
path.

Bug 1179793

Change-Id: I7354941e0508e019c8c9b63b87ad39f52ccb51ca
Support capping message versions in the client.

When doing a rolling upgrade, we need to be able to tell all rpc clients
to hold off on sending newer versions of messages until all nodes
understand the new message version.  This patch adds the oslo component
of this.

It's quite simple.  The rpc proxy just stores the version cap and will
raise an exception if code ever tries to send a message that exceeds
this cap.

Allowing the cap to be configured and generating different types of
messages based on the configured value is the hard part here, but that
is left up to the project using the rpc library.

Implements blueprint rpc-version-control.

Change-Id: Ia69db03a80dc3b1c63d52c7e163ea3cfec80c882
Merge "Update KillFilter to stop at '\0' for readlink() function."
Merge "Fixes import order nits"
Merge "Remove the notifier and its dependencies from log.py"
Merge "Add DynamicLoopCall timers to ThreadGroups"
Merge "Pass backdoor_port to services being launched"
Implement apiclient library

This library can be used in novaclient, keystoneclient,
glanceclient, and other client projects. The library
contains common code and uses python-requests for
HTTP communication.

Features:
* reissue authentication request for expired tokens;
* pluggable authentication;
* store authentication information in a keyring;
* rich exceptions hierarchy;
* utils for building CLI tools.

Partially implements: blueprint common-client-library

Change-Id: Ic8b466a57554018092c31c6d6b3ea62f181d7cef