From ab260fc6e0466943d5f271a2c589025cfaf926da Mon Sep 17 00:00:00 2001 From: Cyberes Date: Sun, 3 Mar 2024 23:07:45 -0700 Subject: [PATCH] fix systemd files fail-overdue: fix startup not working --- Other/fail-overdue.py | 17 ++++++++++++----- services/failoverdue.service | 3 ++- services/icinga2kuma.service | 3 ++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Other/fail-overdue.py b/Other/fail-overdue.py index ba4c8e7..67dfb71 100755 --- a/Other/fail-overdue.py +++ b/Other/fail-overdue.py @@ -20,9 +20,16 @@ def main(args): # Get all checks objects = ["hosts", "services"] - for object in objects: - response = requests.get(url + "/objects/" + object, auth=(args.username, args.password), verify=not args.insecure) - response.raise_for_status() + for obj in objects: + for i in range(3): + try: + response = requests.get(url + "/objects/" + obj, auth=(args.username, args.password), verify=not args.insecure) + response.raise_for_status() + break + except requests.exceptions.ConnectionError as e: + logging.error(f'Failed to reach Icinga2: {e}') + logging.error('Sleeping 60 seconds') + time.sleep(60) checks = response.json()["results"] @@ -40,9 +47,9 @@ def main(args): headers = {'Accept': 'application/json', 'Content-Type': 'application/json'} next_check_time = last_check_time + check_interval + check_timeout - if object == 'services': + if obj == 'services': check_filter = f'host.name=="{check["attrs"]["host_name"]}" && service.name=="{check["attrs"]["name"]}"' - elif object == 'hosts': + elif obj == 'hosts': check_filter = f'host.name=="{check["name"]}"' else: raise Exception diff --git a/services/failoverdue.service b/services/failoverdue.service index 89c027b..21c18d7 100644 --- a/services/failoverdue.service +++ b/services/failoverdue.service @@ -1,6 +1,7 @@ [Unit] Description=Icinga2 fail overdue services. -After=network.target +Wants=icinga2.service icinga-director.service +Requires=icinga2.service icinga-director.service [Service] User=flask diff --git a/services/icinga2kuma.service b/services/icinga2kuma.service index 685d5d0..3932bd6 100644 --- a/services/icinga2kuma.service +++ b/services/icinga2kuma.service @@ -1,6 +1,7 @@ [Unit] Description=Icinga to Kuma converter. -After=network.target +Wants=icinga2.service icinga-director.service +Requires=icinga2.service icinga-director.service [Service] User=flask