Merge "Fix charm so that on focal it uses named service"
This commit is contained in:
commit
f232f45f3f
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue