def get_tasks_statuses_in_session()

in source/control_plane/python/lambda/get_results/get_results.py [0:0]


def get_tasks_statuses_in_session(session_id):

    assert(session_id is not None)
    response = {
        "finished": [],
        "finished_OUTPUT": [],
        "cancelled": [],
        "cancelled_OUTPUT": [],
        "failed": [],
        "failed_OUTPUT": []
    }

    # <1.> Process finished Tasks
    finished_tasks_resp = state_table.get_tasks_by_state(session_id, TASK_STATE_FINISHED)

    finished_tasks = finished_tasks_resp["Items"]
    if len(finished_tasks) > 0:
        response[TASK_STATE_FINISHED] = [x["task_id"] for x in finished_tasks]
        response[TASK_STATE_FINISHED + '_OUTPUT'] = ["read_from_dataplane" for x in finished_tasks]

    # <2.> Process cancelled Tasks
    cancelled_tasks_resp = state_table.get_tasks_by_state(session_id, TASK_STATE_CANCELLED)

    cancelled_tasks = cancelled_tasks_resp["Items"]
    if len(cancelled_tasks) > 0:
        response[TASK_STATE_CANCELLED] = [x["task_id"] for x in cancelled_tasks]
        response[TASK_STATE_CANCELLED + '_OUTPUT'] = ["read_from_dataplane" for x in cancelled_tasks]

    # <3.> Process failed Tasks
    failed_tasks_resp = state_table.get_tasks_by_state(session_id, TASK_STATE_FAILED)

    failed_tasks = failed_tasks_resp["Items"]
    if len(failed_tasks) > 0:
        response[TASK_STATE_FAILED] = [x["task_id"] for x in failed_tasks]
        response[TASK_STATE_FAILED + '_OUTPUT'] = ["read_from_dataplane" for x in failed_tasks]

    # <4.> Process metadata
    response["metadata"] = {
        "tasks_in_response": len(finished_tasks) + len(cancelled_tasks) + len(failed_tasks)
    }

    return response