]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/controllers/task.py
import quincy beta 17.1.0
[ceph.git] / ceph / src / pybind / mgr / dashboard / controllers / task.py
CommitLineData
11fdf7f2 1# -*- coding: utf-8 -*-
11fdf7f2 2
9f95a23c 3from ..services import progress
f67539c2 4from ..tools import TaskManager
a4b75251 5from . import APIDoc, APIRouter, EndpointDoc, RESTController
f67539c2
TL
6
7TASK_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 27class 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 }