Skip to content

Commit 5c18af9

Browse files
committed
stop scenarios in parallel
1 parent 2526957 commit 5c18af9

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/warnet/control.py

+13-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import time
77
import zipapp
88
from concurrent.futures import ThreadPoolExecutor, as_completed
9+
from multiprocessing import Pool
910
from pathlib import Path
1011
from typing import Optional
1112

@@ -112,10 +113,18 @@ def stop_scenario(scenario_name):
112113

113114

114115
def stop_all_scenarios(scenarios):
115-
"""Stop all active scenarios using Helm"""
116-
with console.status("[bold yellow]Stopping all scenarios...[/bold yellow]"):
117-
for scenario in scenarios:
118-
stop_scenario(scenario)
116+
"""Stop all active scenarios in parallel using multiprocessing"""
117+
118+
def stop_single(scenario):
119+
stop_scenario(scenario)
120+
return f"Stopped scenario: {scenario}"
121+
122+
with console.status("[bold yellow]Stopping all scenarios...[/bold yellow]"), Pool() as pool:
123+
results = pool.map(stop_single, scenarios)
124+
125+
for result in results:
126+
console.print(f"[bold green]{result}[/bold green]")
127+
119128
console.print("[bold green]All scenarios have been stopped.[/bold green]")
120129

121130

0 commit comments

Comments
 (0)