check_cron_file: Don't crash on missing cron file.

This is 5050fb19f6, but for `check_cron_file`, which was introduced
in 91da4bd59b.
This commit is contained in:
Alex Vandiver 2022-06-14 14:07:45 -07:00 committed by Alex Vandiver
parent 8fbde9b8c5
commit 41b7ae4e44
1 changed files with 20 additions and 14 deletions

View File

@ -16,26 +16,32 @@ def nagios_from_file(results_file: str, max_time_diff: int = 60 * 2) -> "Tuple[i
This file is created by various nagios checking cron jobs such as
check-rabbitmq-queues and check-rabbitmq-consumers"""
with open(results_file) as f:
data = f.read().strip()
pieces = data.split("|")
if not len(pieces) == 4:
try:
with open(results_file) as f:
data = f.read().strip()
except FileNotFoundError:
state = "UNKNOWN"
ret = 3
data = "Results file malformed"
data = "Results file is missing"
else:
timestamp = int(pieces[0])
pieces = data.split("|")
time_diff = int(time.time() - timestamp)
if time_diff > max_time_diff:
ret = 3
if not len(pieces) == 4:
state = "UNKNOWN"
data = "Results file is stale"
ret = 3
data = "Results file malformed"
else:
ret = int(pieces[1])
state = pieces[2]
data = pieces[3]
timestamp = int(pieces[0])
time_diff = int(time.time() - timestamp)
if time_diff > max_time_diff:
ret = 3
state = "UNKNOWN"
data = "Results file is stale"
else:
ret = int(pieces[1])
state = pieces[2]
data = pieces[3]
return (ret, f"{state}: {data}")