diff --git a/tobiko/tests/functional/tripleo/test_overcloud.py b/tobiko/tests/functional/tripleo/test_overcloud.py index 8d4581b6b..82bc6385e 100644 --- a/tobiko/tests/functional/tripleo/test_overcloud.py +++ b/tobiko/tests/functional/tripleo/test_overcloud.py @@ -112,14 +112,15 @@ class OvercloudServicesTest(testtools.TestCase): across the overcloud nodes """ + services_status: services.OvercloudServicesStatus = ( + tobiko.required_fixture(services.OvercloudServicesStatus)) + def test_get_services_resource_table(self): - oss = services.OvercloudServicesStatus() - self.assertIsInstance(oss.oc_services_df, + self.assertIsInstance(self.services_status.oc_services_df, pd.DataFrame) def test_overcloud_services(self): - oss = services.OvercloudServicesStatus() - self.assertTrue(oss.basic_overcloud_services_running) + self.assertTrue(self.services_status.basic_overcloud_services_running) def test_get_overcloud_nodes_running_pcs_resource(self): nodes_list = pacemaker.get_overcloud_nodes_running_pcs_resource( diff --git a/tobiko/tripleo/services.py b/tobiko/tripleo/services.py index 7a7b0fe74..39ec86722 100644 --- a/tobiko/tripleo/services.py +++ b/tobiko/tripleo/services.py @@ -86,7 +86,7 @@ def check_if_process_running_on_overcloud(process): return False -class OvercloudServicesStatus(object): +class OvercloudServicesStatus(tobiko.SharedFixture): """ class to handle services checks, checks that all of these are running in the overcloud: @@ -94,14 +94,29 @@ class OvercloudServicesStatus(object): 'pacemaker.service','rpcbind.service','sshd.service' """ - def __init__(self): - self.services_to_check = ['corosync.service', 'iptables.service', - 'network.service', 'ntpd.service', - 'pacemaker.service', 'rpcbind.service', - 'sshd.service'] + SERVICES_TO_CHECK: typing.List[str] = [ + 'corosync.service', + 'iptables.service', + 'network.service', + # Not found on OSP 16 + # 'ntpd.service', + 'pacemaker.service', + 'rpcbind.service', + 'sshd.service'] + + def __init__(self, + services_to_check: typing.List[str] = None): + super().__init__() + if services_to_check is None: + services_to_check = self.SERVICES_TO_CHECK + self.services_to_check = services_to_check + + oc_services_df: typing.Any + + def setup_fixture(self): self.oc_services_df = overcloud.get_overcloud_nodes_dataframe( - get_overcloud_node_services_table) + get_overcloud_node_services_table) @property def basic_overcloud_services_running(self): @@ -110,6 +125,7 @@ class OvercloudServicesStatus(object): running :return: Bool """ + tobiko.setup_fixture(self) for service_name in self.services_to_check: if not self.oc_services_df.query('UNIT=="{}"'.format( service_name)).empty: