...
Generate an API access token and save it to tk.json file:
Code Block http POST https://vss-api.eis.utoronto.ca:8001/auth/request-token -a jm > tk.json http: password for jm@vss-api.eis.utoronto.ca:8001:
Start ptpython or python console:
Code Block ptpython
- Import VssManager and json libraries and load tk.json into a variable
Code Block from pyvss.manager import VssManager import json token = json.load(open('tk.json'))
- Create a VssManager instance with the previously loaded token:
Code Block vss = VssManager(tk=token.get('token'))
- Refer to the official docs or use the help built in function to display what parameters are required by the create_vm function:
Code Block help(vss.create_vm)
Define the following variables
Code Block name = 'VMfromPyVss' built = 'os_install' # it could be either clone or image as well bill_dept = 'VSS' description = 'Virtual machine created from pyVss' usage = 'QA' # could be either Prod, Test, QA or Dev cpu = 2 memory = 2 # this value is in GB disks = [1, 2, 3] # three disks of 1GB, 2GB and 3GB
Get target folder, networks, operating system and iso image to mount for the installation
Code Block networks = vss.get_networks(name='1102') # filtering by name networks = [net.get('moref') for net in networks] # we need only a moref and networks has to be a list folders = vss.get_folders(name='APIDemo') # filtering by name folder = folders[0].get('moref') isos = vss.get_isos(name='ubuntu') # filtering by name iso = isos[0].get('path') os_list = vss.get_os(name='ubuntu') # filtering by name os = os_list[0].get('guestFullName')
Create new vm request
Code Block r = vss.create_vm(name=name, os=os, built=built, bill_dept=bill_dept, description=description, folder=folder, networks=networks, disks=disks, usage=usage, cpu=cpu, memoryGB=memory, iso=iso)
We will use wait_for_request function to get new virtual machine Uuid when provisioned:
Code Block uuid = vss.wait_for_request(r.get('_links').get('request'), 'vm_uuid', 'Processed')
Once you get the uuid, get a summary of the VM:
Code Block vm = vss.get_vm(uuid) vm.get('state').get('powerState') u'poweredOff'
Power on VM
Code Block vss.power_on_vm(uuid)
Validate new VM state:
Code Block vss.get_vm_state(uuid).get('powerState') u'poweredOn'
Generate a one-time VM console link to start the OS installation
Code Block link = vss.get_vm_console()
...