Module: check_mk
Branch: master
Commit: daece7c467e22d4c5691be43cf88002d4edf9891
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=daece7c467e22d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 1 14:24:17 2014 +0100
#1574 FIX Hosts named like used python modules do not break precompiled checks anymore
Previously, when creating a host named "random" and using the Nagios core, which
is
using the precompiled checks, all checks broke with a python exception.
---
.bugs/2155 | 7 +++++--
.werks/1574 | 10 ++++++++++
ChangeLog | 1 +
modules/check_mk_base.py | 9 ++++++++-
4 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/.bugs/2155 b/.bugs/2155
index c34b3bc..09bc8f2 100644
--- a/.bugs/2155
+++ b/.bugs/2155
@@ -1,9 +1,9 @@
Title: Host named like a Python module will break precompiled checks
Component: core
-State: open
+Class: bug
+State: done
Date: 2014-05-14 13:57:30
Targetversion: 1.2.5i1
-Class: bug
Operating System: Debian 7
@@ -16,3 +16,6 @@ instead of the real random module.
This only seems to affect that indrectly imported module. A test with creating a
host with the name 'os' did not show any abnormalities.
+
+2014-12-01 14:22:43: changed state open -> done
+Fixed.
diff --git a/.werks/1574 b/.werks/1574
new file mode 100644
index 0000000..2a43ea0
--- /dev/null
+++ b/.werks/1574
@@ -0,0 +1,10 @@
+Title: Hosts named like used python modules do not break precompiled checks anymore
+Level: 1
+Component: core
+Compatible: compat
+Version: 1.2.5i7
+Date: 1417440175
+Class: fix
+
+Previously, when creating a host named "random" and using the Nagios core,
which is
+using the precompiled checks, all checks broke with a python exception.
diff --git a/ChangeLog b/ChangeLog
index ada1df0..20b4989 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
* 1431 FIX: windows_agent: fixed error on parsing unicode formatted logfiles...
* 1545 FIX: Terminating with exit code 3 now when duplicate host has been found
* 1555 FIX: Improved validation on timeperiod references of non existing periods...
+ * 1574 FIX: Hosts named like used python modules do not break precompiled checks
anymore...
Checks & Agents:
* 1197 climaveneta_temp: New check for temperature sensors on Climaveneta clima
devices
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index db6b925..f86fcaf 100644
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -24,7 +24,14 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-import socket, os, sys, time, re, signal, math, tempfile
+import sys
+
+# Remove precompiled directory from sys.path. Leaving it in the path
+# makes problems when host names (name of precompiled files) are equal
+# to python module names like "random"
+sys.path.pop(0)
+
+import socket, os, time, re, signal, math, tempfile
# Python 2.3 does not have 'set' in normal namespace.
# But it can be imported from 'sets'