Is consul online?
let's find out:
wget https://gist.github.com/ketzacoatl/736a56532843afb05266/raw/3df3d362d7e77acfb68d0c6bedef3849a812c489/consul-online.py
chmod +x consul-online.py
./consul-online.py
#!/usr/bin/env python | |
import sys | |
import consul | |
import argparse | |
from time import sleep | |
from datetime import datetime | |
from requests.exceptions import ConnectionError | |
parser = argparse.ArgumentParser(description='block until we can connect to consul') | |
parser.add_argument('-host', dest='host', action='store', default='127.0.0.1', | |
help='consul host (default: 127.0.0.1)') | |
parser.add_argument('-port', dest='port', action='store', default='8500', | |
help='HTTP port to find consul on (default: 8500)') | |
parser.add_argument('-token', dest='token', action='store', default=None, | |
help='HTTP port to find consul on') | |
args = parser.parse_args() | |
delay = 1 | |
started = datetime.now() | |
print ("is consul online? let's check!") | |
print ("will attempt to connect to consul on %s:%s" % (args.host, args.port)) | |
print ("started at %s" % datetime.strftime(started, "%H:%M:%S")) | |
c = consul.Consul(host=args.host, port=args.port, token=args.token) | |
a = c.agent | |
def retry(d=delay): | |
print ("connection failed! will delay for %d second at %s" % (d, datetime.strftime(datetime.now(), "%H:%M:%S"))) | |
sleep(d) | |
while True: | |
try: | |
c.session.create() | |
finished = datetime.now() | |
print ("connection succeeded at %s!" % datetime.strftime(finished, "%H:%M:%S")) | |
elapsed = finished - started | |
print ("total time before successful connection: %d" % (elapsed.total_seconds())) | |
sys.exit() | |
except ConnectionError: | |
retry() | |
except consul.base.ConsulException: | |
retry() |
{-# LANGUAGE RecordWildCards #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
module Main where | |
import Network.Consul (getSelf, ConsulClient(..), initializeConsulClient, listKeys) | |
import qualified Network.Consul.Internal as I | |
client = initializeConsulClient "localhost" 8500 Nothing | |
main :: IO () | |
main = do | |
putStrLn "will try to connect" | |
_client@ConsulClient{..} <- client | |
--let self = getSelf | |
--let keys = listKeys | |
x3 <- I.listKeys ccManager (I.hostWithScheme _client) ccPort "/testListKeys/" Nothing Nothing Nothing | |
putStrLn "connected!" |