Module: check_mk
Branch: master
Commit: ec5cff82a53abfe1d011bf186693a9c762cd411b
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ec5cff82a53abf…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Apr 19 10:21:31 2016 +0200
3385 FIX Fixed not updated discovery service after grouped auto discovery
When the automatic service discovery and activation updates the services
of a host the "Check_MK Discovery" service remained in the state it was
before the discovery. This has now been fixed by triggering a refresh
of the discovery services.
---
.werks/3385 | 13 +++++++++++++
ChangeLog | 1 +
modules/automation.py | 18 ------------------
modules/check_mk.py | 18 ++++++++++++++++++
modules/discovery.py | 3 +++
5 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/.werks/3385 b/.werks/3385
new file mode 100644
index 0000000..c84e919
--- /dev/null
+++ b/.werks/3385
@@ -0,0 +1,13 @@
+Title: Fixed not updated discovery service after grouped auto discovery
+Level: 1
+Component: core
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.2.9i1
+Date: 1461054017
+
+When the automatic service discovery and activation updates the services
+of a host the "Check_MK Discovery" service remained in the state it was
+before the discovery. This has now been fixed by triggering a refresh
+of the discovery services.
diff --git a/ChangeLog b/ChangeLog
index fd0c969..3dcd5bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,7 @@
* 3343 FIX: MKP: Verifying minimal version of packages during installation...
* 3349 FIX: Added rule to disable Inline-SNMP per host...
* 3123 FIX: fix for temperature services discovered pre-1.2.8 that caused errors on
writing configuration
+ * 3385 FIX: Fixed not updated discovery service after grouped auto discovery...
Checks & Agents:
* 3183 aruba_wlc_aps: new check which monitors the provisioned accesspoints of an
Aruba Network WLAN Controller
diff --git a/modules/automation.py b/modules/automation.py
index 18d7ee0..13deccd 100644
--- a/modules/automation.py
+++ b/modules/automation.py
@@ -254,24 +254,6 @@ def automation_get_autochecks(args):
return result
-def schedule_inventory_check(hostname):
- try:
- import socket
- s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- s.connect(livestatus_unix_socket)
- now = int(time.time())
- if 'cmk-inventory' in use_new_descriptions_for:
- command = "SCHEDULE_FORCED_SVC_CHECK;%s;Check_MK Discovery;%d" %
(hostname, now)
- else:
- # FIXME: Remove this old name handling one day
- command = "SCHEDULE_FORCED_SVC_CHECK;%s;Check_MK inventory;%d" %
(hostname, now)
- s.send("COMMAND [%d] %s\n" % (now, command))
- except Exception, e:
- if opt_debug:
- raise
-
-
-
# Determine the type of the check, and how the parameters are being
# constructed
def automation_analyse_service(args):
diff --git a/modules/check_mk.py b/modules/check_mk.py
index 8e6ff18..bff1197 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -1493,6 +1493,24 @@ def restore_original_agent_caching_usage():
orig_cluster_max_cachefile_age = None
orig_inventory_max_cachefile_age = None
+
+def schedule_inventory_check(hostname):
+ try:
+ import socket
+ s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s.connect(livestatus_unix_socket)
+ now = int(time.time())
+ if 'cmk-inventory' in use_new_descriptions_for:
+ command = "SCHEDULE_FORCED_SVC_CHECK;%s;Check_MK Discovery;%d" %
(hostname, now)
+ else:
+ # TODO: Remove this old name handling one day
+ command = "SCHEDULE_FORCED_SVC_CHECK;%s;Check_MK inventory;%d" %
(hostname, now)
+ s.send("COMMAND [%d] %s\n" % (now, command))
+ except Exception, e:
+ if opt_debug:
+ raise
+
+
#.
# .--SNMP----------------------------------------------------------------.
# | ____ _ _ __ __ ____ |
diff --git a/modules/discovery.py b/modules/discovery.py
index c4c5aeb..59f25ab 100644
--- a/modules/discovery.py
+++ b/modules/discovery.py
@@ -466,6 +466,9 @@ def discover_marked_hosts():
if redisc_params["activation"]:
activation_required = True
+ # Now ensure that the discovery service is updated right after the
changes
+ schedule_inventory_check(hostname)
+
# delete the file even in error case, otherwise we might be causing the same
error
# every time the cron job runs
os.remove(host_flag_path)