From 8df316f5fab3869b69ea7669fe8ae39e74b4f36d Mon Sep 17 00:00:00 2001 From: Ashish D'Souza Date: Wed, 28 Jun 2023 12:54:30 +1000 Subject: [PATCH] Added consecutive downtime threshold for rebooting --- rebooter/src/rebooter.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/rebooter/src/rebooter.py b/rebooter/src/rebooter.py index 93ce24c..b1dc666 100644 --- a/rebooter/src/rebooter.py +++ b/rebooter/src/rebooter.py @@ -47,18 +47,30 @@ class Router: if __name__ == '__main__': router = Router(os.environ['ROUTER_IP'], os.environ['ROUTER_PASSWORD']) + consecutive_internet_downtime = 0 while True: + sleep(60) + if not router.check_internet_connectivity(): # Internet is down if router.check_lan_connectivity(): # LAN is up - with open('/logs/connectivity.log', 'a') as log: - log.write(f'{datetime.now()} - Internet down') + if consecutive_internet_downtime >= 2: + with open('/logs/connectivity.log', 'a') as log: + log.write(f'{datetime.now()} - Internet down, rebooting router\n') + + router.reboot() + consecutive_downtime = 0 + else: + consecutive_internet_downtime += 1 + with open('/logs/connectivity.log', 'a') as log: + log.write(f'{datetime.now()} - Internet down\n') - router.reboot() else: # LAN is down with open('/logs/connectivity.log', 'a') as log: - log.write(f'{datetime.now()} - Internet and LAN down') + log.write(f'{datetime.now()} - Internet and LAN down\n') - sleep(60) + consecutive_downtime = 0 + else: + consecutive_downtime = 0