etcd-action的fork的python客户端
python-etcd-azion的Python项目详细描述
python etcd文档
=========
etcd的python客户端https://github.com/coreos/etcd
官方文档:http://python etcd.readthedocs.org/
……图片:https://travis-ci.org/jplana/python-etcd.png?branch=master
:目标:https://travis ci.org/jplana/python etcd
安装
----
~~~~~~~~~~~~~~~~~~~~
install etcd(0.2.rc1或更高版本)。此版本的python etcd只能与etcd api版本2一起正常工作。
已知此客户端可与python 2.7和python 3.3或更高版本一起工作。它没有经过测试,也不希望在更过时的python版本中工作。
代码::bash
$python setup.py install
用法
----
与以前的版本相比,客户端的基本方法已经更改,以反映新的api结构;但是,已经维护了一个兼容层,因此您不必重写所有现有代码。
代码::python
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\u redirect=false)不允许在非引导计算机上运行敏感命令,默认值为true
根据https://api.example.com:443/etcd创建客户端
client=etcd.client(host='api.example.com',protocol='https',port=443,version\u prefix='/etcd')
编写密钥
~~~~~~~~~~~
…代码::python
client.write('/nodes/n1',1)
代码::python
client.read('/nodes/n2').value
client.read('/nodes',recursive=true)递归获取目录的所有值。
client.get('/nodes/n2').value
delete a key
~代码::python
client.delete('/nodes/n1')
atomic compare and swap
~代码::python
client.write('/nodes/n2',2,prevvalue=4)将/nodes/n2的值设置为2,前提是其前一个值为4并且
client.write('/nodes/n2',2,prevexist=false)仅当键在
client之前不存在时,将/nodes/n2的值设置为2。write('/nodes/n2',2,preveindex=30)仅当上次在索引30处修改键时,将/nodes/n2的值设置为2。4)等同于客户端。写入('/nodes/n2',2,prevValue=4)
代码::python
result=client.read('/foo')
print(result.value)bar
result.value+=u'bar'
updated=client.update(result)如果同时有其他客户端写入了'/foo',则这将失败
print(updated.value)barba
键
~~~~~~~~~~~~~~~
…代码::python
client.read('/nodes/n1',wait=true)将等待密钥更改,更改后返回
client.read('/nodes/n1',wait=true,timeout=30)将等待密钥更改,更改后返回,或在30秒后异常退出。
client.read('/nodes/n1',wait=true,wait index=10)从索引10开始获取对此密钥的所有更改
client.watch('/nodes/n1')等效于client.read('/nodes/n1',wait=true)
client.watch('/nodes/n1',索引=10)
锁定模块
~~~~~~~~~~~~~~~~~~
……代码::python
client=etcd.client()
lock=client.get_lock('/customer1',ttl=60)
上下文管理器:
client=etcd.client()
lock=client.get_lock('/customer1',ttl=60)
以锁作为我的锁:
执行操作()
锁定。是否锁定(true
锁定。续订(60)
锁定。是否锁定(false
代码::python
用名称设置一个leader对象;如果没有指定名称,则使用本地主机名
。
零或没有ttl表示leader对象是持久的。
client=etcd.client()
client.election.set('/mysql',name='foo.example.com',ttl=120,timeout=30)#返回etcd索引
打印(client.election.delete('/mysql',name='foo.example.com')
代码::python
client.machines
get leader of the cluster
~代码::python
代码::bash
$python bootstrap.py
$bin/buildout
代码::bash
$bin/test
代码::bash
$cd docs
$make
release howto
----
to make a release
1)在news.txt和setup.py中更新发布日期/版本。py
2)运行"python setup.py sdist"
3)在dist/
4)中测试生成的源分发上载到PYPI:"python setup.py sdist register upload"
=====
<0.3.4
----
*在更多异常中重试
>0.3.3
----
*发布日期:2015年4月12日*
*forward只在get-u子树()递归调用中保留值
*修复上一个自述文件->;prevexist
*添加了可配置的版本前缀
*添加了对递归监视的支持
*更好的错误处理支持(更详细的异常)
*修复了一些不可靠的测试
*修复了错误。python 2.6的格式用法
*将包名称更改为python etcd azion
>0.3.2
-
*发布日期:2014年8月4日*
*固定生成的文档版本。
<0.3.1
-
*发布日期:2014年8月4日*
*添加了consisten read选项
*read中的固定超时参数
*添加了原子元素删除参数支持
*固定的删除行为
*添加的更新方法允许在结果上进行原子更新
*固定的写入检查
*将leaves generator添加到etcdresult并获取用于递归提取的u子树
*将etcdu索引添加到etcdresult
*更改的etranal->;永恒的
*更新了urllib3&pyopenssl库
*几个性能修复
*更好地解析etcd_索引和raft_索引
*删除了重复的测试
*添加了几个集成和单元测试
*在travis中使用etcd v0.3.0
*使用"python setup.py test"执行测试nose
<0.3.0
----
*发布日期:2014年1月18日*
*python 3.3兼容性
>0.2.1
----
*发布数据:2013年11月30日*
*ssl支持
*结果中添加了对子目录的支持。
*改进测试
*增加了对重新连接的支持,允许死亡节点容忍。
>0.2.0
----
*发布日期:2013年9月30日*
*允许获取multIPLE密钥(子节点)
>0.1
--
*发布日期:2013年9月18日*
*初始发布
=========
etcd的python客户端https://github.com/coreos/etcd
官方文档:http://python etcd.readthedocs.org/
……图片:https://travis-ci.org/jplana/python-etcd.png?branch=master
:目标:https://travis ci.org/jplana/python etcd
安装
----
install etcd(0.2.rc1或更高版本)。此版本的python etcd只能与etcd api版本2一起正常工作。
已知此客户端可与python 2.7和python 3.3或更高版本一起工作。它没有经过测试,也不希望在更过时的python版本中工作。
代码::bash
$python setup.py install
用法
----
与以前的版本相比,客户端的基本方法已经更改,以反映新的api结构;但是,已经维护了一个兼容层,因此您不必重写所有现有代码。
代码::python
client=etcd.client(host='127.0.0.1',port=4003)
client=etcd.client(host='127.0.0.1',port=4003,allow\u redirect=false)不允许在非引导计算机上运行敏感命令,默认值为true
根据https://api.example.com:443/etcd创建客户端
client=etcd.client(host='api.example.com',protocol='https',port=443,version\u prefix='/etcd')
编写密钥
~~~~~~~~~~~
…代码::python
client.write('/nodes/n1',1)
代码::python
client.read('/nodes/n2').value
client.read('/nodes',recursive=true)递归获取目录的所有值。
client.get('/nodes/n2').value
delete a key
~代码::python
client.delete('/nodes/n1')
atomic compare and swap
~代码::python
client.write('/nodes/n2',2,prevvalue=4)将/nodes/n2的值设置为2,前提是其前一个值为4并且
client.write('/nodes/n2',2,prevexist=false)仅当键在
client之前不存在时,将/nodes/n2的值设置为2。write('/nodes/n2',2,preveindex=30)仅当上次在索引30处修改键时,将/nodes/n2的值设置为2。4)等同于客户端。写入('/nodes/n2',2,prevValue=4)
代码::python
result=client.read('/foo')
print(result.value)bar
result.value+=u'bar'
updated=client.update(result)如果同时有其他客户端写入了'/foo',则这将失败
print(updated.value)barba
键
~~~~~~~~~~~~~~~
…代码::python
client.read('/nodes/n1',wait=true)将等待密钥更改,更改后返回
client.read('/nodes/n1',wait=true,timeout=30)将等待密钥更改,更改后返回,或在30秒后异常退出。
client.read('/nodes/n1',wait=true,wait index=10)从索引10开始获取对此密钥的所有更改
client.watch('/nodes/n1')等效于client.read('/nodes/n1',wait=true)
client.watch('/nodes/n1',索引=10)
锁定模块
~~~~~~~~~~~~~~~~~~
……代码::python
client=etcd.client()
lock=client.get_lock('/customer1',ttl=60)
上下文管理器:
client=etcd.client()
lock=client.get_lock('/customer1',ttl=60)
以锁作为我的锁:
执行操作()
锁定。是否锁定(true
锁定。续订(60)
锁定。是否锁定(false
代码::python
用名称设置一个leader对象;如果没有指定名称,则使用本地主机名
。
零或没有ttl表示leader对象是持久的。
client=etcd.client()
client.election.set('/mysql',name='foo.example.com',ttl=120,timeout=30)#返回etcd索引
打印(client.election.delete('/mysql',name='foo.example.com')
代码::python
client.machines
get leader of the cluster
~代码::python
代码::bash
$python bootstrap.py
$bin/buildout
代码::bash
$bin/test
代码::bash
$cd docs
$make
release howto
----
to make a release
1)在news.txt和setup.py中更新发布日期/版本。py
2)运行"python setup.py sdist"
3)在dist/
4)中测试生成的源分发上载到PYPI:"python setup.py sdist register upload"
<0.3.4
----
*在更多异常中重试
>0.3.3
----
*发布日期:2015年4月12日*
*forward只在get-u子树()递归调用中保留值
*修复上一个自述文件->;prevexist
*添加了可配置的版本前缀
*添加了对递归监视的支持
*更好的错误处理支持(更详细的异常)
*修复了一些不可靠的测试
*修复了错误。python 2.6的格式用法
*将包名称更改为python etcd azion
>0.3.2
-
*发布日期:2014年8月4日*
*固定生成的文档版本。
<0.3.1
-
*发布日期:2014年8月4日*
*添加了consisten read选项
*read中的固定超时参数
*添加了原子元素删除参数支持
*固定的删除行为
*添加的更新方法允许在结果上进行原子更新
*固定的写入检查
*将leaves generator添加到etcdresult并获取用于递归提取的u子树
*将etcdu索引添加到etcdresult
*更改的etranal->;永恒的
*更新了urllib3&pyopenssl库
*几个性能修复
*更好地解析etcd_索引和raft_索引
*删除了重复的测试
*添加了几个集成和单元测试
*在travis中使用etcd v0.3.0
*使用"python setup.py test"执行测试nose
<0.3.0
----
*发布日期:2014年1月18日*
>0.2.1
----
*发布数据:2013年11月30日*
*ssl支持
*结果中添加了对子目录的支持。
*改进测试
*增加了对重新连接的支持,允许死亡节点容忍。
>0.2.0
----
*发布日期:2013年9月30日*
*允许获取multIPLE密钥(子节点)
>0.1
--
*发布日期:2013年9月18日*
*初始发布