scaleio/vxflex api客户端
pyscaleio的Python项目详细描述
提供与scaleio/vxflex rest api交互的便捷方式的python库。
- 支持的scaleio/vxflex版本:2.0
- 支持的Python版本:2.6、2.7、3.4、3.5、3.6
库正在开发中!
功能
当前支持:
- 根据scaleio/vxflex文档,使用基本方法的简单api客户端
- 类似orm的型号(存储池、卷等)
- API响应的方案验证
todo:
- hateoas链接处理
安装
通过pip安装:
$ pip install pyscaleio
在fedora/rhel/centos上使用yum或dnf安装为RPM包:
$ dnf copr enable miushanov/pyaddons $ dnf copr enable miushanov/pyscaleio $ dnf install python-scaleio
用法
- 创建并注册API客户端:
importpyscaleio# create API clientclient=pyscaleio.ScaleIOClient.from_args("gateway_address","admin","password")# register it for using in modelspyscaleio.add_client(client)
- 查找和修改资源:
# get all volumes in clustervolumes=pyscaleio.Volume.all()assertlen(volumes)==1# or, get volume by specified idvolume=pyscaleio.Volume.one_by_name("test_volume")# and access some volume attributesassertvolume.name=="test_volume"assertvolume.size==8*constants.GIGABYTE# or, resize it to new sizevolume.resize(16)volume.update()# updates model dataassertvolume.size==16*constants.GIGABYTE
- 创建或删除资源:
# create new volume in storage poolvolume=pyscaleio.Volume.create(16,"storage_pool_id","new_volume")assertvolume.name=="new_volume"assertvolume.size==16*constants.GIGABYTE# delete volumevolume=pyscaleio.Volume.one_by_name("test_volume")volume.delete()
- 调整客户端和模型选项:
pyscaleio.configure(# retries count for each requestrequest_retries=0,# network timeout for requestsnetwork_timeout=30,# name of exported volume (according to udev/rules.d)volume_name="emc-2{system_id}{volume_id}",# prefix of exported volumevolume_prefix="/dev/disk/by-id")volume=pyscaleio.Volume.one_by_name("test_volume")assertvolume.path=="/dev/disk/by-id/emc-27947a0127a79ce60ca29f20900000008"
测试
这个库的测试分为单元测试和功能测试。 功能测试需要scaleio安装和可用的rest api网关服务。要运行函数测试,请使用名为functional且已传递变量的tox环境:
- scaleio_host-scaleio rest api网关的IP地址或主机名
- scaleio_user-用户名
- scaleio_passwd-密码
- scaleio_is_secure-1用于使用https方案,否则0(可选)
- scaleio_trace-记录到stderr的级别(可选)
示例:
$scaleio_host=localhost scaleio_user=admin scaleio_passwd=passwd tox -e functional