Merge "Use the new microversion-parse library to parse the version headers"

This commit is contained in:
Zuul 2024-04-15 23:38:05 +00:00 committed by Gerrit Code Review
commit d68490c6fe
2 changed files with 13 additions and 11 deletions

View File

@ -14,6 +14,7 @@
import functools
import microversion_parse as mvp
from webob import exc
from ironic.common.i18n import _
@ -56,19 +57,19 @@ class Version(object):
:returns: a tuple of (major, minor) version numbers
:raises: webob.HTTPNotAcceptable
"""
version_str = headers.get(Version.string, default_version)
if version_str.lower() == 'latest':
parse_str = latest_version
else:
parse_str = version_str
try:
version = tuple(int(i) for i in parse_str.split('.'))
except ValueError:
version = ()
version_str = mvp.get_version(headers,
service_type='baremetal',
legacy_headers=[Version.string])
if not version_str:
version_str = default_version
if version_str.lower() == 'latest':
version_str = latest_version
if len(version) != 2:
version = mvp.parse_version_string(version_str)
if len(version) != 2:
raise ValueError
except (ValueError, TypeError, AttributeError):
raise exc.HTTPNotAcceptable(_(
"Invalid value for %s header") % Version.string)
return version

View File

@ -49,3 +49,4 @@ openstacksdk>=0.48.0 # Apache-2.0
sushy>=4.8.0
construct>=2.9.39 # MIT
netaddr>=0.9.0 # BSD
microversion_parse>=1.0.1 # Apache-2.0