Skip to main content

ITS Private Cloud Python Client

Project description

# Python client to the ITS Private Cloud API

[![CI][build-img]](https://gitlab-ee.eis.utoronto.ca/vss/py-vss/commits/master)
[![Coverage][coverage-img]](https://gitlab-ee.eis.utoronto.ca/vss/py-vss/commits/master)
[![PyPI][pypi-img]](https://pypi.python.org/pypi/pyvss)
[![PyPI version][pyver-img]](https://pypi.python.org/pypi/pyvss)
[![Docker Image Pulls][docker-pulls-img]][docker-image]
[![Docker Image Layers][docker-layer-img]][docker-image]
[![Docker Image Version][docker-version-img]][docker-image]


## Documentation

Package documentation is now available at [docs][docs].

## Installation

The fastest way to install PyVSS is to use [pip][pip]:

```bash
pip install pyvss
```

If you have PyVSS installed and want to upgrade to the latest version you can run:

```bash
pip install --upgrade pyvss
```

This will install PyVSS as well as all dependencies.

You can also just [download the tarball][download the tarball]. Once you have the `py-vss` directory structure on your workstation, you can just run:

```bash
cd <path_to_py-vss>
python setup.py install
```

### macOS

XCode is required if you are planning to interact with VSKEY-STOR via [WebdavClient][WebdavClient].

```bash
xcode-select --install
curl https://bootstrap.pypa.io/ez_setup.py -o - | python
python setup.py install --prefix=/opt/setuptools
sudo easy_install pyvss
sudo easy_install webdavclient
```

### Linux

Additional libraries are required iif you are planning to interact with VSKEY-STOR via [WebdavClient][WebdavClient].

```bash
sudo apt install libxml2-dev libxslt-dev python-dev
sudo apt install libcurl4-openssl-dev python-pycurl
sudo easy_install pyvss
sudo easy_install webdavclient
```

### Windows

> Windows users, download and install [Python Releases for Windows][Python Releases for Windows] prior running [pip][pip].

Microsoft Visual Studio Express or Microsoft Visual C++ is required if you are planning
to interact with VSKEY-STOR via [WebdavClient][WebdavClient].

```powershell
easy_install.exe pyvss
easy_install.exe webdavclient
```

## Docker

For more information refer to the [Docker](docker/README.md) section.

Use
===

Create an instance of ``VssManager`` passing your **ITS Private Cloud API access token**
and your are all set to start calling any of the self-descriptive methods included:

```python
from pyvss.manager import VssManager
vss = VssManager(tk='api_token')

# list vms
vms = vss.get_vms()

# list folders
folders = vss.get_folders()

# networks
networks = vss.get_networks()

# domains
domains = vss.get_domains()

# power cycle vm
vss.power_cycle_vm(uuid='<uuid>')

# create vm
req = vss.create_vm(os='ubuntu64Guest', built='os_install',
description='Testing python wrapper',
folder='group-v6736', bill_dept='EIS', disks=[100, 100])
uuid = vss.wait_for_request(req['_links']['request'], 'vm_uuid', 'Processed')

# creating multiple vms
reqs = vss.create_vms(count=3, name='python', os='ubuntu64Guest', bill_dept='EIS',
description='Testing multiple deployment from python wrapper',
folder='group-v6736', built='os_install')
uuids = [vss.wait_for_request(r['_links']['request'], 'vm_uuid', 'Processed') for r in reqs]

# power on recently created vms
for uuid in uuids:
vss.power_on_vm(uuid)

# create snapshot
req = vss.create_vm_snapshot(uuid='5012abcb-a9f3-e112-c1ea-de2fa9dab90a',
desc='Snapshot description',
date_time='2016-08-04 15:30',
valid=1)
snap_id = vss.wait_for_request(req['_links']['request'], 'snap_id', 'Processed')

# revert to snapshot
req = vss.revert_vm_snapshot(uuid, snap_id)
```

An alternative is to generate a token from within the ``VssManager`` class and this can be done
by setting the following environment variables

```bash
export VSS_API_USER='username'
export VSS_API_USER_PASS='username_password'
```

Then, from the ``VssManager`` call the ``get_token`` method as follows:

```python
from pyvss.manager import VssManager
vss = VssManager()
vss.get_token()
```

## Getting Help

We use GitLab issues for tracking bugs, enhancements and feature requests.
If it turns out that you may have found a bug, please [open a new issue][open a new issue].

## Versioning

The API versions are tagged based on [Semantic Versioning](https://semver.org/). Versions available in the
[tags section](https://gitlab-ee.eis.utoronto.ca/vss/py-vss/tags).

## Contributing

Refer to the [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process of
submitting code to the repository.

[docs]: https://eis.utoronto.ca/~vss/pyvss/
[download the tarball]: https://pypi.python.org/pypi/pyvss
[Click]: http://click.pocoo.org/6/
[Python Releases for Windows]: https://www.python.org/downloads/windows/
[pip]: http://www.pip-installer.org/en/latest/
[open a new issue]: https://gitlab-ee.eis.utoronto.ca/vss/py-vss/issues/new>
[WebdavClient]: http://designerror.github.io/webdav-client-python/
[Alpine Linux]: https://hub.docker.com/_/alpine/
[PyVSS]: https://pypi.python.org/pypi/pyvss
[build-img]: https://gitlab-ee.eis.utoronto.ca/vss/py-vss/badges/master/build.svg
[coverage-img]: https://gitlab-ee.eis.utoronto.ca/vss/py-vss/badges/master/coverage.svg
[pypi-img]: https://img.shields.io/pypi/v/pyvss.svg
[pyver-img]: https://img.shields.io/pypi/pyversions/pyvss.svg
[docker-pulls-img]: https://img.shields.io/docker/pulls/uofteis/pyvss.svg
[docker-layer-img]: https://images.microbadger.com/badges/image/uofteis/pyvss.svg
[docker-version-img]: https://images.microbadger.com/badges/version/uofteis/pyvss.svg
[docker-image]: https://hub.docker.com/r/uofteis/pyvss/

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pyvss-0.9.16.tar.gz (25.0 kB view hashes)

Uploaded Source

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