Fix broken OpenStack pkg version check
The current OpenStack version check uses a package which does not have semantic versioning and is not listed on the dict of package version in charmhelpers. This change fixes this by using a package which does have semantic versioning and is in the dict of versions. If no package is installed which fit these requirements then os_release is relied on to fallback to another method (checking openstack-origin). Change-Id: I256b2782e83e2619108726eeb27505d5f1854284 Closes-Bug: #1741628
This commit is contained in:
parent
6f83bdef6b
commit
db3c8fb6c2
|
@ -96,7 +96,13 @@ def make_default_select_release_handler():
|
|||
"""
|
||||
release_version = unitdata.kv().get(OPENSTACK_RELEASE_KEY, None)
|
||||
if release_version is None:
|
||||
release_version = os_utils.os_release('python-keystonemiddleware')
|
||||
try:
|
||||
pkg = os_utils.get_installed_semantic_versioned_packages()[0]
|
||||
except IndexError:
|
||||
# A non-existent package will cause os_release to try other
|
||||
# tactics for deriving the release.
|
||||
pkg = 'dummy-package'
|
||||
release_version = os_utils.os_release(pkg)
|
||||
unitdata.kv().set(OPENSTACK_RELEASE_KEY, release_version)
|
||||
return release_version
|
||||
|
||||
|
|
|
@ -105,6 +105,10 @@ class TestDefaults(BaseOpenStackCharmTest):
|
|||
kv = mock.MagicMock()
|
||||
self.patch_object(chm.unitdata, 'kv', new=lambda: kv)
|
||||
self.patch_object(chm.os_utils, 'os_release')
|
||||
self.patch_object(
|
||||
chm.os_utils,
|
||||
'get_installed_semantic_versioned_packages',
|
||||
return_value=['cinder-common'])
|
||||
# set a release
|
||||
kv.get.return_value = 'one'
|
||||
release = h.map['function']()
|
||||
|
@ -118,7 +122,7 @@ class TestDefaults(BaseOpenStackCharmTest):
|
|||
release = h.map['function']()
|
||||
self.assertEqual(release, 'two')
|
||||
kv.set.assert_called_once_with(chm.OPENSTACK_RELEASE_KEY, 'two')
|
||||
self.os_release.assert_called_once_with('python-keystonemiddleware')
|
||||
self.os_release.assert_called_once_with('cinder-common')
|
||||
|
||||
def test_default_select_package_type_handler(self):
|
||||
self.assertIn('charm.default-select-package-type',
|
||||
|
|
Loading…
Reference in New Issue