Mark keystoneclient as being a universal wheel

Change-Id: I216b422175dba6e1ca1623c21ff87f4d2fd0a486
Authenticate via oauth

Add support to authenticate with keystone via oauth access tokens.

Change-Id: Ie0eb3290d71661852cc7774bcdb1eb56971987be
implements: bp add-oauth-support
Remove left over vim headers

These files were being added at the time when the comments were removed
from the rest of the project.

Change-Id: I5ece3ee3f7ce02ffd3914c644a2b99fc84c3f31c
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
Add support for extensions-list

Add support to list extensions in the v2.0 API.

Change-Id: I4ddf888966e2ed51cf8cb1171aded8025440cfd4
Closes-Bug: #1313266
Merge "auth_token middleware hashes tokens with configurable algorithm"
Fix attributes ordering at v3/client.py

Fix attributes alphabetical ordering at
v3/client.py.

Change-Id: I1ca71a56a6a710b231a8ed770835d45d3cf01cda
Merge "Authenticate via oauth"
Merge "Add support for extensions-list"
Merge "Mark keystoneclient as being a universal wheel"
Sync with oslo-incubator caed79d

This syncs python-keystoneclient with oslo-incubator commit hash
caed79d8239679cb74476bb0d9e5011b4fcc39da

First, remove the existing code to cleanup:
 $ rm -r keystoneclient/openstack/*

Then, sync from oslo-incubator:
 $ python update.py ../python-keystoneclient

Commits since last sync (2640847):
----------------------------------
1173e46 Remove ValueError when accessing sys.modules
90ae24b Remove redundant default=None for config options
18f2bc1 Enforce unicode json output for jsonutils.load[s]()
4a777e5 Fix warnings in doc build for apiclient

Related-Bug: #1315523
Closes-Bug: #1314129
Change-Id: Id53ea2d4828e81bc6270f186849f391e7bc73101
Merge "Sync with oslo-incubator caed79d"
Fix a misspelling in a comment

Change-Id: If049cef6def1249fd0f70e16385aa7a4167edbde
Clean up oauth auth plugin code

1) remove unnecessary setup
2) remove unnecessary init
3) change order of assertEquals

Change-Id: I852f6ba79e871e286d49836dab105ac18b6519a6
Closes-Bug: #1324379
Merge "Remove left over vim headers"
Merge "Clean up oauth auth plugin code"
Session loading from conf

Allow loading session objects from oslo.config. We want a generic way to
do this for auth_token middleware and for servers creating session
objects for inter-service communication.

Change-Id: I1e83280b2f76f16041ed8d5ed598db70210112bd
Session loading from CLI options

We will want this to standardize session loading amongst the various
CLIs.

Change-Id: Icc740db6d471a0953b7946e00e6317802b6d2255
Plugin loading from config objects

Provide a pattern for auth plugins to load themselves from a config
object. The first user of this will be auth_token middleware however it
is not likely to be the only user.

By doing this in an exportable way we are defining a single config file
format for specifying how to load a plugin for all services.

Loading from CONF is just one of the ways plugins might be loaded.
The decision not to expose params as oslo.config options is on
purpose as there is cliff and other loading mechanisms besides
oslo.config we need to support.

Blueprint: plugin-params
Change-Id: I353b26a1ffc04a20666e76f5bd2f1e6d7c19a22d