From a5627d5a6e9e5433f54e847d6945e13942c5227c Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Wed, 15 Oct 2025 07:05:18 +0700 Subject: [PATCH] fix --- src/calculation_target_reliability/router.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/calculation_target_reliability/router.py b/src/calculation_target_reliability/router.py index 1b5022b..97d2781 100644 --- a/src/calculation_target_reliability/router.py +++ b/src/calculation_target_reliability/router.py @@ -57,10 +57,8 @@ async def get_target_reliability( # oh_duration=duration # ) - if not simulation_id: - if duration == 17520: - simulation_id = TR_RBD_ID - else: + if duration != 17520: + if not simulation_id: simulation = await run_rbd_simulation( sim_hours=duration, token=token @@ -68,6 +66,19 @@ async def get_target_reliability( simulation_id = simulation.get("data") await wait_for_workflow(simulation_id=simulation_id) + else: + temporal_client = await Client.connect(TEMPORAL_URL) + handle = temporal_client.get_workflow_handle(f"simulation-{simulation_id}") + desc = await handle.describe() + status_name = desc.status.name + + if status_name in ["RUNNING", "CONTINUED_AS_NEW"]: + raise HTTPException( + status_code=status.HTTP_425_TOO_EARLY, # or 409 Conflict + detail="Simulation still running. Please wait.", + ) + else: + simulation_id = TR_RBD_ID results = await get_simulation_results(