Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/backend.py
Show First 20 Lines • Show All 440 Lines • ▼ Show 20 Lines | def filter_task_to_archive( | ||||
assert not page_token or isinstance(page_token, str) | assert not page_token or isinstance(page_token, str) | ||||
last_id = -1 if page_token is None else int(page_token) | last_id = -1 if page_token is None else int(page_token) | ||||
tasks = [] | tasks = [] | ||||
cur.execute( | cur.execute( | ||||
"select * from swh_scheduler_task_to_archive(%s, %s, %s, %s)", | "select * from swh_scheduler_task_to_archive(%s, %s, %s, %s)", | ||||
(after_ts, before_ts, last_id, limit + 1) | (after_ts, before_ts, last_id, limit + 1) | ||||
) | ) | ||||
for row in cur: | for row in cur: | ||||
task = dict(row) | |||||
# nested type index does not accept bare values | # nested type index does not accept bare values | ||||
# transform it as a dict to comply with this | # transform it as a dict to comply with this | ||||
row['arguments']['args'] = { | task['arguments']['args'] = { | ||||
i: v for i, v in enumerate(row['arguments']['args']) | i: v for i, v in enumerate(task['arguments']['args']) | ||||
} | } | ||||
kwargs = row['arguments']['kwargs'] | kwargs = task['arguments']['kwargs'] | ||||
row['arguments']['kwargs'] = json.dumps(kwargs) | task['arguments']['kwargs'] = json.dumps(kwargs) | ||||
tasks.append(row) | tasks.append(task) | ||||
if len(tasks) >= limit + 1: # remains data, add pagination information | if len(tasks) >= limit + 1: # remains data, add pagination information | ||||
result = { | result = { | ||||
'tasks': tasks[:limit], | 'tasks': tasks[:limit], | ||||
'next_page_token': str(tasks[-1]['task_id']), | 'next_page_token': str(tasks[-1]['task_id']), | ||||
} | } | ||||
else: | else: | ||||
result = { | result = { | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |