Merge "Correct discover_version response"
This commit is contained in:
commit
083391ba0d
|
@ -275,19 +275,32 @@ def discover_version(client, requested_version):
|
|||
server_start_version, server_end_version = _get_server_version_range(
|
||||
client)
|
||||
|
||||
valid_version = requested_version
|
||||
if not server_start_version and not server_end_version:
|
||||
msg = ("Server does not support microversions. Changing server "
|
||||
"version to %(min_version)s.")
|
||||
LOG.debug(msg, {"min_version": DEPRECATED_VERSION})
|
||||
valid_version = APIVersion(DEPRECATED_VERSION)
|
||||
else:
|
||||
valid_version = _validate_requested_version(
|
||||
requested_version,
|
||||
server_start_version,
|
||||
server_end_version)
|
||||
return APIVersion(DEPRECATED_VERSION)
|
||||
|
||||
_validate_server_version(server_start_version, server_end_version)
|
||||
|
||||
# get the highest version the server can handle relative to the
|
||||
# requested version
|
||||
valid_version = _validate_requested_version(
|
||||
requested_version,
|
||||
server_start_version,
|
||||
server_end_version)
|
||||
|
||||
# see if we need to downgrade for the client
|
||||
client_max = APIVersion(MAX_VERSION)
|
||||
if client_max < valid_version:
|
||||
msg = _("Requested version %(requested_version)s is "
|
||||
"not supported. Downgrading requested version "
|
||||
"to %(actual_version)s.")
|
||||
LOG.debug(msg, {
|
||||
"requested_version": requested_version,
|
||||
"actual_version": client_max})
|
||||
valid_version = client_max
|
||||
|
||||
_validate_server_version(server_start_version, server_end_version)
|
||||
return valid_version
|
||||
|
||||
|
||||
|
|
|
@ -216,7 +216,12 @@ class DiscoverVersionTestCase(utils.TestCase):
|
|||
("3.1", "3.3", "3.4", "3.7", "3.3", True), # Server too new
|
||||
("3.9", "3.10", "3.0", "3.3", "3.10", True), # Server too old
|
||||
("3.3", "3.9", "3.7", "3.17", "3.9", False), # Requested < server
|
||||
("3.5", "3.8", "3.0", "3.7", "3.8", False, "3.7"), # downgraded
|
||||
# downgraded because of server:
|
||||
("3.5", "3.8", "3.0", "3.7", "3.8", False, "3.7"),
|
||||
# downgraded because of client:
|
||||
("3.5", "3.8", "3.0", "3.9", "3.9", False, "3.8"),
|
||||
# downgraded because of both:
|
||||
("3.5", "3.7", "3.0", "3.8", "3.9", False, "3.7"),
|
||||
("3.5", "3.5", "3.0", "3.5", "3.5", False), # Server & client same
|
||||
("3.5", "3.5", "3.0", "3.5", "3.5", False, "2.0", []), # Pre-micro
|
||||
("3.1", "3.11", "3.4", "3.7", "3.7", False), # Requested in range
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
fixes:
|
||||
- |
|
||||
The ``discover_version`` function in the ``cinderclient.api_versions``
|
||||
module was documented to return the most recent API version supported
|
||||
by both the client and the target Block Storage API endpoint, but it
|
||||
was not taking into account the highest API version supported by the
|
||||
client. Its behavior has been corrected in this release.
|
||||
[Bug `1826286 <https://bugs.launchpad.net/bugs/1826286>`_]
|
Loading…
Reference in New Issue