From 3597ab9bac6afbb5f055b2d62cb60f3e2850b31e Mon Sep 17 00:00:00 2001 From: Stanislav Levin Date: Mon, 21 Jun 2021 18:38:50 +0300 Subject: [PATCH] ipatests: healthcheck: Update IPAHostKeytab assumptions As of 0.9 freeipa-healthcheck requires running `dirsrv` service for `IPAHostKeytab` check. So, previous assumption about the triggering the GSSAPI error no longer works. For example, this can be achieved by deletion of host's keytab. Fixes: https://pagure.io/freeipa/issue/8889 Signed-off-by: Stanislav Levin Reviewed-By: Rob Crittenden --- .../test_integration/test_ipahealthcheck.py | 51 +++++++------------ 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/ipatests/test_integration/test_ipahealthcheck.py b/ipatests/test_integration/test_ipahealthcheck.py index 8a0641961..305d7b945 100644 --- a/ipatests/test_integration/test_ipahealthcheck.py +++ b/ipatests/test_integration/test_ipahealthcheck.py @@ -492,44 +492,29 @@ class TestIpaHealthCheck(IntegrationTest): assert data[0]["kw"]["ipa_version"] in result.stdout_text assert data[0]["kw"]["ipa_api_version"] in result.stdout_text - def test_source_ipahealthcheck_ipa_host_check_ipahostkeytab( - self, restart_service - ): + def test_source_ipahealthcheck_ipa_host_check_ipahostkeytab(self): """ Testcase checks behaviour of check IPAHostKeytab in source - ipahealthcheck.ipa.host when dirsrv service is stopped and - running on IPA master + ipahealthcheck.ipa.host when GSSAPI credentials cannot be obtained + from host's keytab. """ - msgs = ( - ( - "Failed to obtain host TGT: Major (851968): " - "Unspecified GSS failure. " - "Minor code may provide more information, " - "Minor (2529638972): Generic error (see e-text)" - ), - ( - "Failed to obtain host TGT: Major (458752): " - "No credentials were supplied, or the credentials " - "were unavailable or inaccessible, " - "Minor (2529638972): Generic error (see e-text)" - ), + msg = ( + "Failed to obtain host TGT: Major (458752): " + "No credentials were " + "supplied, or the credentials were unavailable or inaccessible, " + "Minor (2529639107): No credentials cache found" ) - restart_service(self.master, "dirsrv") - dirsrv_ipactl_status = 'Directory Service: STOPPED' - result = self.master.run_command( - ["ipactl", "status"], - raiseonerr=False) - returncode, data = run_healthcheck( - self.master, - "ipahealthcheck.ipa.host", - "IPAHostKeytab", - ) - assert returncode == 1 - if dirsrv_ipactl_status in result.stdout_text: + + with tasks.FileBackup(self.master, paths.KRB5_KEYTAB): + self.master.run_command(["rm", "-f", paths.KRB5_KEYTAB]) + returncode, data = run_healthcheck( + self.master, + source="ipahealthcheck.ipa.host", + check="IPAHostKeytab", + ) + assert returncode == 1 assert data[0]["result"] == "ERROR" - assert data[0]["kw"]["msg"] in msgs - else: - assert data[0]["result"] == "SUCCESS" + assert data[0]["kw"]["msg"] == msg def test_source_ipahealthcheck_topology_IPATopologyDomainCheck(self): """