X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Ffiles%2Fmirror_health%2Fmirror-health;h=62148828f93737d2bab62286f7ed82d28d1142c4;hb=b778bf45ae54ad750c167847ee8bac0182d7a9ed;hp=fb8241ba00416667baebc0077436d9912fdd2ed5;hpb=1552612184671215e066d620536e0594a2bb4ea5;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/files/mirror_health/mirror-health b/modules/roles/files/mirror_health/mirror-health index fb8241ba0..62148828f 100755 --- a/modules/roles/files/mirror_health/mirror-health +++ b/modules/roles/files/mirror_health/mirror-health @@ -14,18 +14,18 @@ HEALTH_FILE = os.path.join(OUTPUT_DIR, "health") URL = os.environ['MIRROR_CHECK_URL'] INTERVAL = int(os.environ.get('MIRROR_CHECK_INTERVAL', '60')) -latest_tz = 0 +latest_ts = 0 def retrieve_from_host(host, url): proxies = { 'http': 'http://{}:80'.format(host), 'https': 'http://{}:443'.format(host), } - return requests.get(url, timeout=5, proxies=proxies) + return requests.get(url, timeout=5, proxies=proxies, allow_redirects=False) def last_modified(response): lm = 0 - if response.status_code == '200' and response.headers.get('last-modified'): + if response.status_code == 200 and response.headers.get('last-modified'): lm = calendar.timegm(parsedate(response.headers['last-modified'])) return lm @@ -34,18 +34,18 @@ while True: for host in HOSTS: lm = last_modified(retrieve_from_host(host, URL)) logging.debug("lm for host %s: %s", host, lm) - if lm > latest_tz: - latest_tz = lm + if lm > latest_ts: + latest_ts = lm local_lm = last_modified(retrieve_from_host('localhost', URL)) - logging.debug("lm for localhost: %s", lm) - if latest_tz <= local_lm: + logging.debug("lm for localhost: %s", local_lm) + if local_lm < latest_ts: try: - logging.debug("considering myself unhealthy") + logging.info("considering myself unhealthy my ts=%s latest_ts=%s", local_lm, latest_ts) os.remove(HEALTH_FILE) except OSError: pass else: - logging.debug("considering myself healthy") + logging.info("considering myself healthy") open(HEALTH_FILE, 'w').write("OK") sleep_time = start + INTERVAL - time.time() logging.debug("sleeping for %d seconds", sleep_time)