Module: check_mk
Branch: master
Commit: 31564f296c6a8cb4d07c00f517210b33dfbfe933
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=31564f296c6a8c…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Nov 5 14:01:13 2014 +0100
check catalog: Is now more robust against damaged man pages
---
modules/check_mk.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/modules/check_mk.py b/modules/check_mk.py
index f6ba3c6..8fe621e 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -3605,11 +3605,16 @@ def read_manpage_catalog():
a, filename = os.path.split(path)
if filename.startswith("."):
continue
- parsed = parse_man_header(checkname, path)
+ try:
+ parsed = parse_man_header(checkname, path)
+ except Exception, e:
+ sys.stderr.write('ERROR: Skipping invalid manpage: %s: %s\n' %
(checkname, e))
+ continue
+
try:
cat = parsed["catalog"]
except KeyError:
- sys.stderr.write('ERROR: Invalid manpage: %s (Catalog info
missing)\n' % checkname)
+ sys.stderr.write('ERROR: Skipping invalid manpage: %s (Catalog info
missing)\n' % checkname)
continue
if not cat:
@@ -3736,8 +3741,7 @@ def parse_man_header(checkname, path):
break
if "agents" not in parsed:
- sys.stderr.write("Section agents missing in man page of %s\n" %
(checkname))
- sys.exit(1)
+ raise Exception("Section agents missing in man page of %s\n" %
(checkname))
else:
parsed["agents"] = parsed["agents"].replace("
","").split(",")