Merge "Fix charm so that on focal it uses named service"

This commit is contained in:
Zuul 2021-06-08 09:00:40 +00:00 committed by Gerrit Code Review
commit f232f45f3f
2 changed files with 54 additions and 0 deletions

View File

@ -236,8 +236,28 @@ class DesignateBindCharm(openstack_charm.OpenStackCharm):
group = 'bind'
def __init__(self, release=None, **kwargs):
self._ensure_override_service_name()
super(DesignateBindCharm, self).__init__(release='icehouse', **kwargs)
@classmethod
def _ensure_override_service_name(cls):
"""Override the bind9 service to named for focal+
This class is instantiated for all versions of Ubuntu, but we also need
to check for the host being focal to override the named service to
'named'.
"""
release = host.CompareHostReleases(
host.lsb_release()['DISTRIB_CODENAME'])
if release >= 'focal':
cls.services = ['named']
cls.restart_map = {
'/etc/bind/named.conf.options': cls.services,
'/etc/bind/named.conf': cls.services,
'/etc/bind/rndc.key': cls.services,
}
cls.default_service = 'named'
@staticmethod
def get_rndc_algorithm():
"""Algorithm used to encode rndc secret

View File

@ -33,6 +33,13 @@ class Helper(test_utils.PatchHelper):
super().setUp()
self.patch('charmhelpers.core.hookenv.config', name='ch_config')
self.ch_config.side_effect = lambda: {'ssl_param': None}
self.patch_object(designate_bind, "host", name="ch_core_host")
self.ch_core_host.lsb_release.return_value = {
"DISTRIB_CODENAME": "bionic"
}
# simply the CompareHostReleases to just return then string for
# comparisons. (won't work for xenial/bionic)
self.ch_core_host.CompareHostReleases.side_effect = lambda x: x
self.patch('charms_openstack.charm.core._singleton', new=None)
@ -44,6 +51,33 @@ class TestOpenStackDesignateBind(Helper):
designate_bind.install()
self.install.assert_called_once_with()
def test_service_is_bind9_pre_focal(self):
charm = designate_bind.DesignateBindCharm.singleton
self.assertEqual(charm.services, ["bind9"])
for v in charm.restart_map.values():
self.assertEqual(v, ["bind9"])
self.assertEqual(charm.default_service, "bind9")
def test_service_is_bind9_when_bionic(self):
self.ch_core_host.lsb_release.return_value = {
"DISTRIB_CODENAME": "bionic"
}
charm = designate_bind.DesignateBindCharm.singleton
self.assertEqual(charm.services, ["bind9"])
for v in charm.restart_map.values():
self.assertEqual(v, ["bind9"])
self.assertEqual(charm.default_service, "bind9")
def test_service_is_named_focal_plus(self):
self.ch_core_host.lsb_release.return_value = {
"DISTRIB_CODENAME": "focal"
}
charm = designate_bind.DesignateBindCharm.singleton
self.assertEqual(charm.services, ["named"])
for v in charm.restart_map.values():
self.assertEqual(v, ["named"])
self.assertEqual(charm.default_service, "named")
def test_init_rndckey(self):
self.patch_object(
designate_bind.DesignateBindCharm.singleton, 'init_rndckey')