def test_power_off_soft(self): # arrange vcenter_name = 'vcenter name' vm_uuid = 'uuid' session = Mock() si = Mock(spec=vim.ServiceInstance) vm = Mock(spec=vim.VirtualMachine) task = Mock() pv_service = Mock() pv_service.find_by_uuid = Mock(return_value=vm) vm.PowerOff = Mock(return_value=task) synchronous_task_waiter = Mock() synchronous_task_waiter.wait_for_task = Mock(return_value=True) power_manager = VirtualMachinePowerManagementCommand( pv_service, synchronous_task_waiter) power_manager._connect_to_vcenter = Mock(return_value=si) power_manager._get_vm = Mock(return_value=vm) vcenter = Mock() vcenter.shutdown_method = 'soft' # act res = power_manager.power_off(si=si, logger=Mock(), session=session, vcenter_data_model=vcenter, vm_uuid=vm_uuid, resource_fullname=None) # assert self.assertTrue(res) self.assertTrue(vm.ShutdownGuest.called) self.assertTrue( power_manager._connect_to_vcenter.called_with(vcenter_name)) self.assertTrue(power_manager._get_vm.called_with(si, vm_uuid)) self.assertTrue( synchronous_task_waiter.wait_for_task.called_with(task))
def test_power_off_hard(self): # arrange vcenter_name = 'vcenter name' vm_uuid = 'uuid' session = Mock() si = Mock(spec=vim.ServiceInstance) vm = Mock(spec=vim.VirtualMachine) task = Mock() pv_service = Mock() pv_service.find_by_uuid = Mock(return_value=vm) vm.PowerOff = Mock(return_value=task) synchronous_task_waiter = Mock() synchronous_task_waiter.wait_for_task = Mock(return_value=True) power_manager = VirtualMachinePowerManagementCommand(pv_service, synchronous_task_waiter) power_manager._connect_to_vcenter = Mock(return_value=si) power_manager._get_vm = Mock(return_value=vm) vcenter = Mock() vcenter.shutdown_method = 'hard' # act res = power_manager.power_off(si=si, logger=Mock(), session=session, vcenter_data_model=vcenter, vm_uuid=vm_uuid, resource_fullname=None) # assert self.assertTrue(res) self.assertTrue(vm.ShutdownGuest.called) self.assertTrue(power_manager._connect_to_vcenter.called_with(vcenter_name)) self.assertTrue(power_manager._get_vm.called_with(si, vm_uuid)) self.assertTrue(synchronous_task_waiter.wait_for_task.called_with(task))