Skip to content

Instantly share code, notes, and snippets.

@alecnunn
Created December 10, 2013 14:00
Show Gist options
  • Select an option

  • Save alecnunn/7890978 to your computer and use it in GitHub Desktop.

Select an option

Save alecnunn/7890978 to your computer and use it in GitHub Desktop.
__author__ = "Alec Nunn"
from pysphere import VIServer
from pysphere.resources import VimService_services as VI
#--------------------------------------------------------
# CONFIGURATION
#--------------------------------------------------------
hostIP = ""
user = ""
password = ""
logging = False
logFile = "debug.log"
separator = "_"*80
#--------------------------------------------------------
# CREATE A NEW NIC
#--------------------------------------------------------
def add_nic(vm, server, net_label="DEFAULT_LABEL"):
request = VI.ReconfigVM_TaskRequestMsg()
_this = request.new__this(vm._mor)
_this.set_attribute_type(vm._mor.get_attribute_type())
request.set_element__this(_this)
spec = request.new_spec()
dev_change = spec.new_deviceChange()
dev_change.set_element_operation("add")
nic_ctlr = VI.ns0.VirtualVmxnet3_Def("nic_ctlr").pyclass()
nic_backing = VI.ns0.VirtualEthernetCardNetworkBackingInfo_Def("nic_backing").pyclass()
nic_backing.set_element_deviceName(net_label)
nic.ctlr.set_element_addressType("generated")
nic_ctlr.set_element_backing(nic_backing)
nic_ctlr.set_element_key(4)
dev_change.set_element_device(nic_ctlr)
spec.set_element_deviceChange([dev_change])
request.set_element_spec(spec)
server._proxy.ReconfigVM_Task(request)
#--------------------------------------------------------
# DELETE THE VM
#--------------------------------------------------------
def deleteVM(vm, server):
if vm.get_status() == "POWERED ON":
vm.power_off()
request = VI.Destroy_TaskRequestMsg()
_this = request.new__this(vm._mor)
_this.set_attribute_type(vm._mor.get_attribute_type())
request.set_element__this(_this)
server._proxy.Destroy_task(request)._returnval
#--------------------------------------------------------
# LOG IN TO THE VM
#--------------------------------------------------------
def loginVM(vm, server, user, passw):
vm.login_in_guest(user, passw)
#--------------------------------------------------------
# CREATE VIRTUAL HARD DISK
#--------------------------------------------------------
def createVHDD(vm, server, hddName):
#--------------------------------------------------------
# CONNECT TO THE SERVER
#--------------------------------------------------------
def conn(host, user, passw, dbg=False):
serv = VIServer()
if dbg:
serv.connect(host, user, passw, trace_file="debug.log")
else:
serv.connect(host, user, passw)
return serv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment