From c31e29fd16beb2d120c83ab169842ec44c42a065 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Mon, 13 Nov 2023 14:09:16 -0500 Subject: [PATCH] Don't fail if a service name cannot be looked up in LDAP A new method was introduced to handle more IPA services. This requires looking some of them up in LDAP. dirsrv not running was not being caught so raised an error instead. Fixes: https://github.com/freeipa/freeipa-healthcheck/issues/312 Signed-off-by: Rob Crittenden --- src/ipahealthcheck/meta/services.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ipahealthcheck/meta/services.py b/src/ipahealthcheck/meta/services.py index 10fa83f9..9838128c 100644 --- a/src/ipahealthcheck/meta/services.py +++ b/src/ipahealthcheck/meta/services.py @@ -25,10 +25,18 @@ class IPAServiceCheck(ServiceCheck): def get_service_name(self, role): """Roles define broad services. Translate a role name into an individual service name. + + Returns a string on success, None if the service is not + configured or cannot be determined. """ conn = api.Backend.ldap2 - if not api.Backend.ldap2.isconnected(): - api.Backend.ldap2.connect() + try: + if not api.Backend.ldap2.isconnected(): + api.Backend.ldap2.connect() + except errors.NetworkError: + logger.debug("Service '%s' is not running", self.service_name) + return None + dn = DN( ("cn", role), ("cn", api.env.host), ("cn", "masters"), ("cn", "ipa"), ("cn", "etc"),