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日*

*初始发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型