37 lines
838 B
Python
37 lines
838 B
Python
#!/usr/bin/env python3
|
|
|
|
# Copyright (C) 2020 Canonical Ltd.
|
|
|
|
import nagios_plugin3
|
|
|
|
|
|
def load_alarm_list():
|
|
"""Load the cached status from disk, return it as a string"""
|
|
alarm_list_path = '/var/lib/nagios/etcd-alarm-list.txt'
|
|
|
|
with open(alarm_list_path, 'r') as alarm_list_log:
|
|
alarm_list = alarm_list_log.read()
|
|
|
|
return alarm_list.strip()
|
|
|
|
|
|
def check_alarms():
|
|
"""Raise an error if the cached status contains any non-blank lines"""
|
|
alarms = []
|
|
alarm_list = load_alarm_list()
|
|
for line in alarm_list.splitlines():
|
|
line = line.strip()
|
|
if line:
|
|
alarms.append(line)
|
|
if alarms:
|
|
raise nagios_plugin3.CriticalError(' '.join(alarms))
|
|
|
|
|
|
def main():
|
|
nagios_plugin3.try_check(check_alarms)
|
|
print("OK - no active alarms")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|