Skip to main content

ScaleIO API client

Project description

https://travis-ci.org/gmmephisto/pyscaleio.svg?branch=master https://coveralls.io/repos/github/gmmephisto/pyscaleio/badge.svg?branch=master

Python library that provides convenient way to interact with ScaleIO REST API.

  • Supported ScaleIO versions: 2.0

  • Supported Python versions: 2.6, 2.7, 3.4, 3.5

Library is under development!

Features

Currently supported:

  • Simple API client with base methods according to ScaleIO 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/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"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyscaleio-0.1.3.tar.gz (29.4 kB view hashes)

Uploaded Source

Built Distribution

pyscaleio-0.1.3-py2.py3-none-any.whl (15.0 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page