]>
Commit | Line | Data |
---|---|---|
11fdf7f2 | 1 | # -*- coding: utf-8 -*- |
11fdf7f2 | 2 | |
9f95a23c | 3 | from ..services import progress |
f67539c2 | 4 | from ..tools import TaskManager |
a4b75251 | 5 | from . import APIDoc, APIRouter, EndpointDoc, RESTController |
f67539c2 TL |
6 | |
7 | TASK_SCHEMA = { | |
8 | "executing_tasks": (str, "ongoing executing tasks"), | |
9 | "finished_tasks": ([{ | |
10 | "name": (str, "finished tasks name"), | |
11 | "metadata": ({ | |
12 | "pool": (int, "") | |
13 | }, ""), | |
14 | "begin_time": (str, "Task begin time"), | |
15 | "end_time": (str, "Task end time"), | |
16 | "duration": (int, ""), | |
17 | "progress": (int, "Progress of tasks"), | |
18 | "success": (bool, ""), | |
19 | "ret_value": (bool, ""), | |
20 | "exception": (bool, "") | |
21 | }], "") | |
22 | } | |
11fdf7f2 TL |
23 | |
24 | ||
a4b75251 TL |
25 | @APIRouter('/task') |
26 | @APIDoc("Task Management API", "Task") | |
11fdf7f2 | 27 | class Task(RESTController): |
f67539c2 TL |
28 | @EndpointDoc("Display Tasks", |
29 | parameters={ | |
30 | 'name': (str, 'Task Name'), | |
31 | }, | |
32 | responses={200: TASK_SCHEMA}) | |
11fdf7f2 TL |
33 | def list(self, name=None): |
34 | executing_t, finished_t = TaskManager.list_serializable(name) | |
9f95a23c TL |
35 | |
36 | e, f = progress.get_progress_tasks() | |
37 | executing_t.extend(e) | |
38 | finished_t.extend(f) | |
39 | ||
40 | executing_t.sort(key=lambda t: t['begin_time'], reverse=True) | |
41 | finished_t.sort(key=lambda t: t['end_time'], reverse=True) | |
42 | ||
11fdf7f2 TL |
43 | return { |
44 | 'executing_tasks': executing_t, | |
45 | 'finished_tasks': finished_t | |
46 | } |