Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Python client for Consul (http://www.consul.io)

Project description

PyConsul
========

[![Latest Version](https://pypip.in/v/pyconsul/badge.png)](https://pypi.python.org/pypi/pyconsul/)
[![Build Status](https://drone.io/github.com/hackliff/pyconsul/status.png)](https://drone.io/github.com/hackliff/pyconsul/latest)
[![Coverage Status](https://coveralls.io/repos/hackliff/pyconsul/badge.png)](https://coveralls.io/r/hackliff/pyconsul)
[![Requirements Status](https://requires.io/github/hackliff/pyconsul/requirements.png?branch=master)](https://requires.io/github/hackliff/pyconsul/requirements/?branch=master)
[![License](https://pypip.in/license/pyconsul/badge.png)](https://pypi.python.org/pypi/pyconsul/)

> Python client for [Consul][1]


A dummy, one-file implementation on top of the [HTTP API][5] of Consul.

Install
-------

* Install Consul following [the official guide][3], or this one-liner:

```console
$ # Install consul 0.1.0_linux_amd64 under /usr/local/bin
$ wget -qO- https://raw.githubusercontent.com/hackliff/pyconsul/master/install-consul.sh | (sudo) bash
```

* Install pyconsul library

```console
$ (sudo) pip install pyconsul
```


Getting started
---------------

I strongly advise you to go through [the official Consul documentation][4]
before playing around with pyconsul.

First, we need an agent in server mode.

```console
consul agent -server -bootstrap \
-data-dir /tmp/consul \
-node=agent-one \
-client=192.168.0.19 \
-bind=0.0.0.0
```

Optionally, on different hosts, launch more consul agents in client mode.

```console
$ # Replace with the address provided above to `--client`
$ consul agent --join 192.168.0.19 -data-dir /tmp/consul
```

Then you can interact with them it.

```python
from pyconsul.http import Consul

# `host` meets `-client <host>` arg of consul (default to 127.0.0.1)
consul_ = Consul(host='0.0.0.0', port=8500)
print consul_.status
print consul_.health(node='agent-one')

# Access key / value storage
consul_.set('node/name', 'test')
print consul_.storage.get('node/name')
consul_.storage.delete('node/name')

# Or manage local agent (incomplete)
print consul_.local_agent.members
print consul_.local_agent.services
consul_.local_agent.join('172.17.0.3')
```

... in construction ...



License
-------

Copyright 2014 Xavier Bruhiere.

PyConsul is available under the [MIT Licence][2].


[1]: http://consul.io
[2]: http://opensource.org/licenses/MIT
[3]: http://www.consul.io/intro/getting-started/install.html
[4]: http://www.consul.io/intro/
[5]: http://www.consul.io/docs/agent/http.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyconsul, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size pyconsul-0.0.2.tar.gz (4.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page