Use openstack-release package to determine codename
The use of package versions to look up OpenStack codenames is deprecated for in favor of using the openstack-release package. The openstack-release package is available for Wallaby onward. Change-Id: I9038c9785a4f36b854a1fb7e8d5baaf91a99c70e
This commit is contained in:
parent
bcd0c9b4b4
commit
8960e070f2
|
@ -616,6 +616,14 @@ class BaseOpenStackCharm(object, metaclass=BaseOpenStackCharmMeta):
|
||||||
apt_cache_sufficient=False):
|
apt_cache_sufficient=False):
|
||||||
"""Derive OpenStack release codename from a package.
|
"""Derive OpenStack release codename from a package.
|
||||||
|
|
||||||
|
|
||||||
|
Initially, see if the openstack-release pkg is available (by trying
|
||||||
|
to install it) and use it instead.
|
||||||
|
|
||||||
|
If it isn't then it falls back to the existing method of checking the
|
||||||
|
version of the package passed and then resolving the version from that
|
||||||
|
using lookup tables.
|
||||||
|
|
||||||
:param package: Package name to lookup (ie. in apt cache)
|
:param package: Package name to lookup (ie. in apt cache)
|
||||||
:type package: str
|
:type package: str
|
||||||
:param codenames: Map of package to (version, os_release) tuples.
|
:param codenames: Map of package to (version, os_release) tuples.
|
||||||
|
@ -644,6 +652,11 @@ class BaseOpenStackCharm(object, metaclass=BaseOpenStackCharmMeta):
|
||||||
:rtype: Optional[str]
|
:rtype: Optional[str]
|
||||||
:raises: AttributeError, ValueError
|
:raises: AttributeError, ValueError
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
codename = os_utils.get_installed_os_version()
|
||||||
|
if codename:
|
||||||
|
return codename
|
||||||
|
|
||||||
try:
|
try:
|
||||||
vers = BaseOpenStackCharm.get_package_version(
|
vers = BaseOpenStackCharm.get_package_version(
|
||||||
package,
|
package,
|
||||||
|
|
|
@ -899,6 +899,8 @@ class TestMyOpenStackCharm(BaseOpenStackCharmTest):
|
||||||
'upstream_version')
|
'upstream_version')
|
||||||
self.patch_object(chm_core.os_utils, 'snap_install_requested',
|
self.patch_object(chm_core.os_utils, 'snap_install_requested',
|
||||||
return_value=False)
|
return_value=False)
|
||||||
|
self.patch_object(chm_core.os_utils, 'get_installed_os_version')
|
||||||
|
self.get_installed_os_version.return_value = None
|
||||||
self.upstream_version.return_value = '3.0.0~b1'
|
self.upstream_version.return_value = '3.0.0~b1'
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
chm_core.BaseOpenStackCharm.get_os_codename_package(
|
chm_core.BaseOpenStackCharm.get_os_codename_package(
|
||||||
|
@ -913,7 +915,14 @@ class TestMyOpenStackCharm(BaseOpenStackCharmTest):
|
||||||
'newton')
|
'newton')
|
||||||
self.upstream_version.assert_called_once_with(
|
self.upstream_version.assert_called_once_with(
|
||||||
pkg_mock.version)
|
pkg_mock.version)
|
||||||
|
# Test Wallaby
|
||||||
|
self.get_installed_os_version.return_value = 'wallaby'
|
||||||
|
self.assertEqual(
|
||||||
|
chm_core.BaseOpenStackCharm.get_os_codename_package(
|
||||||
|
'testpkg', codenames),
|
||||||
|
'wallaby')
|
||||||
# Test non-fatal fail
|
# Test non-fatal fail
|
||||||
|
self.get_installed_os_version.return_value = None
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
chm_core.BaseOpenStackCharm.get_os_codename_package(
|
chm_core.BaseOpenStackCharm.get_os_codename_package(
|
||||||
'unknownpkg', codenames, fatal=False),
|
'unknownpkg', codenames, fatal=False),
|
||||||
|
|
Loading…
Reference in New Issue