36 lines
705 B
Python
36 lines
705 B
Python
|
#!/usr/bin/env 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 sys
|
||
|
import requests
|
||
|
|
||
|
|
||
|
TIMEOUT = 5 # Seconds
|
||
|
|
||
|
|
||
|
def do_heatlhcheck(url):
|
||
|
headers = {'User-Agent': 'healthcheck'}
|
||
|
response = requests.get(url, headers=headers, 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)
|