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 functools
|
||||||
|
|
||||||
|
import microversion_parse as mvp
|
||||||
from webob import exc
|
from webob import exc
|
||||||
|
|
||||||
from ironic.common.i18n import _
|
from ironic.common.i18n import _
|
||||||
@ -56,19 +57,19 @@ class Version(object):
|
|||||||
:returns: a tuple of (major, minor) version numbers
|
:returns: a tuple of (major, minor) version numbers
|
||||||
:raises: webob.HTTPNotAcceptable
|
: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:
|
try:
|
||||||
version = tuple(int(i) for i in parse_str.split('.'))
|
version_str = mvp.get_version(headers,
|
||||||
except ValueError:
|
service_type='baremetal',
|
||||||
version = ()
|
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(_(
|
raise exc.HTTPNotAcceptable(_(
|
||||||
"Invalid value for %s header") % Version.string)
|
"Invalid value for %s header") % Version.string)
|
||||||
return version
|
return version
|
||||||
|
@ -49,3 +49,4 @@ openstacksdk>=0.48.0 # Apache-2.0
|
|||||||
sushy>=4.8.0
|
sushy>=4.8.0
|
||||||
construct>=2.9.39 # MIT
|
construct>=2.9.39 # MIT
|
||||||
netaddr>=0.9.0 # BSD
|
netaddr>=0.9.0 # BSD
|
||||||
|
microversion_parse>=1.0.1 # Apache-2.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user