Module: check_mk
Branch: master
Commit: 7371d09d4a49defcfbab0d3bbdc490f616a9a7eb
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=7371d09d4a49de…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Thu Jun 7 12:58:58 2018 +0200
Fix dependencies of core-related modules, part 6.
The hook for precompilation is now passed down the call hierarchy. This
removes another part of the wrong dependency direction.
Change-Id: I534d576e802f95b968650e3f01e16de697837b88
---
cmk_base/automations/check_mk.py | 7 ++++++-
cmk_base/core.py | 8 ++++----
cmk_base/core_config.py | 12 ++----------
cmk_base/discovery.py | 6 +++---
cmk_base/modes/check_mk.py | 19 ++++++++++++++-----
5 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/cmk_base/automations/check_mk.py b/cmk_base/automations/check_mk.py
index 86b4a2c..e025479 100644
--- a/cmk_base/automations/check_mk.py
+++ b/cmk_base/automations/check_mk.py
@@ -788,7 +788,12 @@ class AutomationRestart(Automation):
if backup_path:
os.remove(backup_path)
- core_config.precompile()
+ if config.monitoring_core == "cmc":
+ from cmk_base.cee.core_cmc import precompile_hook
+ else:
+ from cmk_base.core_nagios import precompile_hook
+ precompile_hook()
+
core.do_core_action(self._mode())
else:
broken_config_path = "%s/check_mk_objects.cfg.broken" %
cmk.paths.tmp_dir
diff --git a/cmk_base/core.py b/cmk_base/core.py
index d719857..fcec2ca 100644
--- a/cmk_base/core.py
+++ b/cmk_base/core.py
@@ -65,12 +65,12 @@ _restart_lock_fd = None
# | Invoke actions affecting the core like reload/restart |
# '----------------------------------------------------------------------'
-def do_reload(create_config_hook):
- do_restart(create_config_hook, only_reload=True)
+def do_reload(create_config_hook, precompile_hook):
+ do_restart(create_config_hook, precompile_hook, only_reload=True)
# TODO: Cleanup duplicate code with automation_restart()
-def do_restart(create_config_hook, only_reload=False):
+def do_restart(create_config_hook, precompile_hook, only_reload=False):
try:
backup_path = None
@@ -102,7 +102,7 @@ def do_restart(create_config_hook, only_reload=False):
if backup_path:
os.remove(backup_path)
- core_config.precompile()
+ precompile_hook()
do_core_action(only_reload and "reload" or "restart")
else:
diff --git a/cmk_base/core_config.py b/cmk_base/core_config.py
index 5d33998..e32e6ee 100644
--- a/cmk_base/core_config.py
+++ b/cmk_base/core_config.py
@@ -266,19 +266,11 @@ def _verify_non_duplicate_hosts():
"This might lead to invalid/incomplete monitoring for these
hosts." % ", ".join(duplicates))
-def precompile():
- if config.monitoring_core == "cmc":
- from cmk_base.cee.core_cmc import precompile_hook
- else:
- from cmk_base.core_nagios import precompile_hook
- precompile_hook()
-
-
-def do_update(create_config_hook, with_precompile):
+def do_update(create_config_hook, precompile_hook, with_precompile):
try:
do_create_config(create_config_hook, with_agents=with_precompile)
if with_precompile:
- precompile()
+ precompile_hook()
except Exception, e:
console.error("Configuration Error: %s\n" % e)
diff --git a/cmk_base/discovery.py b/cmk_base/discovery.py
index 0b9a05c..0e5a73d 100644
--- a/cmk_base/discovery.py
+++ b/cmk_base/discovery.py
@@ -461,7 +461,7 @@ def _get_autodiscovery_dir():
return cmk.paths.var_dir + '/autodiscovery'
-def discover_marked_hosts(create_config_hook):
+def discover_marked_hosts(create_config_hook, precompile_hook):
console.verbose("Doing discovery for all marked hosts:\n")
autodiscovery_dir = _get_autodiscovery_dir()
@@ -497,9 +497,9 @@ def discover_marked_hosts(create_config_hook):
if activation_required:
console.verbose("\nRestarting monitoring core with updated
configuration...\n")
if config.monitoring_core == "cmc":
- core.do_reload(create_config_hook)
+ core.do_reload(create_config_hook, precompile_hook)
else:
- core.do_restart(create_config_hook)
+ core.do_restart(create_config_hook, precompile_hook)
def _discover_marked_host(hostname, all_hosts, now_ts, oldest_queued):
diff --git a/cmk_base/modes/check_mk.py b/cmk_base/modes/check_mk.py
index 7a3d9d3..aae74c9 100644
--- a/cmk_base/modes/check_mk.py
+++ b/cmk_base/modes/check_mk.py
@@ -1023,9 +1023,18 @@ def _create_config_hook(options=None):
return create_config_hook
+def _precompile_hook():
+ from cmk_base.config import monitoring_core
+ if monitoring_core == "cmc":
+ from cmk_base.cee.core_cmc import precompile_hook
+ else:
+ from cmk_base.core_nagios import precompile_hook
+ return precompile_hook
+
+
def mode_update_no_precompile(options):
from cmk_base.core_config import do_update
- do_update(_create_config_hook(options), with_precompile=False)
+ do_update(_create_config_hook(options), _precompile_hook(), with_precompile=False)
modes.register(Mode(
long_option="update-no-precompile",
@@ -1082,7 +1091,7 @@ modes.register(Mode(
def mode_update(options):
from cmk_base.core_config import do_update
- do_update(_create_config_hook(options), with_precompile=True)
+ do_update(_create_config_hook(options), _precompile_hook(), with_precompile=True)
modes.register(Mode(
long_option="update",
@@ -1121,7 +1130,7 @@ modes.register(Mode(
def mode_restart():
import cmk_base.core as core
- core.do_restart(_create_config_hook())
+ core.do_restart(_create_config_hook(), _precompile_hook())
modes.register(Mode(
long_option="restart",
@@ -1143,7 +1152,7 @@ modes.register(Mode(
def mode_reload():
import cmk_base.core as core
- core.do_reload(_create_config_hook())
+ core.do_reload(_create_config_hook(), _precompile_hook())
modes.register(Mode(
long_option="reload",
@@ -1395,7 +1404,7 @@ modes.register(Mode(
def mode_discover_marked_hosts():
import cmk_base.discovery as discovery
- discovery.discover_marked_hosts(_create_config_hook())
+ discovery.discover_marked_hosts(_create_config_hook(), _precompile_hook())
modes.register(Mode(
long_option="discover-marked-hosts",