Module: check_mk
Branch: master
Commit: ae43066386f90e912f387e904cffeffeec922c90
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ae43066386f90e…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Aug 28 16:19:32 2013 +0200
FIX: Fixed exception when enabling sounds for log based views
Conflicts:
ChangeLog
---
ChangeLog | 3 +++
web/htdocs/views.py | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d4382f9..40bb853 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -314,6 +314,9 @@
* FIX: Fixed missing roles in auth.php (in some cases) which resulted in
non visible pnp graphs and missing nagvis permissions
* FIX: Fixed label color of black toner perfometers when fuel is low
+ * FIX: Fixed wrong default settings of view filters in localized multisite
+ * FIX: Fixed exception when enabling sounds for views relying on
+ e.g. alert statistics source
WATO:
* FIX: fix layout of Auxiliary tags table
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 9b7e035..afa9c64 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -2582,10 +2582,10 @@ def register_events(row):
if config.sounds != []:
host_state = row.get("host_hard_state", row.get("host_state"))
if host_state != None:
- html.register_event({0:"up", 1:"down", 2:"unreachable"}[host_state])
+ html.register_event({0:"up", 1:"down", 2:"unreachable"}[saveint(host_state)])
svc_state = row.get("service_last_hard_state", row.get("service_state"))
if svc_state != None:
- html.register_event({0:"up", 1:"warning", 2:"critical", 3:"unknown"}[svc_state])
+ html.register_event({0:"up", 1:"warning", 2:"critical", 3:"unknown"}[saveint(svc_state)])
# The Group-value of a row is used for deciding wether
# two rows are in the same group or not
Module: check_mk
Branch: master
Commit: 66dc43be622b2738f5ab7d905671943e6cf78cf0
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=66dc43be622b27…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Aug 28 15:14:55 2013 +0200
Trying to improve ldap connection problem handling during sync runs; improved logging
---
web/plugins/userdb/ldap.py | 54 +++++++++++++++++++++++++++++++++-----------
1 file changed, 41 insertions(+), 13 deletions(-)
diff --git a/web/plugins/userdb/ldap.py b/web/plugins/userdb/ldap.py
index 488fccb..2ed66a3 100644
--- a/web/plugins/userdb/ldap.py
+++ b/web/plugins/userdb/ldap.py
@@ -25,7 +25,7 @@
# Boston, MA 02110-1301 USA.
import config, defaults
-import time, copy
+import time, copy, traceback
try:
# docs: http://www.python-ldap.org/doc/html/index.html
@@ -49,6 +49,8 @@ g_ldap_group_cache = {}
# File for storing the time of the last success event
g_ldap_sync_time_file = defaults.var_dir + '/web/ldap_sync_time.mk'
+# Exists when last ldap sync failed, contains exception text
+g_ldap_sync_fail_file = defaults.var_dir + '/web/ldap_sync_fail.mk'
# LDAP attributes are case insensitive, we only use lower case!
# Please note: This are only default values. The user might override this
@@ -93,7 +95,8 @@ ldap_filter_map = {
def ldap_log(s):
if config.ldap_debug_log is not None:
- file(ldap_replace_macros(config.ldap_debug_log), "a").write('%s\n' % s)
+ file(ldap_replace_macros(config.ldap_debug_log), "a").write('%s %s\n' %
+ (time.strftime('%Y-%m-%d %H:%M:%S'), s))
class MKLDAPException(MKGeneralException):
pass
@@ -128,6 +131,7 @@ def ldap_connect_server(server):
conn = ldap.ldapobject.ReconnectLDAPObject(uri)
conn.protocol_version = config.ldap_connection['version']
conn.network_timeout = config.ldap_connection.get('connect_timeout', 2.0)
+ conn.retry_delay = 0.5
# When using the domain top level as base-dn, the subtree search stumbles with referral objects.
# whatever. We simply disable them here when using active directory. Hope this fixes all problems.
@@ -188,6 +192,7 @@ def ldap_connect(enforce_new = False, enforce_server = None):
else:
errors.append(error_msg)
+ # Got no connection to any server
if ldap_connection is None:
raise MKLDAPException(_('The LDAP connector is unable to connect to the LDAP server.\n%s') %
('<br />\n'.join(errors)))
@@ -196,7 +201,9 @@ def ldap_connect(enforce_new = False, enforce_server = None):
ldap_connection_options = config.ldap_connection
except Exception:
- ldap_connection = None # Invalidate connection on failure
+ # Invalidate connection on failure
+ ldap_connection = None
+ ldap_connection_options = None
raise
# Bind with the default credentials
@@ -306,11 +313,12 @@ def ldap_search(base, filt = '(objectclass=*)', columns = [], scope = None):
# In some environments, the connection to the LDAP server does not seem to
# be as stable as it is needed. So we try to repeat the query for three times.
- tries_left = 3
+ tries_left = 2
success = False
while not success:
tries_left -= 1
try:
+ ldap_connect()
result = []
try:
search_func = config.ldap_connection.get('page_size') \
@@ -335,12 +343,13 @@ def ldap_search(base, filt = '(objectclass=*)', columns = [], scope = None):
'a sizelimit configuration on the LDAP server.<br />Throwing away the '
'incomplete results. You should change the scope of operation '
'within the ldap or adapt the limit settings of the LDAP server.'))
- except ldap.SERVER_DOWN:
+ except (ldap.SERVER_DOWN, ldap.TIMEOUT, MKLDAPException), e:
if tries_left:
- ldap_log(' Received SERVER_DOWN. Retrying...')
- ldap_connection.reconnect(ldap_connection._uri)
+ ldap_log(' Received %r. Retrying with clean connection...' % e)
+ ldap_disconnect()
time.sleep(0.5)
else:
+ ldap_log(' Giving up.')
break
duration = time.time() - start_time
@@ -837,8 +846,6 @@ def ldap_sync(add_to_changelog, only_username):
start_time = time.time()
- ldap_connect()
-
ldap_log(' SYNC PLUGINS: %s' % ', '.join(config.ldap_active_plugins.keys()))
# Unused at the moment, always sync all users
@@ -846,10 +853,11 @@ def ldap_sync(add_to_changelog, only_username):
#if only_username:
# filt = '(%s=%s)' % (ldap_user_id_attr(), only_username)
- import wato
- users = load_users(lock = True)
ldap_users = ldap_get_users()
+ import wato
+ users = load_users(lock = True)
+
# Remove users which are controlled by this connector but can not be found in
# LDAP anymore
for user_id, user in users.items():
@@ -897,6 +905,12 @@ def ldap_sync(add_to_changelog, only_username):
duration = time.time() - start_time
ldap_log('SYNC FINISHED - Duration: %0.3f sec' % duration)
+ # delete the fail flag file after successful sync
+ try:
+ os.unlink(g_ldap_sync_fail_file)
+ except OSError:
+ pass
+
save_users(users)
# Calculates the attributes of the users which are locked for users managed
@@ -930,11 +944,25 @@ def ldap_page():
except:
last_sync_time = 0
- if last_sync_time + config.ldap_cache_livetime > time.time():
+ # in case of sync problems, synchronize all 20 seconds, instead of the configured
+ # regular cache livetime
+ if os.path.exists(g_ldap_sync_fail_file):
+ cache_livetime = 20
+ else:
+ cache_livetime = config.ldap_cache_livetime
+
+ if last_sync_time + cache_livetime > time.time():
return # No action needed, cache is recent enough
# ok, cache is too old. Act!
- ldap_sync(False, None)
+ try:
+ ldap_sync(False, None)
+ except:
+ # Do not let the exception through to the user. Instead write last
+ # error in a state file which is then visualized for the admin and
+ # will be deleted upon next successful sync.
+ file(g_ldap_sync_fail_file, 'w').write('%s\n%s' % (time.strftime('%Y-%m-%d %H:%M:%S'),
+ traceback.format_exc()))
multisite_user_connectors.append({
'id': 'ldap',
Module: check_mk
Branch: master
Commit: cc73fe8bd1993fdafcbd06071048f1a00aedab5d
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cc73fe8bd1993f…
Author: Götz Golla <gg(a)mathias-kettner.de>
Date: Wed Aug 28 13:54:08 2013 +0200
wording improvements
---
web/htdocs/wato.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 1cfdd54..332618b 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -6025,7 +6025,7 @@ def mode_groups(phase, what):
what == "contact" and "users" or "groups",
_("Contact groups are needed for assigning hosts and services to people (contacts)"))])
else:
- html.write("<div class=info>" + _("There are not defined any groups yet.") + "</div>")
+ html.write("<div class=info>" + _("No groups are defined yet.") + "</div>")
return
# Show member of contact groups
@@ -8201,7 +8201,7 @@ def mode_users(phase):
entries = users.items()
entries.sort(cmp = lambda a, b: cmp(a[1].get("alias", a[0]).lower(), b[1].get("alias", b[0]).lower()))
- table.begin("users", None, empty_text = _("There are not defined any users yet."))
+ table.begin("users", None, empty_text = _("No users are defined yet."))
online_threshold = time.time() - config.user_online_maxage
for id, user in entries:
table.row()
@@ -13272,7 +13272,7 @@ def mode_custom_attrs(phase, what):
return None
if not attrs:
- html.write("<div class=info>" + _("There are not defined any custom attributes yet.") + "</div>")
+ html.write("<div class=info>" + _("No custom attributes are defined yet.") + "</div>")
return
table.begin(what + "attrs")
Module: check_mk
Branch: master
Commit: ea77cc4e5995a6993da126bb155a668270be761b
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ea77cc4e5995a6…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Wed Aug 28 12:37:04 2013 +0200
Updated bug entries #1036, #1037, #1038, #1039
---
.bugs/1036 | 13 +++++--------
.bugs/1037 | 25 ++++++++-----------------
.bugs/1038 | 52 +++++++++++++++++++++-------------------------------
.bugs/1039 | 43 ++++++++++++-------------------------------
4 files changed, 46 insertions(+), 87 deletions(-)
diff --git a/.bugs/1036 b/.bugs/1036
index 43329c7..7d30140 100644
--- a/.bugs/1036
+++ b/.bugs/1036
@@ -1,9 +1,9 @@
Title: df_check_filesystem_single returns a 2-tuple when check_esx_vsphere_datastores expects 3
Component: checks
-State: open
+Class: bug
+State: done
Date: 2013-08-27 10:50:42
Targetversion: 1.2.3
-Class: bug
came in via feedback@ // mail is still available at feedback/gitbug folder
@@ -26,12 +26,9 @@ def df_check_filesystem_single(hostname, mountpoint, size_mb, avail_mb, params):
def check_esx_vsphere_datastores(item, params, info):
-…
-
-…
-
-…
state, infotext, perfdata = df_check_filesystem_single(
-
g_hostname, item, size_mb, avail_mb, params)
+
+2013-08-28 12:33:57: changed state open -> done
+Fixed.
diff --git a/.bugs/1037 b/.bugs/1037
index ff1bce5..4c9999f 100644
--- a/.bugs/1037
+++ b/.bugs/1037
@@ -3,27 +3,18 @@ Component: checks
Class: bug
State: open
Date: 2013-08-27 10:58:29
-Targetversion: 1.2.3
-
-came in via feedback@ // original mail still available in feedback/gitbug folder
-
-
-Date: Fri, 07 Jun 2013 08:56:13 -0400
-From: "Peter Rogers" <peterrogers(a)email.com>
-Message-ID: <20130607125613.34790(a)gmx.com>
-MIME-Version: 1.0
-Subject: check_mk_agent.exe unable to restart after a crash
-To: feedback(a)check-mk.org
-
+Targetversion: 1.2.3i2
Host = Windows 7
CMK Agent = Agent version 1.2.2p1
-I have found a problem where the check_mk_agent.exe is unable to restart after a crash because the logstate.txt file becomes currupt.
+I have found a problem where the check_mk_agent.exe is unable to restart
+after a crash because the logstate.txt file becomes currupt.
Attached is an example currupt logstate.txt file.
-To work around the problem I remove the logstate.txt and then start the check_mk_agent.exe successfully.
+To work around the problem I remove the logstate.txt and then start the
+check_mk_agent.exe successfully.
hint by bs: the attached logstate.txt is 0 bytes
@@ -46,7 +37,7 @@ If I edit the file in Notepad++ I see one line of null entries, and converted to
00000000000000000000000000000000
0000000000000000000000
-I have had a number of crashes on this server as the Windows machine is running on a VM server which has had problems, but the currupt logstate.txt file is always 123k in size and looks the same when edited.
+I have had a number of crashes on this server as the Windows machine is
+running on a VM server which has had problems, but the currupt logstate.txt
+file is always 123k in size and looks the same when edited.
-Regards,
-Peter Rogers
diff --git a/.bugs/1038 b/.bugs/1038
index 99e9d80..34f2057 100644
--- a/.bugs/1038
+++ b/.bugs/1038
@@ -2,24 +2,12 @@ Title: problem with mrpe if lable has white space characters
Component: checks
State: open
Date: 2013-08-27 12:12:33
-Targetversion: 1.2.3
+Targetversion: future
Class: bug
-came in via feedback@ // original mail still available in feedback/gitbug folder
-
-
-Date: Wed, 26 Jun 2013 15:03:06 +0200
-Message-ID: <CACA1nGEzOmECJufVGOgUqZm6tAxGH+vHoXoEh7SGbx7uw+3ZwQ(a)mail.gmail.com>
-Subject: Fwd: [BUG]: MRPE Checks mit Performance Daten bringen Fehler
-From: =?ISO-8859-1?Q?Andreas_D=F6hler?= <andreas.doehler(a)gmail.com>
-To: Check MK Feedback <feedback(a)check-mk.org>
-
-
-
-Hallo zusammen,
-
-habe heute eine seltsame Sache mit einigen MRPE Checks gehabt.
-Falls die Checks Performance Daten liefern und das Label der Performance Daten Leerzeichen enthält so wir der Check mit einer Exception abgebrochen.
+habe heute eine seltsame Sache mit einigen MRPE Checks gehabt. Falls die
+Checks Performance Daten liefern und das Label der Performance Daten
+Leerzeichen enthält so wir der Check mit einer Exception abgebrochen.
Traceback (most recent call last):
File "/usr/share/check_mk/modules/check_mk.py", line 5442, in <module>
@@ -34,23 +22,25 @@ Traceback (most recent call last):
varname, valuetxt = perfinfo.split("=", 1)
ValueError: need more than 1 value to unpack
-Bei genauerer Untersuchung hab ich festgestellt das dieses Verhalten seit dem Umbau des MRPE am 22.05. (Commit 7705017d0d5db5093d9bdaa1538eecac56832dfe) auftritt.
-Das Problem besteht aus zwei Punkten.
-Einmal diese Zeile
-perfdata = parts[1].strip().split()
-Hierbei werden nicht nur vorn und hinten die Leerzeichen abgeschnitten sondern auch der String vom Performancedaten Label zerschnitten.
-Beispiel:
-'Cluster Groups on This Node'=0;0;0 Perfdaten noch ok
-["'Cluster", 'Groups', 'on', 'This', "Node'=0;0;0"] nach der "Behandlung"
+Bei genauerer Untersuchung hab ich festgestellt das dieses Verhalten seit dem
+Umbau des MRPE am 22.05. (Commit 7705017d0d5db5093d9bdaa1538eecac56832dfe)
+auftritt. Das Problem besteht aus zwei Punkten. Einmal diese Zeile perfdata
+= parts[1].strip().split() Hierbei werden nicht nur vorn und hinten die
+Leerzeichen abgeschnitten sondern auch der String vom Performancedaten Label
+zerschnitten. Beispiel: 'Cluster Groups on This Node'=0;0;0 Perfdaten noch ok
+["'Cluster", 'Groups', 'on', 'This', "Node'=0;0;0"] nach der "Behandlung"
Der zweite Punkt tritt dann auf wenn ich den String hier im ganzen lasse.
-'Cluster Groups on This Node'=0;0;0
-und es nur einen Perfomance Daten Wert gibt dann wird perfdata nicht zur Liste und bringt einen Fehler dann beim Aufruf der map Funktion in Zeile 90
-Deshalb hab ich extra noch vor der ersten perfdata Zuweisung in Zeile 70 eine Zeile eingefügt mit perfdata = [] und Zeile 70 auf perfdata += parts[1].strip() geändert.
-Danach funktionieren wieder alle meine MRPE Checks mit Performance Daten ohne Fehler.
-
-Einen MRPE Check mit mehreren Werten hatte ich leider nicht an der Hand zum testen.
-Damit ist der Abschnitt ab # Further lines noch offen ob das alles so klappt. :)
+'Cluster Groups on This Node'=0;0;0 und es nur einen Perfomance Daten Wert
+gibt dann wird perfdata nicht zur Liste und bringt einen Fehler dann beim
+Aufruf der map Funktion in Zeile 90 Deshalb hab ich extra noch vor der ersten
+perfdata Zuweisung in Zeile 70 eine Zeile eingefügt mit perfdata = [] und
+Zeile 70 auf perfdata += parts[1].strip() geändert. Danach funktionieren
+wieder alle meine MRPE Checks mit Performance Daten ohne Fehler.
+
+Einen MRPE Check mit mehreren Werten hatte ich leider nicht an der Hand
+zum testen. Damit ist der Abschnitt ab # Further lines noch offen ob das
+alles so klappt. :)
Gruß
Andreas
diff --git a/.bugs/1039 b/.bugs/1039
index da19013..b8da79a 100644
--- a/.bugs/1039
+++ b/.bugs/1039
@@ -2,24 +2,17 @@ Title: livestatus bug in OutputFormat: json
Component: livestatus
State: open
Date: 2013-08-27 16:02:02
-Targetversion: 1.2.3
+Targetversion: 1.2.3i2
Class: bug
-came in via feedback@ // mail still available in feedback/gitbug folder
-
-
-From: <Sascha.Pfalz(a)ivz.de>
-To: <feedback(a)check-mk.org>
-Subject: [Bug]: JSON Data falsch
-Thread-Topic: [Bug]: JSON Data falsch
-Thread-Index: Ac6IZny063o7fFKiSS2eLhEqKFzKaA==
-Date: Wed, 24 Jul 2013 12:08:20 +0000
-
Hi,
-Erst mal möchte ich danke sagen für das super Plugin, das hat mir viel Arbeit erspart und macht den Einsatz von unseren Nagios und SMBox Systemen etwas leichter
+Erst mal möchte ich danke sagen für das super Plugin, das hat mir viel
+Arbeit erspart und macht den Einsatz von unseren Nagios und SMBox Systemen
+etwas leichter
-Allerdings scheint sich ein Bug in die V1.2.2p2 eingeschlichen zu haben, und zwar geht es um das Auslesen von Kommentaren bei folgendem Kommando:
+Allerdings scheint sich ein Bug in die V1.2.2p2 eingeschlichen zu haben,
+und zwar geht es um das Auslesen von Kommentaren bei folgendem Kommando:
$CMD = "GET services\n";
$CMD.= "Columns: host_name comments_with_info\n";
@@ -40,7 +33,9 @@ Der Host localhost hat 11 Services definiert, wobei einer einen Kommentar defini
["localhost",[]],
["localhost",[[705,"nagios","Testing",]]]]
-Und das ist leider nicht korrekt, das letzte ",]" ist falsch! Diese Daten lassen sich leider nicht via json_decode() in PHP dekodieren. Wandel ich das Ganze aber wie folgt ab:
+Und das ist leider nicht korrekt, das letzte ",]" ist falsch! Diese Daten
+lassen sich leider nicht via json_decode() in PHP dekodieren. Wandel ich
+das Ganze aber wie folgt ab:
[["localhost",[]],
["localhost",[]],
@@ -59,24 +54,10 @@ Und das ist leider nicht korrekt, das letzte ",]" ist falsch! Diese Daten lassen
Dann funktioniert das auch sofort wieder.
-Ich habe leider aktuell nicht so viel Zeit, um einen Patch zu liefern, deswegen dieser etwas chaotische Bugreport, ich hoffe aber, das man das soweit nachvollziehen kann.
+Ich habe leider aktuell nicht so viel Zeit, um einen Patch zu liefern,
+deswegen dieser etwas chaotische Bugreport, ich hoffe aber, das man das
+soweit nachvollziehen kann.
In der 1.1.10p3 war dieser Bug definitiv nicht drin.
Getestet habe ich mit den Nagios Versionen 3.2.1 und 3.5.0, bei beiden tritt diese falsche JSON Kodierung auf.
-
-Nochmals vielen Dank für das Plugin!
-
-Viele Grüße,
---
-Sascha Pfalz
-Oracle Developer
-Archiv- und Produktionssysteme
-
-Tel. +49(0)30 97993-86318
-sascha.pfalz"at"ivz.de
-
-Informations-Verarbeitungs-Zentrum
-Gemeinschaftseinrichtung von
-DW - Deutschlandradio - MDR - NDR - RB - RBB - SR - WDR
-Masurenallee 8-14 14057 Berlin