Adjust Python 2.6 OSerror-on-EPIPE workaround

Adjust the code to raise exceptions.CertificateConfigError
when the certificates are still missing even in the Python
2.6 subprocess bug-workaround case.

Change-Id: I9fdfa830e6f9bc9e8eab496da2597e4118577ec5
Closes-Bug: #1324921
auth_token _cache_get checks token expired

When auth_token stores the token in the cache, it's stored with
the expiration time; but when the token is retrieved from the
cache, if the expiration time has passed the token is treated as if
it wasn't cached. This creates extra work because now auth_token
has to check the token expiration (either by decrypting the PKI
token or online validation for UUID tokens).

With this change, getting the token from the cache will fail if the
expiration is past.

Change-Id: Id0ec6b3c2e5af4a2d910f16da4e0312733fc2198
Merge "auth_token _cache_get checks token expired"
Updated from global requirements

Change-Id: I0804468699cd7af0b3b520c07fd0aeff809bd2b1
Imports to fix build warnings

There were warnings generated during the build due to missing
attributes, like this:

 keystoneclient.rst:7: WARNING: missing attribute mentioned in
   :members: or __all__: module keystoneclient.__init__, attribute
   v2_0

This is fixed by importing the symbol in __init__.

Closes-Bug: #1315523

Change-Id: I565c78ef8910353c4e1ce1641b42fba7cdbd77d8
Doc build fails if warnings

If the docstrings are invalid then the commit should fail the gate.

Change-Id: Iabe506fa914ac5e742c0c5f4682ed0471c4a64ca
Add role ids to the AccessInfo

Role Names are already there, add ids as well.

Change-Id: Ie6f14a60b182ec2f4ab97c6ced564e63a2f5169a
Add issued handlers to auth_ref and fixtures

issued_at is a standard part of V2 and V3 tokens so add it to
AccessInfo in a similar way to expiry. Also it should be included when
generating tokens so include it in fixtures.

Change-Id: I0d62d8ce6472466886751e10e98046b8e398e079
Rename v3._AuthConstructor to v3.AuthConstructor

Since more auth plugins depending on v3._AuthConstructor are created
in separated modules, this class should no longer be named as it was
private.

Auth plugins using v3._AuthConstructor currently are:

- SAML2 auth plugin (under review)
- oAuth auth plugin (merged with basecode)

Change-Id: Ia097941a465a972dc7ca177a74c8fb8d21d219e6
Update keystoneclient code to account for hacking 0.9.2

Fixed most of the errors reported back from hacking 0.9.2.
Specifically:
- E128 continuation line under-indented for visual indent
- E251 unexpected spaces around keyword / parameter equals
- E265 block comment should start with '# '
- H305 imports not grouped correctly
- H307 like imports should be grouped together
- H402 one line docstring needs punctuation
- H904 Wrap long lines in parentheses instead of a backslash

But opted to ignore the following for now:
- E122: continuation line missing indentation or outdented
- H405: multi line docstring summary not separated with an empty line

Change-Id: Ib8e698d85fd598fa91435538657361a1f695ce89
Merge "Add role ids to the AccessInfo"
Unversioned endpoints in service catalog

If you pass a version number to the endpoint_filter then an identity
plugin will make a request to the URL in the service catalog and find an
appropriate URL for the requested version.

It caches the response to each of the discovery queries so that it
should only query once per URL.

This will only work for applications that create session objects
directly as the legacy model does not use the get_endpoint features of
an identity plugin.

This change showed an inconsistency in the docstrings between discovery
and the usage of discovery so the docstring was fixed.

Blueprint: endpoint-version-query
Change-Id: I277f2f6ad6c8cd44f1a9c06cf07d62bc8f8b383b
Merge "Update keystoneclient code to account for hacking 0.9.2"
Merge "Imports to fix build warnings"
Merge "Doc build fails if warnings"
Session Adapters

A Session is a global object that can be shared around. There are
however many variables (those passed to session.request) that are
specific to the client that will be using that session. These often need
to be set for every request going through a client.

For this purpose we have a Session Adapter. An adapter is like a
view on a session. Where the session maintains very global state the
adapter maintains state relevant to a specific usage of a session. These
might be things like User-Agent which wants to be set per client using
the session, or possibly even auth plugins if we share a common session
object amongst a number of clients with different plugins.

Almost anything that gets passed to a Session.request() call is suitable
to go into an adapter (the exceptions are essentially the body data and
method which only makes sense per call)

Implements: blueprint session-propagation
Change-Id: I100c791806674213d3cdb5389d4b0a1cf88c82dd
Merge "Unversioned endpoints in service catalog"
Add invalidate doc string to identity plugin

This was simply copied and pasted from the abstract method it overrides.

Change-Id: Ica349e7302434be43e08fc272e8fce5699553d9a
Make parameters in EndpointManager optional

Change adminurl and internalurl parameters in EndpointManager create()
to optional parameters.

Change-Id: I490e35b89f7ae7c6cdbced6ba8d3b82d5132c19d
Closes-Bug: #1318436
Correcting using-api-v2.rst

Changes
* removed extraneous word from Introduction section

Closes-Bug: #1334915
Change-Id: I201ddb70a4d91e0d615e322abc43848993dee573