Module: check_mk
Branch: master
Commit: 49518478a90ae071e54dd54a90ff4dd1b03acbb9
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=49518478a90ae0…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Mon Apr 16 11:54:36 2018 +0200
5836 FIX Event Console messages without a service level can be matched against service
level 0 now.
Various message sources, e.g. syslog messages or SNMP traps, do not carry a
service level with them. If an event console rule specified a matching
criterion including the service level value 0 (meaning "no service level
specified"), the rule didn't fire for such messages. This behavior was
confusing and inconsistent with the rule matching for notifications.
Messages not carrying a service level have an implicit service level 0 now,
so EC rules can match for this case.
Change-Id: I1d77bbb86e610c1b1b61ed910fb3716a6259a646
---
.werks/5836 | 17 +++++++++++++++++
cmk/ec/main.py | 7 +------
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/.werks/5836 b/.werks/5836
new file mode 100644
index 0000000..3db21e8
--- /dev/null
+++ b/.werks/5836
@@ -0,0 +1,17 @@
+Title: Event Console messages without a service level can be matched against service
level 0 now.
+Level: 1
+Component: ec
+Compatible: compat
+Edition: cre
+Version: 1.6.0i1
+Date: 1523871989
+Class: fix
+
+Various message sources, e.g. syslog messages or SNMP traps, do not carry a
+service level with them. If an event console rule specified a matching
+criterion including the service level value 0 (meaning "no service level
+specified"), the rule didn't fire for such messages. This behavior was
+confusing and inconsistent with the rule matching for notifications.
+
+Messages not carrying a service level have an implicit service level 0 now,
+so EC rules can match for this case.
diff --git a/cmk/ec/main.py b/cmk/ec/main.py
index 241c211..7bc7013 100644
--- a/cmk/ec/main.py
+++ b/cmk/ec/main.py
@@ -2420,12 +2420,7 @@ class EventServer(ECServerThread):
sl_from, sl_to = rule["match_sl"]
if sl_from > sl_to:
sl_to, sl_from = sl_from, sl_to
- p = event.get("sl")
- if p is None:
- if self._config["debug_rules"]:
- self.logger.info(" did not match, because no service level is
set in event")
- return False
-
+ p = event.get("sl", 0)
if p < sl_from or p > sl_to:
if self._config["debug_rules"]:
self.logger.info(" did not match because of wrong service level
%d (need %d..%d)" %