From b061ba4368ead9587e0d6bcfcd394047496d0d0f Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 12 Nov 2023 01:45:56 +0100 Subject: [PATCH] Add check_matrix.py test --- Dockerfile | 1 + check_matrix.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100755 check_matrix.py diff --git a/Dockerfile b/Dockerfile index 10fde26..8b47335 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,6 +40,7 @@ ADD https://raw.githubusercontent.com/stump/check_sshfp/master/check_sshfp /usr/ ADD https://raw.githubusercontent.com/matteocorti/check_ssl_cert/master/check_ssl_cert /usr/lib/nagios/plugins/check_ssl_cert ADD https://gist.githubusercontent.com/nemunaire/9669659/raw/977cfce7246249c17e213b0b2b231220257754fa/nagios-status.pl /usr/bin/nagios-status.pl RUN chmod 755 /usr/lib/nagios/plugins/check_sshfp /usr/lib/nagios/plugins/check_ssl_cert /usr/bin/nagios-status.pl +COPY check_matrix.py /usr/lib/nagios/plugins/check_matrix ENTRYPOINT ["/docker-entrypoint.sh"] USER nagios diff --git a/check_matrix.py b/check_matrix.py new file mode 100755 index 0000000..28c140e --- /dev/null +++ b/check_matrix.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +import argparse +import http.client +import json +import sys + +parser = argparse.ArgumentParser(description='Nagios plugin for Matrix federation test.') +parser.add_argument('domain') +args = parser.parse_args() + +conn = http.client.HTTPSConnection("federation-tester.p0m.fr") +conn.request("GET", "/api/report?server_name=" + args.domain) +tester = json.load(conn.getresponse()) + +msg = "" +try: + msg += "- " + tester["Version"]["name"] + " " + tester["Version"]["version"] +except: + pass + +if tester["FederationOK"]: + print("MATRIX FEDERATION OK " + msg) + sys.exit(0) +elif len(tester["ConnectionReports"]): + print("MATRIX FEDERATION WARNING " + msg) + sys.exit(1) +else: + print("MATRIX FEDERATION CRITICAL " + msg) + sys.exit(2)