fix: убрал only_failed (не поддерживается в Airflow 2.9), limit runs до 1

- only_failed появился в Airflow 2.10+, на 2.9.1 возвращает 400
- limit=1 — берём только последний run для каждого DAG
This commit is contained in:
Maksim Totmin 2026-04-08 18:45:27 +07:00
parent 26729641a5
commit cc4dfc0692

View File

@ -204,14 +204,14 @@ class AirflowClient:
resp = self._request(
"GET",
f"/dags/{encoded_dag_id}/dagRuns",
params=[("limit", 5), ("order_by", "-start_date")]
params=[("limit", 1), ("order_by", "-start_date")]
+ [("state", s) for s in states],
)
else:
resp = self._request(
"GET",
f"/dags/{encoded_dag_id}/dagRuns",
params={"order_by": "-start_date", "limit": 5},
params={"order_by": "-start_date", "limit": 1},
)
runs = resp.json().get("dag_runs", [])
else:
@ -282,7 +282,7 @@ class AirflowClient:
self._request(
"POST",
f"/dags/{encoded_dag_id}/dagRuns/{encoded_run_id}/clear",
json={"dry_run": False, "only_failed": True},
json={"dry_run": False},
)
logger.info("Cleared DAG run %s/%s for retry", dag_id, dag_run_id)
return True