add check_home_assistant
This commit is contained in:
parent
54b68b1fb8
commit
3d191bf355
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
import requests
|
||||
|
||||
from checker import nagios
|
||||
|
||||
# https://github.com/LukasK13/check_home-assistant/blob/master/check_home-assistant.py
|
||||
|
||||
parser = argparse.ArgumentParser(prog='check_home-assistant.py', description='Check Home-Assistant API for state')
|
||||
parser.add_argument('-u', '--url', dest='url', help='URL to the Home-Assistant API.')
|
||||
parser.add_argument('-t', '--token', dest='token', metavar='Access-Token', help='Sccess token for Home-Assistant.', required=True)
|
||||
parser.add_argument('-i', '--insecure', dest='verify', default=True, action='store_false', help="Insecure connection. Don't verify the SSL certificate.")
|
||||
args = parser.parse_args()
|
||||
|
||||
headers = {'Authorization': 'Bearer ' + args.token, 'content-type': 'application/json'}
|
||||
try:
|
||||
res = requests.get(args.url.strip('/') + '/api/', headers=headers, verify=args.verify)
|
||||
state_mes = res.json()
|
||||
state = state_mes['message']
|
||||
except:
|
||||
print('Unknown: failed to fetch data')
|
||||
traceback.print_exc()
|
||||
sys.exit(nagios.STATE_UNKNOWN)
|
||||
|
||||
if res.status_code == 200:
|
||||
if state == 'API running.':
|
||||
print('OK: API running')
|
||||
else:
|
||||
print(f'Critical: API is {state}')
|
||||
sys.exit(nagios.STATE_CRIT)
|
||||
else:
|
||||
print(f'Unknown: Request returned status code {str(res.status_code)}')
|
||||
sys.exit(nagios.STATE_UNKNOWN)
|
Loading…
Reference in New Issue