versionutils: Add support for post-Z releases
OpenStack has already reached its Z release. Add handling for post-Z releases such as 2023.1 (Antelope), so that consumers can use the common definition instead of hard-coding release names. Change-Id: I7a0d907c50a6ab60f3c71c4f74dd5c0774dbdeb7 Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
@@ -69,9 +69,9 @@ class DeprecatedTestCase(test_base.BaseTestCase):
|
||||
self.assertThat(retval, matchers.Equals((1, 'of anything')))
|
||||
|
||||
@mock.patch('oslo_log.versionutils.report_deprecated_feature')
|
||||
def test_deprecated_with_unknown_future_release(self, mock_reporter):
|
||||
def test_deprecated_with_old_style_release(self, mock_reporter):
|
||||
@versionutils.deprecated(
|
||||
as_of=versionutils.deprecated.BEXAR,
|
||||
as_of=versionutils.deprecated.ZED,
|
||||
in_favor_of='different_stuff()',
|
||||
)
|
||||
def do_outdated_stuff():
|
||||
@@ -83,8 +83,27 @@ class DeprecatedTestCase(test_base.BaseTestCase):
|
||||
mock_reporter,
|
||||
what='do_outdated_stuff()',
|
||||
in_favor_of='different_stuff()',
|
||||
as_of='Bexar',
|
||||
remove_in='D',
|
||||
as_of='Zed',
|
||||
remove_in='2023.2',
|
||||
)
|
||||
|
||||
@mock.patch('oslo_log.versionutils.report_deprecated_feature')
|
||||
def test_deprecated_with_new_style_release(self, mock_reporter):
|
||||
@versionutils.deprecated(
|
||||
as_of=versionutils.deprecated.ANTELOPE,
|
||||
in_favor_of='different_stuff()',
|
||||
)
|
||||
def do_outdated_stuff():
|
||||
return
|
||||
|
||||
do_outdated_stuff()
|
||||
|
||||
self.assert_deprecated(
|
||||
mock_reporter,
|
||||
what='do_outdated_stuff()',
|
||||
in_favor_of='different_stuff()',
|
||||
as_of='2023.1',
|
||||
remove_in='2024.1',
|
||||
)
|
||||
|
||||
@mock.patch('oslo_log.versionutils.report_deprecated_feature')
|
||||
|
||||
@@ -65,9 +65,6 @@ _deprecated_msg_with_no_alternative_no_removal = _(
|
||||
|
||||
|
||||
_RELEASES = {
|
||||
# NOTE(morganfainberg): Bexar is used for unit test purposes, it is
|
||||
# expected we maintain a gap between Bexar and Folsom in this list.
|
||||
'B': 'Bexar',
|
||||
'F': 'Folsom',
|
||||
'G': 'Grizzly',
|
||||
'H': 'Havana',
|
||||
@@ -89,8 +86,22 @@ _RELEASES = {
|
||||
'X': 'Xena',
|
||||
'Y': 'Yoga',
|
||||
'Z': 'Zed',
|
||||
'2023.1': '2023.1',
|
||||
'2023.2': '2023.2',
|
||||
'2024.1': '2024.1',
|
||||
'2024.2': '2024.2',
|
||||
'2025.1': '2025.1',
|
||||
'2025.2': '2025.2',
|
||||
'2026.1': '2026.1',
|
||||
'2026.2': '2026.2',
|
||||
'2027.1': '2027.1',
|
||||
'2027.2': '2027.2',
|
||||
'2028.1': '2028.1',
|
||||
'2028.2': '2028.2',
|
||||
}
|
||||
|
||||
_RELEASE_KEYS = list(_RELEASES)
|
||||
|
||||
|
||||
def register_options() -> None:
|
||||
"""Register configuration options used by this library.
|
||||
@@ -154,9 +165,6 @@ class deprecated:
|
||||
|
||||
"""
|
||||
|
||||
# NOTE(morganfainberg): Bexar is used for unit test purposes, it is
|
||||
# expected we maintain a gap between Bexar and Folsom in this list.
|
||||
BEXAR = 'B'
|
||||
FOLSOM = 'F'
|
||||
GRIZZLY = 'G'
|
||||
HAVANA = 'H'
|
||||
@@ -178,6 +186,13 @@ class deprecated:
|
||||
XENA = 'X'
|
||||
YOGA = 'Y'
|
||||
ZED = 'Z'
|
||||
ANTELOPE = '2023.1'
|
||||
BOBCAT = '2023.2'
|
||||
CARACAL = '2024.1'
|
||||
DALMATIAN = '2024.2'
|
||||
EPOXY = '2025.1'
|
||||
FLAMINGO = '2026.1'
|
||||
GAZPACHO = '2026.2'
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -265,16 +280,14 @@ class deprecated:
|
||||
|
||||
|
||||
def _get_safe_to_remove_release(release: str, remove_in: int | None) -> str:
|
||||
# TODO(dstanek): this method will have to be reimplemented once
|
||||
# when we get to the X release because once we get to the Y
|
||||
# release, what is Y+2?
|
||||
if remove_in is None:
|
||||
remove_in = 0
|
||||
new_release = chr(ord(release) + remove_in)
|
||||
if new_release in _RELEASES:
|
||||
return _RELEASES[new_release]
|
||||
else:
|
||||
return new_release
|
||||
|
||||
new_release_idx = _RELEASE_KEYS.index(release) + remove_in
|
||||
try:
|
||||
return _RELEASES[_RELEASE_KEYS[new_release_idx]]
|
||||
except IndexError:
|
||||
return 'UNKOWN'
|
||||
|
||||
|
||||
def deprecation_warning(
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The ``oslo_log.versionutils`` module now supports releases after Zed.
|
||||
Reference in New Issue
Block a user