mirror-health: add shutdown check
authorJulien Cristau <jcristau@debian.org>
Sun, 1 Oct 2017 10:32:19 +0000 (12:32 +0200)
committerJulien Cristau <jcristau@debian.org>
Sun, 1 Oct 2017 10:36:35 +0000 (12:36 +0200)
modules/roles/files/mirror_health/mirror-health

index 1d4fae0..a11c257 100755 (executable)
@@ -5,6 +5,7 @@ import requests
 import time
 import calendar
 import logging
+import subprocess
 from email.utils import parsedate
 logging.basicConfig(level=logging.INFO)
 
@@ -29,6 +30,12 @@ def last_modified(response):
         lm = calendar.timegm(parsedate(response.headers['last-modified']))
     return lm
 
+def check_shutdown():
+    if subprocess.call(['dsa-is-shutdown-scheduled']) == 0:
+        logging.info("considering myself unhealthy, shutdown scheduled")
+        return False
+    return True
+
 def check_uptodate():
     global latest_ts
     for host in HOSTS:
@@ -48,7 +55,7 @@ def check_uptodate():
 
 while True:
     start = time.time()
-    if check_uptodate():
+    if check_shutdown() and check_uptodate():
         logging.info("considering myself healthy")
         open(HEALTH_FILE, 'w').write("OK")
     else: