diff --git a/src/calculation_target_reliability/router.py b/src/calculation_target_reliability/router.py index e5c3eeb..412dfdb 100644 --- a/src/calculation_target_reliability/router.py +++ b/src/calculation_target_reliability/router.py @@ -92,40 +92,39 @@ async def get_target_reliability( # oh_duration=duration # ) - if duration != 17520: - if not simulation_id: - raise HTTPException( - status_code=status.HTTP_400_BAD_REQUEST, - detail="Simulation ID is required for non-default duration. Please run simulation first.", - ) - else: - try: - 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 simulation_id: + try: + 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, - detail="Simulation is still running.", - ) - elif status_name != "COMPLETED": - raise HTTPException( - status_code=status.HTTP_400_BAD_REQUEST, - detail=f"Simulation failed with status: {status_name}", - ) - except HTTPException: - raise - except Exception as e: - # Handle connection errors or invalid workflow IDs + if status_name in ["RUNNING", "CONTINUED_AS_NEW"]: raise HTTPException( - status_code=status.HTTP_404_NOT_FOUND, - detail=f"Simulation not found or error checking status: {str(e)}", + status_code=status.HTTP_425_TOO_EARLY, + detail="Simulation is still running.", + ) + elif status_name != "COMPLETED": + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Simulation failed with status: {status_name}", ) + except HTTPException: + raise + except Exception as e: + # Handle connection errors or invalid workflow IDs + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=f"Simulation not found or error checking status: {str(e)}", + ) else: + if duration != 17520 or oh_duration != 1200: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Simulation ID is required for non-default duration or OH duration. Please run simulation first.", + ) simulation_id = TR_RBD_ID - + results = await get_simulation_results( simulation_id=simulation_id,