summaryrefslogtreecommitdiff
path: root/docs-source/index.rst
blob: 3a5488fe2598f259c448bd60d279fc5d4db20b61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
Python-etcd documentation
=========================

A python client for Etcd https://github.com/coreos/etcd




Installation
------------

Pre-requirements
................

Install etcd


From source
...........

.. code:: bash

    $ python setup.py install


Usage
-----

Create a client object
......................

.. code:: python

   import etcd

   client = etcd.Client() # this will create a client against etcd server running on localhost on port 4001
   client = etcd.Client(port=4002)
   client = etcd.Client(host='127.0.0.1', port=4003)
   client = etcd.Client(host='127.0.0.1', port=4003, allow_redirect=False) # wont let you run sensitive commands on non-leader machines, default is true


Set a key
.........

.. code:: python

    client.set('/nodes/n1', 1)
    # with ttl
    client.set('/nodes/n2', 2, ttl=4)  # sets the ttl to 4 seconds

Get a key
.........

.. code:: python

    client.get('/nodes/n2')['value']


Delete a key
............

.. code:: python

    client.delete('/nodes/n1')


Test and set
............

.. code:: python

    client.test_and_set('/nodes/n2', 2, 4) # will set /nodes/n2 's value to 2 only if its previous value was 4


Watch a key
...........

.. code:: python

    client.watch('/nodes/n1') # will wait till the key is changed, and return once its changed


List sub keys
.............

.. code:: python

    client.get('/nodes')


Get machines in the cluster
...........................

.. code:: python

    client.machines


Get leader of the cluster
.........................

.. code:: python

    client.leader




Development setup
-----------------

To create a buildout,

.. code:: bash

  $ python bootstrap.py
  $ bin/buildout


to test you should have etcd available in your system path:

.. code:: bash

  $ bin/test

to generate documentation,

.. code:: bash

  $ cd docs
  $ make



Release HOWTO
-------------

To make a release,

  1) Update release date/version in NEWS.txt and setup.py
  2) Run 'python setup.py sdist'
  3) Test the generated source distribution in dist/
  4) Upload to PyPI: 'python setup.py sdist register upload'
  5) Increase version in setup.py (for next release)


Code documentation
------------------

.. toctree::
   :maxdepth: 2

   api.rst