Allow keystoneclient to work with older keystone installs

Older keystone installs may return 501 for GET / instead of 300
like today. We should be able to assume that if 501 is returned the
server will support v2.0 only.

Fixes bug 1159911

Change-Id: If264840d8678a490264f1bdb62f1b51c362619e1
Restore compatibility with PrettyTable < 0.7.2

PrettyTable 0.7.2 defaults to print a table even if
the resultset is empty. Restore previous behavior
to be in line with older prettytable releases.

Change-Id: Idd1d0c2c2f41966076517cbc8819ba9a5e097306
Refactor v3 API to support filtering

Fixes: bug #1175356

Future implementations of keystone API v3 will support server-side
filtering using key/value attributes. See additional details:
https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md#list-entities-filtered-by-attribute

To support this functionality **kwargs need to be passed from the
v3 API classes to keystoneclient.base.CrudManager.list.

This is not fully implemented server-side for all attributes so it's difficult to
document exactly which attributes will work. An example of a working attribute is:
keystone.users.list(name="someone")

Change-Id: I148093fbe37700f890ed44148aa3f63f34ee5ff5
Added Conflict Exception to the exception code map

The Conflict Exception is added for HTTP error code 409.
However this exception is never raised as this class is not added to
the error_code map and always raises the ClientException whenever a
409 code is returned.

Fixes bug #1168826

Change-Id: I7045eae33533ff603f4aab61ea988264b46f0d09
Perform oslo-incubator code sync.

run_tests.sh cannot install a virtualenv with tools/install_venv.py as
tools/install_venv_common.py depends on oslo.config which is an external
dependency. The virtualenv installer should not depend on any external
dependencies. Fix this by performing a code sync with oslo-incubator.

Note this adds a new dependency on six and changes the way versioning is
determined.

Change-Id: Ifb67bbfeec4eabc943c2a88a34fe535c57f174a1
Use testr instead of nose.

Part of blueprint grizzly-testtools

Change-Id: I76dee19781eaac21901b5c0258e83a42180c1702
change "int(marker)" to "marker" on user list pagination.

Change-Id: I7763b2cb3a1991402cb5e909a3cbf9d49f8e9bd1
Fixes: bug 1178152
Merge "Restore compatibility with PrettyTable < 0.7.2"
Merge "Added Conflict Exception to the exception code map"
Merge "Perform oslo-incubator code sync."
Merge "Use testr instead of nose."
Migrate to pbr.

Fixes bug 1179007

Change-Id: Iceb63c223faab49be01baa36c035f703ddf59fc0
Migrate to flake8.

Fixes bug 1172444.

Change-Id: Icd51f5d925d84dcec7df7c83ca43cd87bc1b090f
Make ManagerWithFind abstract and fix TokenManager

ManagerWithFind requires list() method in its descendants.
Make it abstract and fix its improper descendant TokenManager
that do not implement list().

Change-Id: I83ae47d894c02d5cd1eb0da437dd05796d0b0160
Fixes: bug #1180393
Allow secure user password update.

This patch allows the ability for user password to be updated via
a command prompt so the password doesnt show up in the bash history.
The prompted password is asked twice to verify the match.
If user cntl-D's the prompt a message appears suggesting user to use
either of the options to update the password.

Fixes: bug#938315

Change-Id: I4271ae569b922f33c34f9b015a7ee6f760414e39
Merge "Refactor v3 API to support filtering"
Merge "Allow secure user password update."
Pass memcache_servers as array

the python-memcached module expects memcache_servers to be an
array of strings or an array of tuples. Since we don't care about
server weighting, we can use an array of tuples for the unit test.

Fixes bug 1172723

Change-Id: Iafba2bda545ea334d5aba7135e153d8589612ba4
Only add logging handlers if there currently aren't any

This corrects an odd problem where Horizon would stand up multiple
client objects, which would cause duplicate/triplicate/dozens of
repeated log lines in its log files, due to multiple identical
handlers being added to the logging object

Fixes Bug 1182678

Change-Id: I020b3999c9008b996286ccb74a7801c96c43e71c
Default signing_dir to secure temp dir (bug 1181157)

Change-Id: I1a29f50b07a60de3d0519bf40074dbea92fa8656