Exemplo n.º 1
0
    def start(self, mac):
        # login
        login = self.client.IWebsessionManager_logon(username=self.username, password=self.password)

        # let's see what do we have
        vms = self.client.IVirtualBox_getMachines(_this=login)
        mac_vm = dict()
        for vm in vms:
            netadp = self.client.IMachine_getNetworkAdapter(_this=vm, slot=SOAPpy.unsignedIntType(0))
            macAdrr = self.client.INetworkAdapter_getMACAddress(_this=netadp)
            mac_vm[macAdrr] = self.client.IMachine_getId(_this=vm)

        vm = self.client.IVirtualBox_findMachine(_this=login, nameOrId=mac_vm[mac])
        if (vm != None) :
           vmstate = self.client.IMachine_getState(_this=vm)
           if (vmstate == "PoweredOff" or vmstate == "Aborted"):
				try: 
					logger.info('Starting "%r"', self.client.IMachine_getName(_this=vm))
					# to work with vm we need session
					sess = self.client.IWebsessionManager_getSessionObject(refIVirtualBox=login)
					#self.client.IMachine_lockMachine(_this=vm, session=sess, lockType='Shared')
					progress = self.client.IMachine_launchVMProcess(_this=vm, session=sess, name='headless')
					p = self.client.IProgress_waitForCompletion(_this=progress)
					#self.client.ISession_unlockMachine(_this=sess)
					self.client.IWebsessionManager_logoff(refIVirtualBox=sess)
				except Exception, msg:
					logger.error('Failed to create socket. Error Code : %d (%r)\n', msg.errno, msg.strerror)
Exemplo n.º 2
0
    def list(self):
        login = self.client.IWebsessionManager_logon(username=self.username, password=self.password)
        vms = self.client.IVirtualBox_getMachines(_this=login)
        mac_vm = dict()
        for vm in vms:
            netadp = self.client.IMachine_getNetworkAdapter(_this=vm, slot=SOAPpy.unsignedIntType(0))
            macAdrr = self.client.INetworkAdapter_getMACAddress(_this=netadp)
            mac_vm[macAdrr] = self.client.IMachine_getId(_this=vm)

        print mac_vm