From f125589f7d8564296818192db67d35e41e586f2f Mon Sep 17 00:00:00 2001 From: ogt Date: Thu, 9 Jul 2026 22:46:32 +0800 Subject: [PATCH] fix(iwooos): retry alert receipt security readback --- apps/api/src/api/v1/iwooos.py | 37 ++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/apps/api/src/api/v1/iwooos.py b/apps/api/src/api/v1/iwooos.py index 04405fbd8..55417dfe6 100644 --- a/apps/api/src/api/v1/iwooos.py +++ b/apps/api/src/api/v1/iwooos.py @@ -86,22 +86,27 @@ async def _wazuh_readonly_status() -> JSONResponse: async def _alertmanager_receipt_readback() -> dict[str, Any]: - try: - payload = await list_recent_channel_events( - project_id="awoooi", - channel_type=None, - provider_prefix="alertmanager", - limit=20, - ) - return {**payload, "source_status": payload.get("source_status", "ready")} - except Exception as exc: - return { - "events": [], - "total": 0, - "limit": 20, - "source_status": "source_unavailable", - "source_error": exc.__class__.__name__, - } + last_error: Exception | None = None + for attempt in range(2): + try: + payload = await list_recent_channel_events( + project_id="awoooi", + channel_type=None, + provider_prefix="alertmanager", + limit=5, + ) + return {**payload, "source_status": payload.get("source_status", "ready")} + except Exception as exc: + last_error = exc + if attempt == 0: + await asyncio.sleep(0.05) + return { + "events": [], + "total": 0, + "limit": 5, + "source_status": "source_unavailable", + "source_error": last_error.__class__.__name__ if last_error else "UnknownError", + } @router.get("/api/iwooos/wazuh")