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)
Example #2
0
    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 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])