vanilla.consul

Vanilla Python client for Consul.io


License
MIT
Install
pip install vanilla.consul==0.4.5

Documentation

Vanilla client for Consul.io

This is an adaptor/plugin for Vanilla based on the python-consul library.

Usage is the same as the standard API except that all API calls return a Vanilla pipe, which can be recv'ed on to receive the Consul response.

Example

h = vanilla.Hub()
c = h.consul()

class Config(object):
    pass

config = Config()

@h.spawn
def monitor():
    # register our service
    c.agent.service.register(
        'foo', service_id='foo:1', ttl='10s').recv()

    @h.spawn
    def keepalive():
        while True:
            # ping our service's health check every 5s
            c.health.check.ttl_pass('service:foo:1').recv()
            h.sleep(5000)

    # maintain our internal configuration state with all available nodes
    # providing the foo service
    index = None
    while True:
        index, nodes = c.health.service(
            'foo', index=index, passing=True).recv()
        config.nodes = [node['Service']['ID'] for node in nodes]

# make use of config.nodes

Installation

pip install vanilla.consul