4
# mmmm m m mmmm mmmm mmm mm#mm
5
# #" "# # # #" "# #" "# #" # #
6
# # # # # # # # # #"""" #
7
# ##m#" "mm"# ##m#" ##m#" "#mm" "mm
10
# This file is managed by puppet. Do not make local changes.
13
# Copyright 2014 Canonical Ltd.
15
# Author: Jacek Nykis <jacek.nykis@canonical.com>
25
parser = argparse.ArgumentParser(
26
description='Read file and return nagios status based on its content',
27
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
28
parser.add_argument('-f', '--status-file', required=True,
29
help='Status file path')
30
parser.add_argument('-c', '--critical-text', default='CRITICAL',
31
help='String indicating critical status')
32
parser.add_argument('-w', '--warning-text', default='WARNING',
33
help='String indicating warning status')
34
parser.add_argument('-o', '--ok-text', default='OK',
35
help='String indicating OK status')
36
parser.add_argument('-u', '--unknown-text', default='UNKNOWN',
37
help='String indicating unknown status')
38
return parser.parse_args()
41
def check_status(args):
42
nagios_plugin.check_file_freshness(args.status_file, 43200)
44
with open(args.status_file, "r") as f:
45
content = [l.strip() for l in f.readlines()]
48
if re.search(args.critical_text, line):
49
raise nagios_plugin.CriticalError(line)
50
elif re.search(args.warning_text, line):
51
raise nagios_plugin.WarnError(line)
52
elif re.search(args.unknown_text, line):
53
raise nagios_plugin.UnknownError(line)
58
if __name__ == '__main__':
60
nagios_plugin.try_check(check_status, args)