Make auth_token return a V2 Catalog

As there is no way to distinguish a v2 or v3 catalog from the headers
provided to an application we will for the meantime always return a v2
catalog. This should not cause any issues as the full token data is not
provided to the service so there is no-one that will get caught out by a
v2/v3 mix, and anyone that is already supporting the v3 catalog format
will have to support the v2 catalog format as well so it will continue
to work.

Change-Id: Ic9b38e0ba4682b47ae295bd3f89bac59ef7437cf
Closes-Bug: #1302970
Move auth_token cache pool tests out of NoMemcache

There were cache pool tests in NoMemcacheAuthToken. Since this class
un-imports memcache, setting the memcached_servers option would just
be ignored anyways.

The tests were moved into a separate class and changed to not set
memcached_servers. The behavior should be the same.

Also, there was a cache pool test in CommonAuthTokenMiddlewareTest
that fit better in this new class.

Change-Id: Icfce7398f2a29753200c2010bba58924980622c0
Cached tokens aren't expired

The auth_token test said that the cached tokens are expired. The
tokens weren't expired, so remove the code.

Change-Id: I8ce30cc09ee9bbc19cc4ebdb5d935a80d2d5d473
Move auth_token tests not requiring v2/v3 to new class

The tests in CommonAuthTokenMiddlewareTest run for both v2 and v3
tokens, but contained tests that weren't affected by the token
version.

The tests that aren't affected by the token version are now in
their own class.

Change-Id: I0e8aecafcd8e0da262dded48a612c84b1629d953
Remove importutils from oslo config

The importutils module is only used by other oslo modules, so
remove it from openstack-common.conf. It'll be pulled in
automatically if it's needed.

Change-Id: Iaa7e047a9ff76f911f8c64b45ceb1f240855670a
Sync with oslo-incubator 2640847

Sync with oslo-incubator commit
2640847e3df7720457103d2111846c27fc8fdcd5 .

First, remove the existing code to cleanup:

 $ rm -r keyestoneclient/openstack/*

Then, sync from oslo-incubator:

 $ python update.py ../python-keystoneclient

Change-Id: Ic94906002e0257ffc56245e49890e7ee2f3b4a2a
auth_token hashes PKI token once

auth_token was hashing the PKI token multiple times. With this
change, the token is hashed once.

Change-Id: I70d3339d09deb2d3528f141d37138971038f4075
Related-Bug: #1174499
replace string format arguments with function parameters

There are files containing string format arguments inside
logging messages. Using logging function parameters should
be preferred.

Change-Id: Ibd9def4cf111d5dcf15dff64f85a723214a3c14e
Closes-Bug: #1320930
Add description param to v3 service create/update

Adding description to V3 services.create and service
update as an explicitly enumerated keyword argument

Change-Id: I5e51c8e47d0d6cfc448a6a72e08f27f71d9c80ec
Closes-Bug: #1188723
Add /role_assignments endpoint support

This patch adds role assignments list support
to keystoneclient.

Created RoleAssignment resource and RoleAssignmentManager
classes. RoleAssignmentManager only implements the list()
method, the other inherited methods from base.CrudManager
raises a MethodNotImplemented error with customized messages.

This bp is complimented with the OSC part:
https://blueprints.launchpad.net/python-openstackclient/+spec/roles-assignment-list

Change-Id: I164b58b67ff42320238e943ddfa9d0a8aadd0a6d
Implements: blueprint roles-assignment-support
Closes-Bug: #1246310
Merge "Make auth_token return a V2 Catalog"
Merge "replace string format arguments with function parameters"
Merge "Move auth_token cache pool tests out of NoMemcache"
Merge "Cached tokens aren't expired"
Merge "Move auth_token tests not requiring v2/v3 to new class"
Merge "Remove importutils from oslo config"
Merge "Sync with oslo-incubator 2640847"
Merge "auth_token hashes PKI token once"
auth_token middleware hashes tokens with configurable algorithm

The auth_token middleware always hashed PKI Tokens with MD5. This
change makes it so that PKI tokens can be hashed with SHA256 or any
other algorithm supported by hashlib.new(). This is for security
hardening.

auth_token has a new config option 'hash_algorithms' that is set
to the list of algorithms that will be used for hashing PKI tokens.
This will typically be set to a single hash algorithm which must
match the hash algorithm set in Keystone. Otherwise the tokens
in the revocation list will not match, leading to revoked tokens
being still usable.

During a transition from one algorithm to another,
'hash_algorithms' is set to both the new algorithm and the old
algorithm. Both of the hash algorithms will be used to match
against the revocation list and cache. Once the tokens using the
old algorithm have expired the old algorithm can be removed from
the list.

'hash_algorithms' defaults to ['md5'] for backwards compatibility.

DocImpact
SecurityImpact
Closes-Bug: #1174499

Change-Id: Ie524125dc5f6f1076bfd47db3a414b178e4dac80
Merge "Add description param to v3 service create/update"