diff --git a/src-tauri/src/commands/kube.rs b/src-tauri/src/commands/kube.rs index ecf904c1..780fa569 100644 --- a/src-tauri/src/commands/kube.rs +++ b/src-tauri/src/commands/kube.rs @@ -694,3 +694,19 @@ mod tests { assert!(validate_resource_name(&long_name, "pod").is_err()); } } + +#[tauri::command] +pub async fn shutdown_port_forwards(state: State<'_, AppState>) -> Result<(), String> { + let mut port_forwards = state.port_forwards.lock().await; + + // Close all active port forward sessions + let session_ids: Vec = port_forwards.keys().cloned().collect(); + + for session_id in session_ids { + if let Some(mut session) = port_forwards.remove(&session_id) { + session.close().await; + } + } + + Ok(()) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 49da2a05..c4b6b253 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -182,6 +182,7 @@ pub fn run() { commands::kube::stop_port_forward, commands::kube::list_port_forwards, commands::kube::delete_port_forward, + commands::kube::shutdown_port_forwards, ]) .run(tauri::generate_context!()) .expect("Error running Troubleshooting and RCA Assistant application");