From c40e32b9d0ac49806b8336bd5065350574d29672 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Mon, 18 Nov 2019 12:51:27 -0500 Subject: [PATCH 3/5] Abstract ServiceCheck to not be IPA-specific It is up to the implementor to check for services running for now. --- src/ipahealthcheck/core/main.py | 9 +-------- src/ipahealthcheck/core/service.py | 10 ++++++++++ src/ipahealthcheck/meta/services.py | 29 +++++++++++++++-------------- 3 files changed, 26 insertions(+), 22 deletions(-) create mode 100644 src/ipahealthcheck/core/service.py diff --git a/src/ipahealthcheck/core/main.py b/src/ipahealthcheck/core/main.py index f59a8a8..2b818d4 100644 --- a/src/ipahealthcheck/core/main.py +++ b/src/ipahealthcheck/core/main.py @@ -15,18 +15,11 @@ from ipahealthcheck.core.config import read_config from ipahealthcheck.core.plugin import Result, Results, json_to_results from ipahealthcheck.core.output import output_registry from ipahealthcheck.core import constants +from ipahealthcheck.core.service import ServiceCheck logging.basicConfig(format='%(message)s') logger = logging.getLogger() -try: - from ipaserver.install.installutils import is_ipa_configured -except ImportError: - logging.error("IPA server packages are not installed on this system.") - sys.exit(1) -else: - from ipahealthcheck.meta.services import ServiceCheck - def find_registries(entry_points): registries = {} diff --git a/src/ipahealthcheck/core/service.py b/src/ipahealthcheck/core/service.py new file mode 100644 index 0000000..f9e2645 --- /dev/null +++ b/src/ipahealthcheck/core/service.py @@ -0,0 +1,10 @@ +# +# Copyright (C) 2019 FreeIPA Contributors see COPYING for license +# + +from ipahealthcheck.core.plugin import Plugin + + +class ServiceCheck(Plugin): + def check(self, instance=''): + raise NotImplementedError diff --git a/src/ipahealthcheck/meta/services.py b/src/ipahealthcheck/meta/services.py index d375066..a987108 100644 --- a/src/ipahealthcheck/meta/services.py +++ b/src/ipahealthcheck/meta/services.py @@ -6,7 +6,8 @@ import logging from ipahealthcheck.core import constants from ipahealthcheck.core.plugin import Result, duration -from ipahealthcheck.meta.plugin import Plugin, registry +from ipahealthcheck.core.service import ServiceCheck +from ipahealthcheck.meta.plugin import registry try: from ipapython.ipaldap import realm_to_serverid except ImportError: @@ -20,7 +21,7 @@ from ipaserver.install import cainstance logger = logging.getLogger() -class ServiceCheck(Plugin): +class IPAServiceCheck(ServiceCheck): @duration def check(self, instance=''): try: @@ -47,7 +48,7 @@ class ServiceCheck(Plugin): @registry -class certmonger(ServiceCheck): +class certmonger(IPAServiceCheck): def check(self): self.service_name = 'certmonger' @@ -55,7 +56,7 @@ class certmonger(ServiceCheck): @registry -class dirsrv(ServiceCheck): +class dirsrv(IPAServiceCheck): def check(self): self.service_name = 'dirsrv' @@ -63,7 +64,7 @@ class dirsrv(ServiceCheck): @registry -class gssproxy(ServiceCheck): +class gssproxy(IPAServiceCheck): def check(self): self.service_name = 'gssproxy' @@ -71,7 +72,7 @@ class gssproxy(ServiceCheck): @registry -class httpd(ServiceCheck): +class httpd(IPAServiceCheck): def check(self): self.service_name = 'httpd' @@ -79,7 +80,7 @@ class httpd(ServiceCheck): @registry -class ipa_custodia(ServiceCheck): +class ipa_custodia(IPAServiceCheck): def check(self): self.service_name = 'ipa-custodia' @@ -87,7 +88,7 @@ class ipa_custodia(ServiceCheck): @registry -class ipa_dnskeysyncd(ServiceCheck): +class ipa_dnskeysyncd(IPAServiceCheck): def check(self): self.service_name = 'ipa-dnskeysyncd' @@ -98,7 +99,7 @@ class ipa_dnskeysyncd(ServiceCheck): @registry -class ipa_otpd(ServiceCheck): +class ipa_otpd(IPAServiceCheck): def check(self): self.service_name = 'ipa-otpd' @@ -106,7 +107,7 @@ class ipa_otpd(ServiceCheck): @registry -class kadmin(ServiceCheck): +class kadmin(IPAServiceCheck): def check(self): self.service_name = 'kadmin' @@ -114,7 +115,7 @@ class kadmin(ServiceCheck): @registry -class krb5kdc(ServiceCheck): +class krb5kdc(IPAServiceCheck): def check(self): self.service_name = 'krb5kdc' @@ -122,7 +123,7 @@ class krb5kdc(ServiceCheck): @registry -class named(ServiceCheck): +class named(IPAServiceCheck): def check(self): self.service_name = 'named' @@ -133,7 +134,7 @@ class named(ServiceCheck): @registry -class pki_tomcatd(ServiceCheck): +class pki_tomcatd(IPAServiceCheck): def check(self): self.service_name = 'pki_tomcatd' @@ -145,7 +146,7 @@ class pki_tomcatd(ServiceCheck): @registry -class sssd(ServiceCheck): +class sssd(IPAServiceCheck): def check(self): self.service_name = 'sssd' -- 2.20.1