ScaleIO/VxFlex API client
Project description
Python library that provides convenient way to interact with ScaleIO/VxFlex REST API.
- Supported ScaleIO/VxFlex versions: 2.0
- Supported Python versions: 2.6, 2.7, 3.4, 3.5, 3.6
Library is under development!
Features
Currently supported:
- Simple API client with base methods according to ScaleIO/VxFlex documentation
- ORM-like models (StoragePool, Volume, etc.)
- Scheme validation for API responses
TODO:
- HATEOAS links processing
Installation
Install via pip:
$ pip install pyscaleio
Install as RPM package using yum or dnf on Fedora/RHEL/CentOS:
$ dnf copr enable miushanov/pyaddons $ dnf copr enable miushanov/pyscaleio $ dnf install python-scaleio
Usage
- Create and register API client:
import pyscaleio # create API client client = pyscaleio.ScaleIOClient.from_args("gateway_address", "admin", "password") # register it for using in models pyscaleio.add_client(client)
- Find and modify resources:
# get all volumes in cluster volumes = pyscaleio.Volume.all() assert len(volumes) == 1 # or, get volume by specified id volume = pyscaleio.Volume.one_by_name("test_volume") # and access some volume attributes assert volume.name == "test_volume" assert volume.size == 8 * constants.GIGABYTE # or, resize it to new size volume.resize(16) volume.update() # updates model data assert volume.size == 16 * constants.GIGABYTE
- Create or delete resources:
# create new volume in storage pool volume = pyscaleio.Volume.create(16, "storage_pool_id", "new_volume") assert volume.name == "new_volume" assert volume.size == 16 * constants.GIGABYTE # delete volume volume = pyscaleio.Volume.one_by_name("test_volume") volume.delete()
- Tune client and models options:
pyscaleio.configure( # retries count for each request request_retries=0, # network timeout for requests network_timeout=30, # name of exported volume (according to udev/rules.d) volume_name="emc-2{system_id}{volume_id}", # prefix of exported volume volume_prefix="/dev/disk/by-id") volume = pyscaleio.Volume.one_by_name("test_volume") assert volume.path == "/dev/disk/by-id/emc-27947a0127a79ce60ca29f20900000008"
Tests
Tests for this library divided to unit tests and functional tests. Functional tests requires ScaleIO installation and available REST API Gateway service. For running functional tests use tox environment with name functional with passed variables:
- scaleio_host - IP address or hostname of ScaleIO REST API Gateway
- scaleio_user - username
- scaleio_passwd - password
- scaleio_is_secure - 1 for using https scheme otherwise 0 (optional)
- scaleio_trace - level of logging to stderr (optional)
Example:
$ scaleio_host=localhost scaleio_user=admin scaleio_passwd=passwd tox -e functional
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyscaleio-0.1.7-py2.py3-none-any.whl (13.4 kB) | File type Wheel | Python version 2.7 | Upload date | Hashes View |
Filename, size pyscaleio-0.1.7.tar.gz (27.1 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for pyscaleio-0.1.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f12e7d63e16397717255ce3ef59d0f8d751b8668e573cf85711fd8aca1238a |
|
MD5 | 5f002e33163ad79df7fb8a4180295461 |
|
BLAKE2-256 | 4bfa7956371be4fb617b25342c5de2b8234d0f1bcdc9415a70e425997c5ee0b3 |