Module: check_mk
Branch: master
Commit: acf970ba2ef742cd12f0a7f089fb2cc7c3cf11f3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=acf970ba2ef742…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 18 12:35:05 2012 +0100
Output better error message in case of old inventory function
---
ChangeLog | 1 +
modules/check_mk.py | 16 ++++++----------
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0964dc2..5c79d77 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
exception to status output and traceback to long output now.
* Added HOSTTAGS to notification macros which contains all Check_MK-Tags
separated by spaces
+ * Output better error message in case of old inventory function
Notifications:
* Fix flexible notifications on non-OMD systems
diff --git a/modules/check_mk.py b/modules/check_mk.py
index 8eeb594..4429a6c 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -27,7 +27,7 @@
# This file is also read in by check_mk's web pages. In that case,
# the variable check_mk_web is set to True
-import os, sys, socket, time, getopt, glob, re, stat, py_compile, urllib
+import os, sys, socket, time, getopt, glob, re, stat, py_compile, urllib, inspect
# These variable will be substituted at 'make dist' time
check_mk_version = '(inofficial)'
@@ -2275,16 +2275,12 @@ def make_inventory(checkname, hostnamelist, check_only=False, include_state=Fals
if info == None: # No data for this check type
continue
try:
- # New preferred style since 1.1.11i3: only one argument: info
- try:
+ # Check number of arguments of inventory function
+ if len(inspect.getargspec(inventory_function)[0]) == 2:
+ inventory = inventory_function(checkname, info) # inventory is a list of pairs (item, current_value)
+ else:
+ # New preferred style since 1.1.11i3: only one argument: info
inventory = inventory_function(info)
- except Exception, e:
- # failed? Lets try pre-1.1.11i3 style inventory function
- try:
- inventory = inventory_function(checkname, info) # inventory is a list of pairs (item, current_value)
- except Exception, ee:
- # Let the first exception happen again
- inventory_function(info)
if inventory == None: # tolerate if function does no explicit return
inventory = []