1414
1515 import numpy as np
1616
17- from app .schemas .requests_generator_input import RqsGeneratorInput
17+ from app .schemas .full_simulation_input import SimulationPayload
18+
19+
1820
1921
2022
2123
2224def run_simulation (
23- input_data : RqsGeneratorInput ,
25+ input_data : SimulationPayload ,
2426 * ,
2527 rng : np .random .Generator ,
2628) -> SimulationOutput :
2729 """Simulation executor in Simpy"""
28- gaps : Generator [float , None , None ] = requests_generator (input_data , rng = rng )
29- env = simpy .Environment ()
30-
31- simulation_time = input_data .total_simulation_time
30+ settings = input_data .settings
31+ simulation_time = settings .total_simulation_time
3232 # pydantic in the validation assign a value and mypy is not
3333 # complaining because a None cannot be compared in the loop
3434 # to a float
3535 assert simulation_time is not None
3636
37+ requests_generator_input = input_data .rqs_input
38+
39+ gaps : Generator [float , None , None ] = requests_generator (
40+ requests_generator_input ,
41+ settings ,
42+ rng = rng )
43+ env = simpy .Environment ()
44+
45+
3746 total_request_per_time_period = {
3847 "simulation_time" : simulation_time ,
3948 "total_requests" : 0 ,
@@ -51,6 +60,6 @@ def arrival_process(
5160
5261 return SimulationOutput (
5362 total_requests = total_request_per_time_period ,
54- metric_2 = str (input_data .avg_request_per_minute_per_user .mean ),
55- metric_n = str (input_data .avg_active_users .mean ),
63+ metric_2 = str (requests_generator_input .avg_request_per_minute_per_user .mean ),
64+ metric_n = str (requests_generator_input .avg_active_users .mean ),
5665 )
0 commit comments