a4066a86b5
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 |
||
---|---|---|
.. | ||
access | ||
exceptions | ||
extras | ||
fixture | ||
hacking | ||
identity | ||
loading | ||
tests | ||
__init__.py | ||
_utils.py | ||
adapter.py | ||
discover.py | ||
plugin.py | ||
service_token.py | ||
session.py | ||
token_endpoint.py |