Use the new microversion-parse library to parse the version headers
Closes-Bug: #1584718 Change-Id: Icb2e21775d1500878bb6d29f45e82e32f14332aa
This commit is contained in:
parent
d68aea2ebe
commit
5552e54d8b
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user