Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Programming libraries wrapping the EIS Virtual Cloud RESTful API

Table of Contents

Table of Contents

Python client for the EIS Virtual Cloud RESTful API 

 The python client allows you to interact with the API using its self-descriptive methods.

Note

Image Added

Install

Installing the library is quite simple. Either clone the GitLab repository or download the source code or use pip to do everything for you:

Code Block
# pip
virtualenv ~/VirtualEnvs/pyvss
. ~/VirtualEnvs/pyvss/activate
pip install pyvss
 
# git
git clone git@gitlab.eis.utoronto.ca:vss/py-vss.git
cd py-vss
python setup.py install

Docker

If you prefer running your scripts in a docker container, the uofteis/pyvss image is the solution. It's based on Alpine Linux with Python 2.7.12 and works as follows:

Code Block
# with access token
docker run -it -v .:/data -e VSS_API_TOKEN=token_here uofteis/pyvss

# user and pass
docker run -it -v .:/data -e VSS_API_USER=user_here -e VSS_API_USER_PASS=user_pass_here uofteis/pyvss

# env file containing either VSS_API_USER and VSS_API_USER_PASS or VSS_API_TOKEN
docker run -it -v .:/data --env-file vss.env uofteis/pyvss

 

Usage

Creating a virtual machine is as easy as calling the create_vm method as follows:

Code Block
languagepy
from pyvss.manager import VssManager 

vss = VssManager(tk='api_token')
 
# get vms
vms = vss.get_vms()
 
# 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')

By setting the VSS_API_TOKEN environment variable and then executing the manager.py script and using as input args the function name followed by any parameters, the response is displayed to stdout.

Code Block
python pyvss/manager.py get_vms 'summary=1&name=pm'
[{u'_links': {u'self': u'https://vss-api.eis.utoronto.ca:8001/v2/vm/<vm_uuid>'},
  u'cpuCount': 2,
  u'folder': {u'_links': {u'self': u'https://vss-api.eis.utoronto.ca:8001/v2/folder/group-v519'},
              u'moref': u'group-v519',
              u'name': u'Public',
              u'parent': u'API'},
  u'guestFullName': u'Ubuntu Linux (64-bit)',
  u'ipAddress': u'<ip_addr>',
  u'memoryMB': 4096,
  u'name': u'1502P-pm',
  u'overallStatus': u'green',
  u'powerState': u'poweredOn',
  u'storageB': 96637166467,
  u'uuid': u'<vm_uuid>'}]