puppet: Add check_cron_file generic helper.

This commit is contained in:
Tim Abbott 2016-08-09 23:11:10 -07:00 committed by Tim Abbott
parent 080dd8c987
commit 91da4bd59b
1 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,52 @@
#!/usr/bin/env python
""" Nagios plugin paired with a cron job. This just verifies that the
file output by the cron job is correct.
"""
from __future__ import print_function
import sys
import time
# Avoid requiring the typing module to be installed
if False: from typing import Tuple
def nagios_from_file(results_file):
# type: (str) -> Tuple[int, str]
"""Returns a nagios-appropriate string and return code obtained by
parsing the desired file on disk. The file on disk should be of format
%s|%s % (timestamp, nagios_string)
This file is created by various nagios checking cron jobs such as
check-rabbitmq-queues and check-rabbitmq-consumers"""
data = open(results_file).read().strip()
pieces = data.split('|')
if not len(pieces) == 4:
state = 'UNKNOWN'
ret = 3
data = "Results file malformed"
else:
timestamp = int(pieces[0])
time_diff = time.time() - timestamp
if time_diff > 60 * 2:
ret = 3
state = 'UNKNOWN'
data = "Results file is stale"
else:
ret = int(pieces[1])
state = pieces[2]
data = pieces[3]
return (ret, "%s: %s" % (state, data))
if __name__ == "__main__":
RESULTS_FILE = sys.argv[1]
ret, result = nagios_from_file(RESULTS_FILE)
print(result)
exit(ret)