From 41b7ae4e4465d1dcbb00a3826b049dbd12a668ff Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Tue, 14 Jun 2022 14:07:45 -0700 Subject: [PATCH] check_cron_file: Don't crash on missing cron file. This is 5050fb19f641, but for `check_cron_file`, which was introduced in 91da4bd59b30f3d40ef70db91c241daa5a92d4eb. --- .../zulip_app_frontend/check_cron_file | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_cron_file b/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_cron_file index 920f2054db..1d8120e8e4 100755 --- a/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_cron_file +++ b/puppet/zulip/files/nagios_plugins/zulip_app_frontend/check_cron_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}")