30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from biliup_next.app.bootstrap import ensure_initialized
|
|
from biliup_next.app.task_audit import record_task_action
|
|
from biliup_next.app.task_runner import process_task
|
|
from biliup_next.infra.task_reset import TaskResetService
|
|
|
|
|
|
def run_task_action(task_id: str) -> dict[str, object]:
|
|
result = process_task(task_id)
|
|
state = ensure_initialized()
|
|
record_task_action(state["repo"], task_id, "task_run", "ok", "task run invoked", result)
|
|
return result
|
|
|
|
|
|
def retry_step_action(task_id: str, step_name: str) -> dict[str, object]:
|
|
result = process_task(task_id, reset_step=step_name)
|
|
state = ensure_initialized()
|
|
record_task_action(state["repo"], task_id, "retry_step", "ok", f"retry step invoked: {step_name}", result)
|
|
return result
|
|
|
|
|
|
def reset_to_step_action(task_id: str, step_name: str) -> dict[str, object]:
|
|
state = ensure_initialized()
|
|
reset_result = TaskResetService(state["repo"]).reset_to_step(task_id, step_name)
|
|
process_result = process_task(task_id)
|
|
payload = {"reset": reset_result, "run": process_result}
|
|
record_task_action(state["repo"], task_id, "reset_to_step", "ok", f"reset to step invoked: {step_name}", payload)
|
|
return payload
|