keystoneauth/keystoneauth1
Monty Taylor a4066a86b5
Add url manipulation and microversion collection
From the API-WG spec, there are two common patterns for service URLs
that can be interpreted. Trailing project_id and a string that starts
with v. If the project_id is in the URL, it needs to be removed before
discovery can happen, but it needs to be put back on to the url found
via discovery. If the endpointin the catalog has a version, and it
matches the version we're asking for, then we don't need to go hunting
for the unversioned doc.

Also, in the EndpointData we're collecting, we want to grab microversion
info, since we're already there in the discovery doc.

There is one behavior change that can be seen in the tests. If the
attempt at an unversioned discovery endpoint fails, we fall back to the
url from the catalog ... but we attempt to get a discovery document from
it because we need the metadata for microversions. The catalog URL should be
returned as the endpoint even if the second discovery call attempt
succeeds, so the user-facing interface is the same - there will just be,
in some cases, an additional URL fetch behind the scenes.

Change-Id: I2a036d65e4f7dba6f50daf6a0ce4589ee59ae95f
2017-06-26 06:00:34 -05:00
..
access Rework EndpointData construction to normalize catalog first 2017-06-11 22:01:21 -05:00
exceptions Fix ClientException message property not set properly 2017-01-26 12:28:05 +00:00
extras Merge "Allow setting EndpointReference in ADFSPassword" 2017-05-16 20:14:39 +00:00
fixture Add url manipulation and microversion collection 2017-06-26 06:00:34 -05:00
hacking Move to the keystoneauth1 namespace 2015-06-25 16:48:54 -07:00
identity Add url manipulation and microversion collection 2017-06-26 06:00:34 -05:00
loading Pass kwargs to the plugin getter 2017-06-12 17:04:42 +02:00
tests Add url manipulation and microversion collection 2017-06-26 06:00:34 -05:00
__init__.py Provide a RFC 7231 compliant user agent string 2015-12-15 16:45:17 -06:00
_utils.py Disables TCP_KEEPCNT when using Windows Subsystem for Linux 2016-08-23 03:36:45 +00:00
adapter.py Add global_request_id param to Adapter constructor 2017-05-25 08:47:07 -04:00
discover.py Add url manipulation and microversion collection 2017-06-26 06:00:34 -05:00
plugin.py Removing tox ignore D400. 2016-04-18 21:20:51 +00:00
service_token.py Add a service token wrapper 2016-10-11 14:14:40 +11:00
session.py Rework discovery cache 2017-06-25 16:31:27 -05:00
token_endpoint.py Adding authentication compatibility for OpenStackClient 2016-03-07 23:38:22 +00:00