diff --git a/app/db/migration_readiness.py b/app/db/migration_readiness.py index d0deff7..4a7e343 100644 --- a/app/db/migration_readiness.py +++ b/app/db/migration_readiness.py @@ -89,6 +89,32 @@ def _first_int(data: dict[str, Any], keys: tuple[str, ...]) -> int | None: return None +def _readiness_from_script_output(result_data: dict[str, Any], combined_text: str) -> bool: + ready_value = result_data.get("ready") + if isinstance(ready_value, bool): + return ready_value + + readiness_value = str( + result_data.get("readiness") + or result_data.get("migration_readiness") + or result_data.get("migrationReadiness") + or "" + ).strip().upper() + + if readiness_value == "READY": + return True + if readiness_value == "NOT READY": + return False + + upper_text = combined_text.upper() + if re.search(r"(? dict[str, Any]: if not job: return { @@ -123,22 +149,8 @@ def summarize_readiness(job: dict[str, Any] | None) -> dict[str, Any]: if fail_count is None: fail_count = _count_token(combined_text, "FAIL") - readiness_value = str( - result_data.get("readiness") - or result_data.get("ready") - or result_data.get("status") - or "" - ).strip().upper() - - if readiness_value in {"READY", "TRUE", "OK", "SUCCESS"}: - ready = fail_count == 0 and (job.get("status") or "").lower() == "success" - elif readiness_value in {"NOT READY", "FALSE", "FAIL", "FAILED", "ERROR"}: - ready = False - else: - ready = fail_count == 0 and (job.get("status") or "").lower() == "success" - return { - "ready": ready, + "ready": _readiness_from_script_output(result_data, combined_text), "ok_count": ok_count, "warn_count": warn_count, "fail_count": fail_count, diff --git a/app/routes/migration_readiness.py b/app/routes/migration_readiness.py index ee72f81..6aa7969 100644 --- a/app/routes/migration_readiness.py +++ b/app/routes/migration_readiness.py @@ -54,7 +54,7 @@ def migration_readiness_page(request: Request, user=Depends(require_user)): f"""

Migration Readiness

-

Poslední výsledek maintenance skriptu {html.escape(PREFLIGHT_SCRIPT)} uložený v databázi.

+

Poslední výsledek maintenance skriptu {html.escape(PREFLIGHT_SCRIPT)} uložený v databázi. Stav vychází pouze z výstupu skriptu.