一个用于ceph rest api的python客户端库。
python-cephclient的Python项目详细描述
python cepclient是一个与Ceph’s REST API(ceph-rest-api)通信的python模块。
这项工作目前正在进行中。
关于
客户
cepclient类负责通过http和 处理回应。它支持对json、xml、纯文本或二进制文件的查询。
包装器
wrapper类扩展了客户机,并为 与api通信。
没有什么能像包装器那样阻止您直接调用客户机 做。 包装是为了方便起见而存在的。
如何使用
安装
通过pip安装软件包:
pip install python-cephclient
安装不起作用?
python cepclient依赖于lxml本身 取决于一些包裹。在ubuntu上安装lxml的依赖项:
apt-get install python-dev libxml2-dev libxslt-dev
实例cephwrapper:
from cephclient.wrapper import * wrapper = CephWrapper( endpoint = 'http://apiserver:5000/api/v0.1/', debug = True # Optionally increases the verbosity of the client )
执行请求并指定所需的响应类型。
可以使用json、xml、text(默认)或binary。
json:
response, body = wrapper.get_fsid(body = 'json') print('Response: {0}, Body:\n{1}'.format(response, json.dumps(body, indent=4, separators=(',', ': ')))) ==== Response: <Response [200]>, Body: { "status": "OK", "output": { "fsid": "d5252e7d-75bc-4083-85ed-fe51fa83f62b" } }
XML:
response, body = wrapper.get_fsid(body = 'xml') print('Response: {0}, Body:\n{1}'.format(reponse, etree.tostring(body, pretty_print=True))) ==== Response: <Response [200]>, Body: <response> <output> <fsid><fsid>d5252e7d-75bc-4083-85ed-fe51fa83f62b</fsid></fsid> </output> <status> OK </status> </response>
文本:
response, body = wrapper.get_fsid(body = 'text') print('Response: {0}, Body:\n{1}'.format(response, body)) ==== Response: <Response [200]>, Body: d5252e7d-75bc-4083-85ed-fe51fa83f62b
二进制:
response, body = wrapper.mon_getmap(body = 'binary') # < Do something binary with 'body' >
发行说明
0.1.0.5
DMIMARD:
- 添加对请求库缺少的依赖项
- 一些PEP8和代码标准化清理
- 添加根“put”方法
- 添加mon“put”方法
- 添加mds“put”方法
- 添加auth“put”方法
唐纳德·塔尔顿:
- 添加osd“put”方法
0.1.0.4
- 修复设置和pypi安装
0.1.0.3
- “/tell”下的get api调用已实现。
- get api调用位于根目录中(/)已重命名为与将来的开发一致
0.1.0.2
- 已实现或修复丢失的get调用(现在支持不在“/tell”命名空间下的所有api get调用)
- 当为提供的api调用请求不受支持的主体类型时,客户端可以选择引发异常(例如:通过包装器为已知只返回binary的调用请求json将引发异常)
- 客户端现在支持二进制类型响应(例如:crush map、mon map等)
- 改进了自述文件(!)
0.1.0.1
- python cepclient的首次公开发布