Merge "Fix API version inferred w/ un-versioned URLs"

This commit is contained in:
Zuul 2019-03-14 18:50:33 +00:00 committed by Gerrit Code Review
commit 0a984d7c4b
3 changed files with 6 additions and 3 deletions

View File

@ -54,6 +54,7 @@ API_VERSION_REQUEST_HEADER = 'X-OpenStack-Manila-API-Version'
EXPERIMENTAL_API_REQUEST_HEADER = 'X-OpenStack-Manila-API-Experimental' EXPERIMENTAL_API_REQUEST_HEADER = 'X-OpenStack-Manila-API-Experimental'
V1_SCRIPT_NAME = '/v1' V1_SCRIPT_NAME = '/v1'
V2_SCRIPT_NAME = '/v2'
class Request(webob.Request): class Request(webob.Request):
@ -219,7 +220,9 @@ class Request(webob.Request):
Microversions starts with /v2, so if a client sends a /v1 URL, then Microversions starts with /v2, so if a client sends a /v1 URL, then
ignore the headers and request 1.0 APIs. ignore the headers and request 1.0 APIs.
""" """
if not self.script_name: if not self.script_name or not (V1_SCRIPT_NAME in self.script_name or
V2_SCRIPT_NAME in self.script_name):
# The request is on the base URL without a major version specified
self.api_version_request = api_version.APIVersionRequest() self.api_version_request = api_version.APIVersionRequest()
elif V1_SCRIPT_NAME in self.script_name: elif V1_SCRIPT_NAME in self.script_name:
self.api_version_request = api_version.APIVersionRequest('1.0') self.api_version_request = api_version.APIVersionRequest('1.0')

View File

@ -177,7 +177,7 @@ class RequestTest(test.TestCase):
self.assertIsNone(request.set_api_version_request()) self.assertIsNone(request.set_api_version_request())
if not resource: if not resource or not ('/v1' in resource or '/v2' in resource):
self.assertEqual(api_version.APIVersionRequest(), self.assertEqual(api_version.APIVersionRequest(),
request.api_version_request) request.api_version_request)
elif 'v1' in resource: elif 'v1' in resource:

View File

@ -3,5 +3,5 @@ fixes:
- | - |
When manila API is run behind a proxy webserver, the API service was When manila API is run behind a proxy webserver, the API service was
parsing the major API version requested incorrectly, leading to incorrect parsing the major API version requested incorrectly, leading to incorrect
responses. This behavior has now been fixed. See `launchpad bug 1815038 responses. This behavior has now been fixed. See `launchpad bug 1818081
<https://bugs.launchpad.net/manila/+bug/1818081>`_ for more details. <https://bugs.launchpad.net/manila/+bug/1818081>`_ for more details.