...
- name: VMfromPyVss
- built process: os install
- billing client department: VSS
- description: virtual machine created from vss
- usage: QA
- cpu and memory: 2
- disks: 1GB, 2GB and 3GB
- networks: any available network in your account
- folders: any folder available in your account
- iso: ubuntu 12.04 i386
- os: ubuntuGuest
...
Generate an API access token and save it to tk.json file:
Code Block http POST https://vss-api.eis.utoronto.ca/auth/request-token -a jm > tk.json http: password for jm@vss-api.eis.utoronto.ca:
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_deptclient = '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 = [{'network': 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_deptclient=client, description=description, folder=folder, networks=networks, disks=disks, usage=usage, cpu=cpu, memoryGB=memory, iso=iso, power_on=True)
We will use wait_for_request function to get new virtual machine Uuid when provisioned:
Code Block uuidvm_id = vss.wait_for_request(r.get('_links').get('request'), 'vm_uuidmoref', 'Processed')
Once you get the uuidid, get a summary of the VM:
Code Block vm = vss.get_vm(uuidvm_id) vm.get('state').get('powerState') u'poweredOff'
Power on VM
Validate new VMCode Block vss.power_on_vm(uuid)
:state
Code Block vss.get_vm_state(uuid).get('powerState') u'poweredOn'
Generate a one-time VM console vSphere client link to start the OS installation
Code Block link = vss.get_vm_vsphere_consolelink()
AsciiCast
...
vm_id)
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Page Properties | |||
---|---|---|---|
| |||
|