Exemplo n.º 1
0
def api_transform_tasks_revoke(request, id):
    u"""Revoke a transformation task."""
    try:
        auth_user = request.args.get(u'ebuio_u_pk') or request.form.get(u'ebuio_u_pk')
        task = api_core.get_transform_task(spec={u'_id': id})
        if not task:
            return {u'errors': [u'No transformation task with id {0}.'.format(id)]}
        if auth_user != task.user_id:
            return {u'errors': [u'You are not allowed to revoke transformation task with id {0}.'.format(id)]}
        api_core.revoke_transform_task(task=task, terminate=True, remove=False, delete_media=True)
        return {u'infos': [u'The transformation task "{0}" has been revoked. Corresponding output media asset will be'
                ' deleted.'.format(task._id)]}
    except Exception as e:
        logging.exception(e)
        return {u'errors': [unicode(e)]}
Exemplo n.º 2
0
def api_transform_task_id_delete(id=None, auth_user=None, api_core=None, request=None):
    u"""
    Revoke a transformation task.

    This method do not delete tasks from tasks database but set ``revoked`` attribute in tasks database and broadcast
    revoke request to transformation units with Celery. If the task is actually running it will be canceled.
    The output media asset will be deleted.
    """
    task = api_core.get_transform_task(spec={u'_id': id})
    if not task:
        raise IndexError(to_bytes(u'No transformation task with id {0}.'.format(id)))
    if auth_user._id != task.user_id:
        flask.abort(403, u'You are not allowed to revoke transformation task with id {0}.'.format(id))
    api_core.revoke_transform_task(task=task, terminate=True, remove=False, delete_media=True)
    return ok_200(u'The transformation task "{0}" has been revoked. Corresponding output media asset will be'
                  ' deleted.'.format(task._id), include_properties=False)