def DELETE(self, task_id): """ Cancel the task that is represented by the given task_id, unless it is already in a complete state. :param task_id: The ID of the task you wish to cancel :type task_id: basestring """ tasks.cancel(task_id) return self.ok(None)
def test_cancel_after_task_canceled(self, *unused_mocks): """ Test that canceling a task that was already canceled results in no change to the task state. """ task_id = '1234abcd' TaskStatusManager.create_task_status(task_id, 'test_worker', state=CALL_CANCELED_STATE) tasks.cancel(task_id) task_status = TaskStatusManager.find_by_task_id(task_id) self.assertEqual(task_status['state'], CALL_CANCELED_STATE)
def test_cancel_after_task_finished(self, logger, revoke): """ Test that canceling a task that is already finished results in no change to the task state. """ task_id = '1234abcd' TaskStatusManager.create_task_status(task_id, 'test_worker', state=CALL_FINISHED_STATE) tasks.cancel(task_id) task_status = TaskStatusManager.find_by_task_id(task_id) self.assertEqual(task_status['state'], CALL_FINISHED_STATE)
def test_cancel_after_task_canceled(self, *unused_mocks): """ Test that canceling a task that was already canceled results in no change to the task state. """ task_id = '1234abcd' TaskStatus(task_id, 'test_worker', state=CALL_CANCELED_STATE).save() tasks.cancel(task_id) task_status = TaskStatus.objects(task_id=task_id).first() self.assertEqual(task_status['state'], CALL_CANCELED_STATE)
def test_cancel_after_task_finished(self, _logger, revoke): """ Test that canceling a task that is already finished results in no change to the task state. """ task_id = '1234abcd' TaskStatus(task_id, 'test_worker', state=CALL_FINISHED_STATE).save() tasks.cancel(task_id) task_status = TaskStatus.objects(task_id=task_id).first() self.assertEqual(task_status['state'], CALL_FINISHED_STATE)
def test_cancel_successful(self, _logger, revoke): task_id = '1234abcd' TaskStatus(task_id).save() tasks.cancel(task_id) revoke.assert_called_once_with(task_id, terminate=True) self.assertEqual(_logger.info.call_count, 1) log_msg = _logger.info.mock_calls[0][1][0] self.assertTrue(task_id in log_msg) self.assertTrue('Task canceled' in log_msg) task_status = TaskStatus.objects(task_id=task_id).first() self.assertEqual(task_status['state'], CALL_CANCELED_STATE)
def test_cancel_successful(self, logger, revoke): task_id = '1234abcd' TaskStatusManager.create_task_status(task_id) tasks.cancel(task_id) revoke.assert_called_once_with(task_id, terminate=True) self.assertEqual(logger.info.call_count, 1) log_msg = logger.info.mock_calls[0][1][0] self.assertTrue(task_id in log_msg) self.assertTrue('Task canceled' in log_msg) task_status = TaskStatusManager.find_by_task_id(task_id) self.assertEqual(task_status['state'], CALL_CANCELED_STATE)
def delete(self, request, task_id): """ Dispatch tasks.cancel to delete a single task. :param request: WSGI request object :type request: django.core.handlers.wsgi.WSGIRequest :param task_id: The ID of the task you wish to cancel :type task_id: basestring :return: Response containing None :rtype: django.http.HttpResponse """ tasks.cancel(task_id) return generate_json_response(None)
def test_agent_cancel(self, logger, cancel, revoke): task_id = '1234abcd' consumer_id = '18d' tags = [ action_tag('UNUSED'), resource_tag(RESOURCE_CONSUMER_TYPE, consumer_id) ] TaskStatus(task_id, tags=tags, worker_name='agent').save() tasks.cancel(task_id) cancel.assert_called_once_with(mock.ANY, consumer_id, task_id) self.assertFalse(revoke.called) self.assertEqual(logger.info.call_count, 1) log_msg = logger.info.mock_calls[0][1][0] self.assertTrue(task_id in log_msg) self.assertTrue('Task canceled' in log_msg) task_status = TaskStatus.objects(task_id=task_id).first() self.assertEqual(task_status['state'], CALL_CANCELED_STATE)
def delete(self, request, group_id): """ Dispatch tasks.cancel to delete tasks in a single task_group. :param request: WSGI request object :type request: django.core.handlers.wsgi.WSGIRequest :param group_id: The ID of the task group you wish to cancel :type group_id: basestring :return: Response containing None :rtype: django.http.HttpResponse :raises MissingResource: if group id is not found """ raw_tasks = TaskStatus.objects.only('task_id').filter(group_id=group_id) if not raw_tasks: raise MissingResource for task in raw_tasks: tasks.cancel(task.task_id) return generate_json_response(None)
def delete(self, request, group_id): """ Dispatch tasks.cancel to delete tasks in a single task_group. :param request: WSGI request object :type request: django.core.handlers.wsgi.WSGIRequest :param group_id: The ID of the task group you wish to cancel :type group_id: basestring :return: Response containing None :rtype: django.http.HttpResponse :raises MissingResource: if group id is not found """ raw_tasks = TaskStatus.objects.only('task_id').filter( group_id=group_id) if not raw_tasks: raise MissingResource for task in raw_tasks: tasks.cancel(task.task_id) return generate_json_response(None)