tubesync/tubesync/healthcheck.py
tcely d349bd55c4
Avoid env for healthcheck
This is only intended for use in containers, so we know where python3 should be installed.

This is called very often, so we should try to use as few resources as we can.
2025-01-15 04:43:58 -05:00

42 lines
878 B
Python
Executable File

#!/usr/bin/python3
'''
Perform an HTTP request to a URL and exit with an exit code of 1 if the
request did not return an HTTP/200 status code.
Usage:
$ ./healthcheck.py http://some.url.here/healthcheck/resource
'''
import os
import sys
import requests
TIMEOUT = 5 # Seconds
HTTP_USER = os.getenv('HTTP_USER')
HTTP_PASS = os.getenv('HTTP_PASS')
def do_heatlhcheck(url):
headers = {'User-Agent': 'healthcheck'}
auth = None
if HTTP_USER and HTTP_PASS:
auth = (HTTP_USER, HTTP_PASS)
response = requests.get(url, headers=headers, auth=auth, timeout=TIMEOUT)
return response.status_code == 200
if __name__ == '__main__':
try:
url = sys.argv[1]
except IndexError:
sys.stderr.write('URL must be supplied\n')
sys.exit(1)
if do_heatlhcheck(url):
sys.exit(0)
else:
sys.exit(1)