Blame SOURCES/0002-Move-main-to-run_healthcheck-for-abstraction-purpose.patch

d4c6c5
From eb87d277442dd1a1076ba9ae74c18ace8cc7dda8 Mon Sep 17 00:00:00 2001
d4c6c5
From: Rob Crittenden <rcritten@redhat.com>
d4c6c5
Date: Mon, 11 Nov 2019 10:29:53 -0500
d4c6c5
Subject: [PATCH 2/5] Move main to run_healthcheck for abstraction purposes
d4c6c5
d4c6c5
Take as arguments the entry point name and the configuration
d4c6c5
file.
d4c6c5
---
d4c6c5
 src/ipahealthcheck/core/config.py |  4 ++--
d4c6c5
 src/ipahealthcheck/core/main.py   | 37 +++++++++++++++++--------------
d4c6c5
 2 files changed, 22 insertions(+), 19 deletions(-)
d4c6c5
d4c6c5
diff --git a/src/ipahealthcheck/core/config.py b/src/ipahealthcheck/core/config.py
d4c6c5
index 46da507..0cb72b7 100644
d4c6c5
--- a/src/ipahealthcheck/core/config.py
d4c6c5
+++ b/src/ipahealthcheck/core/config.py
d4c6c5
@@ -5,7 +5,7 @@
d4c6c5
 import logging
d4c6c5
 from configparser import ConfigParser, ParsingError
d4c6c5
 
d4c6c5
-from ipahealthcheck.core.constants import CONFIG_FILE, CONFIG_SECTION
d4c6c5
+from ipahealthcheck.core.constants import CONFIG_SECTION
d4c6c5
 from ipahealthcheck.core.constants import DEFAULT_CONFIG
d4c6c5
 
d4c6c5
 logger = logging.getLogger()
d4c6c5
@@ -70,7 +70,7 @@ class Config:
d4c6c5
             self.__d[key] = d[key]
d4c6c5
 
d4c6c5
 
d4c6c5
-def read_config(config_file=CONFIG_FILE):
d4c6c5
+def read_config(config_file):
d4c6c5
     """
d4c6c5
     Simple configuration file reader
d4c6c5
 
d4c6c5
diff --git a/src/ipahealthcheck/core/main.py b/src/ipahealthcheck/core/main.py
d4c6c5
index b3fbe6a..f59a8a8 100644
d4c6c5
--- a/src/ipahealthcheck/core/main.py
d4c6c5
+++ b/src/ipahealthcheck/core/main.py
d4c6c5
@@ -28,11 +28,14 @@ else:
d4c6c5
     from ipahealthcheck.meta.services import ServiceCheck
d4c6c5
 
d4c6c5
 
d4c6c5
-def find_registries():
d4c6c5
-    return {
d4c6c5
-        ep.name: ep.resolve()
d4c6c5
-        for ep in pkg_resources.iter_entry_points('ipahealthcheck.registry')
d4c6c5
-    }
d4c6c5
+def find_registries(entry_points):
d4c6c5
+    registries = {}
d4c6c5
+    for entry_point in entry_points:
d4c6c5
+        registries.update({
d4c6c5
+            ep.name: ep.resolve()
d4c6c5
+            for ep in pkg_resources.iter_entry_points(entry_point)
d4c6c5
+        })
d4c6c5
+    return registries
d4c6c5
 
d4c6c5
 
d4c6c5
 def find_plugins(name, registry):
d4c6c5
@@ -194,9 +197,7 @@ def limit_results(results, source, check):
d4c6c5
     return new_results
d4c6c5
 
d4c6c5
 
d4c6c5
-def main():
d4c6c5
-    environ["KRB5_CLIENT_KTNAME"] = "/etc/krb5.keytab"
d4c6c5
-    environ["KRB5CCNAME"] = "MEMORY:"
d4c6c5
+def run_healthcheck(entry_points, configfile):
d4c6c5
     framework = object()
d4c6c5
     plugins = []
d4c6c5
     output = constants.DEFAULT_OUTPUT
d4c6c5
@@ -208,17 +209,11 @@ def main():
d4c6c5
     if options.debug:
d4c6c5
         logger.setLevel(logging.DEBUG)
d4c6c5
 
d4c6c5
-    config = read_config()
d4c6c5
+    config = read_config(configfile)
d4c6c5
     if config is None:
d4c6c5
         sys.exit(1)
d4c6c5
 
d4c6c5
-    if not (
d4c6c5
-        options.source or options.list_sources
d4c6c5
-    ) and not is_ipa_configured():
d4c6c5
-        logging.error("IPA is not configured on this system.")
d4c6c5
-        sys.exit(1)
d4c6c5
-
d4c6c5
-    for name, registry in find_registries().items():
d4c6c5
+    for name, registry in find_registries(entry_points).items():
d4c6c5
         try:
d4c6c5
             registry.initialize(framework)
d4c6c5
         except Exception as e:
d4c6c5
@@ -283,4 +278,12 @@ def main():
d4c6c5
             return_value = 1
d4c6c5
             break
d4c6c5
 
d4c6c5
-    sys.exit(return_value)
d4c6c5
+    return return_value
d4c6c5
+
d4c6c5
+
d4c6c5
+def main():
d4c6c5
+    environ["KRB5_CLIENT_KTNAME"] = "/etc/krb5.keytab"
d4c6c5
+    environ["KRB5CCNAME"] = "MEMORY:"
d4c6c5
+
d4c6c5
+    sys.exit(run_healthcheck(['ipahealthcheck.registry'],
d4c6c5
+                             constants.CONFIG_FILE))
d4c6c5
-- 
d4c6c5
2.20.1
d4c6c5