Cizz22 2 months ago
parent c2550be789
commit eb9b9f4be9

@ -323,6 +323,29 @@ async def get_custom_parameters_controller(db_session: DbSession, simulation_id:
"message": "Simulation result retrieved successfully", "message": "Simulation result retrieved successfully",
} }
@router.get("/ahm_metrics/{simulation_id}", response_model=StandardResponse[list])
async def get_ahm_metrics_controller(db_session: DbSession, simulation_id:UUID):
simulation_result = await get_plant_calc_result(
db_session=db_session, simulation_id=simulation_id
)
default_simulation = await get_default_simulation(db_session=db_session)
result = {
"eaf_before": default_simulation.eaf,
"eaf_after": simulation_result.eaf,
"efor_before": default_simulation.efor,
"efor_after": simulation_result.efor,
"eaf_delta": simulation_result.eaf - default_simulation.eaf,
"efor_delta": simulation_result.efor - default_simulation.efor,
}
return {
"data": result,
"status": "success",
"message": "Simulation result retrieved successfully",
}
airflow_router = APIRouter() airflow_router = APIRouter()

@ -1,6 +1,9 @@
import requests
from temporalio import activity from temporalio import activity
import os
AHM_BASE_URL = os.getenv("AHM_BASE_URL", "http://192.168.1.82:8000/ahm")
AHM_SIMULATION_CALLBACK_URL = os.getenv("AHM_SIMULATION_CALLBACK_URL", "/api/v1/simulations/rbd/callback")
@activity.defn @activity.defn
async def update_equipment_for_simulation_activity(params: dict): async def update_equipment_for_simulation_activity(params: dict):
@ -63,3 +66,22 @@ async def update_contribution_bulk_mappings_activity(sim_id: str):
db_session=db_session, db_session=db_session,
simulation_id=sim_id, simulation_id=sim_id,
) )
@activity.defn
async def call_callback_ahm(params):
sim_id = params["simulation_id"]
job_id = params["job_id"]
url = f"{AHM_BASE_URL}{AHM_SIMULATION_CALLBACK_URL}"
payload = {
"simulation_id": sim_id,
"job_id": job_id,
"status" : "completed"
}
try:
callback_response = requests.post(url, json=payload, timeout=5)
callback_response.raise_for_status()
except Exception as e:
raise e

@ -1,7 +1,7 @@
from datetime import timedelta from datetime import timedelta
from temporalio import workflow from temporalio import workflow
from temporal.activity import calculate_plant_eaf_activity, execute_simulation_activity, update_contribution_bulk_mappings_activity, update_equipment_for_simulation_activity from temporal.activity import calculate_plant_eaf_activity, execute_simulation_activity, update_contribution_bulk_mappings_activity, update_equipment_for_simulation_activity,call_callback_ahm
@ -50,6 +50,17 @@ class SimulationWorkflow:
start_to_close_timeout=timedelta(days=1) start_to_close_timeout=timedelta(days=1)
) )
if "AhmJobId" in sim_data:
await workflow.execute_activity(
call_callback_ahm,
{
"simulation_id": sim_data["HubCnnId"],
"job_id": sim_data["AhmJobId"]
},
start_to_close_timeout=timedelta(days=1)
)
self.status = "COMPLETED" self.status = "COMPLETED"
# etc… # etc…
self.isDone = True self.isDone = True

Loading…
Cancel
Save