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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 3

File details

Details for the file pyscaleio-0.1.3.tar.gz.

File metadata

  • Download URL: pyscaleio-0.1.3.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyscaleio-0.1.3.tar.gz
Algorithm Hash digest
SHA256 045db9f7ae6e66003e5c9ae2fb49102444b2ba9911d4d448f7d699980aab227f
MD5 0601ea16d7e985f6568a3d0c7fe25370
BLAKE2b-256 0d0a3078ac4e5da8372ab0c3499143001a1f3923e65a4b75b521a64ed4a51511

See more details on using hashes here.

File details

Details for the file pyscaleio-0.1.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyscaleio-0.1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4488d963c57696ead856e6a58eb3ef623379e89c9fd861354ce1b1a737e2217f
MD5 971c2f9f898991a96e2e7dc96a0505ba
BLAKE2b-256 157179ddefa963a410cb4806ff1ac5cff54f9e980df4c6498d2558105c7e09a1

See more details on using hashes here.

Supported by

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