Skip test_z99_crash_controller_non_main_vip unless kexec-tools available

In later OSP releases, kexec-tools package is not installed on overcloud
images - Due to this, controller nodes are not recovered after
a triggering a kernel panic on more then one (in a setup with
three controllers, two of them need to be healthy in order to have quorum)

Change-Id: I32a8cb7d803eefa89695bdde0b04cb22180dde66
This commit is contained in:
Eduardo Olivares
2022-10-05 09:24:21 +02:00
parent e2badf777a
commit d31d4729f7
2 changed files with 16 additions and 0 deletions

View File

@@ -173,6 +173,7 @@ class DisruptTripleoNodesTest(testtools.TestCase):
cloud_disruptions.crash_controller_main_vip()
OvercloudHealthCheck.run_after()
@overcloud.skip_unless_kexec_tools_installed
def test_z99_crash_controller_non_main_vip(self):
OvercloudHealthCheck.run_before()
cloud_disruptions.crash_controllers_non_main_vip()

View File

@@ -341,6 +341,21 @@ skip_unless_ovn_using_ha = tobiko.skip_unless(
'OVN does not use HA DB model', is_ovn_using_ha)
@functools.lru_cache()
def are_kexec_tools_installed():
for controller in topology.list_openstack_nodes(group='controller'):
try:
sh.execute('rpm -q kexec-tools', ssh_client=controller.ssh_client)
except sh.ShellCommandFailed:
return False
return True
skip_unless_kexec_tools_installed = tobiko.skip_unless(
'kexec-tools package not installed on controller nodes',
are_kexec_tools_installed)
def overcloud_version() -> tobiko.Version:
from tobiko.tripleo import _topology
node = topology.find_openstack_node(group='overcloud')