scaleio/vxflex api客户端

pyscaleio的Python项目详细描述


https://travis-ci.org/gmmephisto/pyscaleio.svg?branch=masterhttps://coveralls.io/repos/github/gmmephisto/pyscaleio/badge.svg?branch=masterhttps://copr.fedorainfracloud.org/coprs/miushanov/pyscaleio/package/python-scaleio/status_image/last_build.png

提供与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上使用yumdnf安装为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

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

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务