Install resource-agents-extra on jammy.
The install hooks rsync a set of scripts and one of the destinations is /usr/lib/stonith/plugins/external, this directory is created by the installation of the package cluster-glue which is a pulled as an indirect dependency of pacemaker, this changed on >=jammy where an intermediate package named resource-agents was split into resource-agents-base and resource-agents-extra wher the latter doesn't get installed and it's the one that depends on cluster-glue. The specific chain of dependencies are: focal: pacemaker -> pacemaker-resource-agents -> resource-agents -> cluster-glue jammy pacemaker -> pacemaker-resource-agents -> resource-agents-base Change-Id: Ia00061bff2ebe16d35d52b256c61243935edabba Closes-Bug: #1971841
This commit is contained in:
parent
715d31e09f
commit
32ab2d4bda
@ -167,7 +167,11 @@ def install():
|
|||||||
# NOTE(dosaboy): we currently disallow upgrades due to bug #1382842. This
|
# NOTE(dosaboy): we currently disallow upgrades due to bug #1382842. This
|
||||||
# should be removed once the pacemaker package is fixed.
|
# should be removed once the pacemaker package is fixed.
|
||||||
status_set('maintenance', 'Installing apt packages')
|
status_set('maintenance', 'Installing apt packages')
|
||||||
apt_install(filter_installed_packages(PACKAGES), fatal=True)
|
if CompareHostReleases(get_distrib_codename()) >= 'jammy':
|
||||||
|
pkgs = PACKAGES + ['resource-agents-extra']
|
||||||
|
else:
|
||||||
|
pkgs = PACKAGES
|
||||||
|
apt_install(filter_installed_packages(pkgs), fatal=True)
|
||||||
setup_ocf_files()
|
setup_ocf_files()
|
||||||
|
|
||||||
|
|
||||||
|
@ -379,6 +379,7 @@ class TestHooks(test_utils.CharmTestCase):
|
|||||||
super(TestHooks, self).setUp(hooks, self.TO_PATCH)
|
super(TestHooks, self).setUp(hooks, self.TO_PATCH)
|
||||||
self.config.side_effect = self.test_config.get
|
self.config.side_effect = self.test_config.get
|
||||||
|
|
||||||
|
@mock.patch.object(hooks, 'get_distrib_codename')
|
||||||
@mock.patch.object(hooks, 'emit_corosync_conf')
|
@mock.patch.object(hooks, 'emit_corosync_conf')
|
||||||
@mock.patch.object(hooks.os, 'mkdir')
|
@mock.patch.object(hooks.os, 'mkdir')
|
||||||
@mock.patch.object(hooks, 'filter_installed_packages')
|
@mock.patch.object(hooks, 'filter_installed_packages')
|
||||||
@ -386,7 +387,9 @@ class TestHooks(test_utils.CharmTestCase):
|
|||||||
@mock.patch.object(hooks, 'apt_install')
|
@mock.patch.object(hooks, 'apt_install')
|
||||||
@mock.patch.object(hooks, 'status_set')
|
@mock.patch.object(hooks, 'status_set')
|
||||||
def test_install(self, status_set, apt_install, setup_ocf_files,
|
def test_install(self, status_set, apt_install, setup_ocf_files,
|
||||||
filter_installed_packages, mkdir, emit_corosync_conf):
|
filter_installed_packages, mkdir, emit_corosync_conf,
|
||||||
|
get_distrib_codename):
|
||||||
|
get_distrib_codename.return_value = 'focal'
|
||||||
filter_installed_packages.side_effect = lambda x: x
|
filter_installed_packages.side_effect = lambda x: x
|
||||||
expected_pkgs = [
|
expected_pkgs = [
|
||||||
'crmsh', 'corosync', 'pacemaker', 'python3-netaddr', 'ipmitool',
|
'crmsh', 'corosync', 'pacemaker', 'python3-netaddr', 'ipmitool',
|
||||||
@ -403,6 +406,8 @@ class TestHooks(test_utils.CharmTestCase):
|
|||||||
setup_ocf_files.assert_called_once_with()
|
setup_ocf_files.assert_called_once_with()
|
||||||
|
|
||||||
mkdir.reset_mock()
|
mkdir.reset_mock()
|
||||||
|
apt_install.reset_mock()
|
||||||
|
get_distrib_codename.return_value = 'jammy'
|
||||||
|
|
||||||
def raise_():
|
def raise_():
|
||||||
raise FileExistsError()
|
raise FileExistsError()
|
||||||
@ -410,6 +415,8 @@ class TestHooks(test_utils.CharmTestCase):
|
|||||||
mkdir.side_effect = lambda p, mode: raise_()
|
mkdir.side_effect = lambda p, mode: raise_()
|
||||||
hooks.install()
|
hooks.install()
|
||||||
mkdir.assert_called_once_with('/etc/corosync', mode=0o755)
|
mkdir.assert_called_once_with('/etc/corosync', mode=0o755)
|
||||||
|
apt_install.assert_called_once_with(
|
||||||
|
expected_pkgs + ['resource-agents-extra'], fatal=True)
|
||||||
|
|
||||||
@mock.patch('pcmk.set_property')
|
@mock.patch('pcmk.set_property')
|
||||||
@mock.patch.object(hooks, 'is_stonith_configured')
|
@mock.patch.object(hooks, 'is_stonith_configured')
|
||||||
|
Loading…
Reference in New Issue
Block a user