import time from typing import Tuple def nagios_from_file(results_file: 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""" try: with open(results_file) as f: data = f.read().strip() except FileNotFoundError: state = "UNKNOWN" ret = 3 data = "Results file is missing" else: 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, f"{state}: {data}")