def test_virtual_machine_destroy_vm_on(wait_for_vcenter_task, connection): vm = VirtualMachine() vm_object_mock = mock.MagicMock() vm.__setattr__('_vm_object', vm_object_mock) vm.destroy() vm.destroy() assert vm.__getattribute__('_vm_object') is None assert wait_for_vcenter_task.call_count == 2
def test_virtual_machine_destroy_vm_off(wait_for_vcenter_task, connection): vm = VirtualMachine() vm_object_mock = mock.MagicMock() vm.__setattr__('_vm_object', vm_object_mock) wait_for_vcenter_task.side_effect = [vim.fault.InvalidPowerState, None] vm.destroy() vm.destroy() assert vm.__getattribute__('_vm_object') is None assert wait_for_vcenter_task.call_count == 2
def destroy_virtual_machines(folder_name, timeout=600): """ Destroy all the virtual machines in the folder with the given name :param folder_name: The folder name :param timeout: The timeout for vcenter tasks in seconds :return: A list with the destroyed vms """ folder = get_vcenter_object_by_name(connection(), vim.Folder, folder_name) destroyed_vms = [] for entity in folder.childEntity: if isinstance(entity, vim.VirtualMachine): vm = VirtualMachine(name=entity.summary.config.name, timeout=timeout) vm.__setattr__('_vm_object', entity) vm.destroy() destroyed_vms.append(vm) return destroyed_vms