#!/usr/bin/env python

from alertaclient.api import ApiClient
from alertaclient.alert import Alert
from alertaclient.heartbeat import Heartbeat
import sys
import os
import time
import json
import consul
import time

client = consul.Consul(host='127.0.0.1', port=8500, token=None, scheme='http', consistency='default', dc=None, verify=True)

url = client.kv.get('alerta/apiurl')[1]['Value']
key = client.kv.get('alerta/apikey')[1]['Value']

max_retries = int(client.kv.get('alerta/max_retries')[1]['Value'])
sleep = int(client.kv.get('alerta/sleep')[1]['Value'])
timeout = int(client.kv.get('alerta/timeout')[1]['Value'])

origin = client.kv.get('alerta/origin')[1]['Value']
api = ApiClient(endpoint=url, key=key)

def createheartbeat():
    hb = Heartbeat(origin=origin, timeout=timeout)
    for i in range(max_retries):
        try:
            print(api.send(hb))
        except Exception as e:
            print("HTTP Error: {}".format(e))
            time.sleep(sleep)
            continue
        else:
            break
    else:
        print("api is down")

def main():
    createheartbeat()

if __name__ == "__main__":
    main()