def remove_vm(si, vm, destroy_vm=True): """ Remove a VM """ if vm: logging.info("Found: VM %s", vm.config.name) if vm.runtime.powerState == vim.VirtualMachinePowerState.poweredOn: logging.info("Attempting to power off %s", vm.config.name) task = vm.PowerOffVM_Task() vmdk_ops.wait_for_tasks(si, [task]) if destroy_vm: destroy_vm_object(si, vm)
def remove_vm(self, si, vm_name): vm = [d for d in si.content.rootFolder.childEntity[0].vmFolder.childEntity if d.config.name == vm_name] if vm: logging.debug("Found: VM %s", vm_name) #logging.debug("The current powerState is : %s", format(vm[0].runtime.powerState))) if vm[0].runtime.powerState == vim.VirtualMachinePowerState.poweredOn: logging.debug("Attempting to power off %s", vm_name) task = vm[0].PowerOffVM_Task() vmdk_ops.wait_for_tasks(si, [task]) logging.debug("Trying to destroy VM %s", vm_name) task = vm[0].Destroy_Task() vmdk_ops.wait_for_tasks(si, [task])
def create_vm(si, vm_name, datastore_name): """ Create a VM """ content = si.RetrieveContent() datacenter = content.rootFolder.childEntity[0] vm_folder = datacenter.vmFolder hosts = datacenter.hostFolder.childEntity resource_pool = hosts[0].resourcePool logging.info("datacenter={0} vm_folder={1} hosts={2} resource_pool={3}".format(datacenter, vm_folder, hosts, resource_pool)) # bare minimum VM shell, no disks. Feel free to edit vmx_file = vim.vm.FileInfo(logDirectory=None, snapshotDirectory=None, suspendDirectory=None, vmPathName='[' + datastore_name + '] ') config = vim.vm.ConfigSpec( name=vm_name, memoryMB=128, numCPUs=1, files=vmx_file, guestId='rhel5_64Guest', version='vmx-11' ) task = vm_folder.CreateVM_Task(config=config, pool=resource_pool) vmdk_ops.wait_for_tasks(si, [task]) logging.info("create_vm: vm_name=%s, datastore_name=%s", vm_name, datastore_name) vm = task.info.result if vm: logging.info("Found: VM %s", vm_name) if vm.runtime.powerState == vim.VirtualMachinePowerState.poweredOff: logging.info("Attempting to power on %s", vm_name) task = vm.PowerOnVM_Task() vmdk_ops.wait_for_tasks(si, [task]) else: error_info = error_code.generate_error_info(error_code.ErrorCode.VM_NOT_FOUND, vm_name) logging.error("Cannot find vm %s", vm_name) return error_info, None return None, vm
def create_vm(self, si, vm_name, datastore): content = si.RetrieveContent() datacenter = content.rootFolder.childEntity[0] vm_folder = datacenter.vmFolder hosts = datacenter.hostFolder.childEntity resource_pool = hosts[0].resourcePool datastore_path = '[' + datastore + '] ' + vm_name # bare minimum VM shell, no disks. Feel free to edit vmx_file = vim.vm.FileInfo(logDirectory=None, snapshotDirectory=None, suspendDirectory=None, vmPathName=datastore_path) config = vim.vm.ConfigSpec(name=vm_name, memoryMB=128, numCPUs=1, files=vmx_file, guestId='rhel5_64Guest', version='vmx-11') task = vm_folder.CreateVM_Task(config=config, pool=resource_pool) vmdk_ops.wait_for_tasks(si, [task]) vm = [ d for d in si.content.rootFolder.childEntity[0].vmFolder.childEntity if d.config.name == vm_name ] if vm: logging.debug("Found: VM %s", vm_name) if vm[0].runtime.powerState == vim.VirtualMachinePowerState.poweredOff: logging.debug("Attempting to power on %s", vm_name) task = vm[0].PowerOnVM_Task() vmdk_ops.wait_for_tasks(si, [task]) else: logging.error("Cannot find the test-vm") self.assertFalse(True)
def create_vm(self, si, vm_name, datastore): content = si.RetrieveContent() datacenter = content.rootFolder.childEntity[0] vm_folder = datacenter.vmFolder hosts = datacenter.hostFolder.childEntity resource_pool = hosts[0].resourcePool datastore_path = '[' + datastore + '] ' + vm_name # bare minimum VM shell, no disks. Feel free to edit vmx_file = vim.vm.FileInfo(logDirectory=None, snapshotDirectory=None, suspendDirectory=None, vmPathName=datastore_path) config = vim.vm.ConfigSpec( name=vm_name, memoryMB=128, numCPUs=1, files=vmx_file, guestId='rhel5_64Guest', version='vmx-11' ) task = vm_folder.CreateVM_Task(config=config, pool=resource_pool) vmdk_ops.wait_for_tasks(si, [task]) vm = [d for d in si.content.rootFolder.childEntity[0].vmFolder.childEntity if d.config.name == vm_name] if vm: logging.debug("Found: VM %s", vm_name) if vm[0].runtime.powerState == vim.VirtualMachinePowerState.poweredOff: logging.debug("Attempting to power on %s", vm_name) task = vm[0].PowerOnVM_Task() vmdk_ops.wait_for_tasks(si, [task]) else: logging.error("Cannot find the test-vm") self.assertFalse(True)
def destroy_vm_object(si, vm): """ Destroy a VM object """ logging.info("Trying to destroy VM %s", vm.config.name) task = vm.Destroy_Task() vmdk_ops.wait_for_tasks(si, [task])