Fix alphanumeric comparisons for openstack and ubuntu releases
- sync charmhelpers with fix-alpha helpers - fix up code where the alpha comparisons are done - fix tests which assumed mocks would just work on os_release() Change-Id: I3d142f04bedc7dde12f3c079534cd43841fa8401 Related-Bug: #1659575
This commit is contained in:
parent
8e47569e74
commit
628b106f12
@ -47,6 +47,7 @@ from charmhelpers.contrib.openstack.utils import (
|
||||
openstack_upgrade_available,
|
||||
pausable_restart_on_change as restart_on_change,
|
||||
is_unit_paused_set,
|
||||
CompareOpenStackReleases,
|
||||
)
|
||||
from charmhelpers.contrib.openstack.ha.utils import (
|
||||
update_dns_ha_resource_params,
|
||||
@ -234,7 +235,7 @@ def install_ceilometer_ocf():
|
||||
dest_file = LEGACY_OCF_FILE
|
||||
src_file = 'ocf/openstack/ceilometer-agent-central'
|
||||
|
||||
if os_release('ceilometer-common') >= 'liberty':
|
||||
if CompareOpenStackReleases(os_release('ceilometer-common')) >= 'liberty':
|
||||
dest_file = "/usr/lib/ocf/resource.d/openstack/ceilometer-polling"
|
||||
src_file = 'ocf/openstack/ceilometer-polling'
|
||||
# delete ocf file due to package no longer exists after upgrade
|
||||
@ -288,7 +289,7 @@ def ha_joined(relation_id=None):
|
||||
delete_resources = []
|
||||
|
||||
RES_KEY = LEGACY_RES_KEY
|
||||
if os_release('ceilometer-common') >= 'liberty':
|
||||
if CompareOpenStackReleases(os_release('ceilometer-common')) >= 'liberty':
|
||||
RES_KEY = NEW_RES_KEY
|
||||
delete_resources.append(LEGACY_RES_KEY)
|
||||
|
||||
|
@ -19,7 +19,10 @@ from charmhelpers.core.hookenv import (
|
||||
config
|
||||
)
|
||||
|
||||
from charmhelpers.contrib.openstack.utils import os_release
|
||||
from charmhelpers.contrib.openstack.utils import (
|
||||
os_release,
|
||||
CompareOpenStackReleases,
|
||||
)
|
||||
|
||||
from charmhelpers.contrib.openstack.context import (
|
||||
OSContextGenerator,
|
||||
@ -46,7 +49,8 @@ class MongoDBContext(OSContextGenerator):
|
||||
def __call__(self):
|
||||
mongo_servers = []
|
||||
replset = None
|
||||
use_replset = os_release('ceilometer-common') >= 'icehouse'
|
||||
_release = os_release('ceilometer-common')
|
||||
use_replset = CompareOpenStackReleases(_release) >= 'icehouse'
|
||||
|
||||
for relid in relation_ids('shared-db'):
|
||||
rel_units = related_units(relid)
|
||||
|
@ -41,6 +41,7 @@ from charmhelpers.contrib.openstack.utils import (
|
||||
os_application_version_set,
|
||||
token_cache_pkgs,
|
||||
enable_memcache,
|
||||
CompareOpenStackReleases,
|
||||
)
|
||||
from charmhelpers.core.hookenv import config, log
|
||||
from charmhelpers.fetch import apt_update, apt_install, apt_upgrade
|
||||
@ -159,8 +160,8 @@ def register_configs():
|
||||
# if called without anything installed (eg during install hook)
|
||||
# just default to earliest supported release. configs dont get touched
|
||||
# till post-install, anyway.
|
||||
release = get_os_codename_package('ceilometer-common', fatal=False) \
|
||||
or 'grizzly'
|
||||
release = (get_os_codename_package('ceilometer-common', fatal=False) or
|
||||
'grizzly')
|
||||
configs = templating.OSConfigRenderer(templates_dir=TEMPLATES,
|
||||
openstack_release=release)
|
||||
|
||||
@ -234,8 +235,9 @@ def services():
|
||||
_services = set(_services)
|
||||
# Bug#1664898 Remove check for ceilometer-agent-central
|
||||
# service.
|
||||
codename = get_os_codename_install_source(config('openstack-origin'))
|
||||
if codename >= 'liberty' and 'ceilometer-agent-central' in _services:
|
||||
cmp_codename = CompareOpenStackReleases(
|
||||
get_os_codename_install_source(config('openstack-origin')))
|
||||
if cmp_codename >= 'liberty' and 'ceilometer-agent-central' in _services:
|
||||
_services.remove('ceilometer-agent-central')
|
||||
return list(_services)
|
||||
|
||||
@ -291,20 +293,22 @@ def do_openstack_upgrade(configs):
|
||||
|
||||
|
||||
def ceilometer_release_services():
|
||||
codename = get_os_codename_install_source(config('openstack-origin'))
|
||||
if codename >= 'mitaka':
|
||||
cmp_codename = CompareOpenStackReleases(
|
||||
get_os_codename_install_source(config('openstack-origin')))
|
||||
if cmp_codename >= 'mitaka':
|
||||
return MITAKA_SERVICES
|
||||
elif codename >= 'icehouse':
|
||||
elif cmp_codename >= 'icehouse':
|
||||
return ICEHOUSE_SERVICES
|
||||
else:
|
||||
return []
|
||||
|
||||
|
||||
def ceilometer_release_packages():
|
||||
codename = get_os_codename_install_source(config('openstack-origin'))
|
||||
if codename >= 'mitaka':
|
||||
cmp_codename = CompareOpenStackReleases(
|
||||
get_os_codename_install_source(config('openstack-origin')))
|
||||
if cmp_codename >= 'mitaka':
|
||||
return MITAKA_PACKAGES
|
||||
elif codename >= 'icehouse':
|
||||
elif cmp_codename >= 'icehouse':
|
||||
return ICEHOUSE_PACKAGES
|
||||
else:
|
||||
return []
|
||||
@ -424,7 +428,7 @@ def run_in_apache():
|
||||
"""Return true if ceilometer API is run under apache2 with mod_wsgi in
|
||||
this release.
|
||||
"""
|
||||
return os_release('ceilometer-common') >= 'ocata'
|
||||
return CompareOpenStackReleases(os_release('ceilometer-common')) >= 'ocata'
|
||||
|
||||
|
||||
def disable_package_apache_site():
|
||||
|
2
tox.ini
2
tox.ini
@ -14,7 +14,7 @@ install_command =
|
||||
pip install --allow-unverified python-apt {opts} {packages}
|
||||
commands = ostestr {posargs}
|
||||
whitelist_externals = juju
|
||||
passenv = HOME TERM AMULET_* CS_API_URL
|
||||
passenv = HOME TERM AMULET_* CS_API_*
|
||||
|
||||
[testenv:py27]
|
||||
basepython = python2.7
|
||||
|
@ -65,6 +65,7 @@ class CeilometerContextsTest(CharmTestCase):
|
||||
'port': 8090
|
||||
}
|
||||
self.test_relation.set(data)
|
||||
self.os_release.return_value = 'havana'
|
||||
self.assertEquals(contexts.MongoDBContext()(),
|
||||
{'db_host': 'mongodb', 'db_port': 8090,
|
||||
'db_name': 'ceilometer'})
|
||||
|
@ -52,6 +52,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
def test_register_configs(self):
|
||||
self.os.path.exists.return_value = True
|
||||
self.init_is_systemd.return_value = False
|
||||
self.os_release.return_value = 'havana'
|
||||
configs = utils.register_configs()
|
||||
calls = []
|
||||
for conf in (utils.CEILOMETER_CONF, utils.HAPROXY_CONF,
|
||||
@ -63,6 +64,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
def test_register_configs_apache22(self):
|
||||
self.os.path.exists.return_value = False
|
||||
self.init_is_systemd.return_value = False
|
||||
self.os_release.return_value = 'havana'
|
||||
configs = utils.register_configs()
|
||||
calls = []
|
||||
for conf in (utils.CEILOMETER_CONF, utils.HAPROXY_CONF,
|
||||
@ -74,6 +76,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
def test_register_configs_systemd(self):
|
||||
self.os.path.exists.return_value = True
|
||||
self.init_is_systemd.return_value = True
|
||||
self.os_release.return_value = 'havana'
|
||||
configs = utils.register_configs()
|
||||
calls = []
|
||||
for conf in (utils.CEILOMETER_CONF, utils.HAPROXY_CONF,
|
||||
@ -99,6 +102,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
def test_restart_map(self):
|
||||
"""Ensure that alarming services are present for < OpenStack Mitaka"""
|
||||
self.get_os_codename_install_source.return_value = 'icehouse'
|
||||
self.os_release.return_value = 'icehouse'
|
||||
restart_map = utils.restart_map()
|
||||
self.assertEquals(
|
||||
restart_map,
|
||||
@ -123,6 +127,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
def test_restart_map_mitaka(self):
|
||||
"""Ensure that alarming services are missing for OpenStack Mitaka"""
|
||||
self.get_os_codename_install_source.return_value = 'mitaka'
|
||||
self.os_release.return_value = 'mitaka'
|
||||
self.maxDiff = None
|
||||
restart_map = utils.restart_map()
|
||||
self.assertEquals(
|
||||
@ -159,6 +164,7 @@ class CeilometerUtilsTest(CharmTestCase):
|
||||
self.config.side_effect = self.test_config.get
|
||||
self.test_config.set('openstack-origin', 'cloud:trusty-kilo')
|
||||
self.get_os_codename_install_source.return_value = 'kilo'
|
||||
self.os_release.return_value = 'kilo'
|
||||
self.enable_memcache.return_value = False
|
||||
configs = MagicMock()
|
||||
utils.do_openstack_upgrade(configs)
|
||||
|
Loading…
Reference in New Issue
Block a user