ITS Private Cloud Python Client
Project description
Python client to the ITS Private Cloud API
Documentation
Package documentation is now available at docs.
Installation
The fastest way to install PyVSS is to use pip:
pip install pyvss
If you have PyVSS installed and want to upgrade to the latest version you can run:
pip install --upgrade pyvss
This will install PyVSS as well as all dependencies.
You can also just download the tarball. Once you have the py-vss
directory structure on your workstation, you can just run:
cd <path_to_py-vss>
python setup.py install
macOS
XCode is required if you are planning to interact with VSKEY-STOR via WebdavClient.
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.
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 prior running pip.
Microsoft Visual Studio Express or Microsoft Visual C++ is required if you are planning to interact with VSKEY-STOR via WebdavClient.
easy_install.exe pyvss
easy_install.exe webdavclient
Docker
For more information refer to the Docker 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:
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
export VSS_API_USER='username'
export VSS_API_USER_PASS='username_password'
Then, from the VssManager
call the get_token
method as follows:
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.
Versioning
The API versions are tagged based on Semantic Versioning. Versions available in the tags section.
Contributing
Refer to the Contributing Guide for details on our code of conduct and the process of submitting code to the repository.
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.