diff --git a/hive-c0re/src/server.rs b/hive-c0re/src/server.rs index 2bd75c5a..074d5ff0 100644 --- a/hive-c0re/src/server.rs +++ b/hive-c0re/src/server.rs @@ -148,20 +148,23 @@ async fn dispatch(req: &HostRequest, coord: Arc) -> HostResponse { HostRequest::RestartAll => { tracing::info!("restart-all"); let agents = lifecycle::list().await?; + let mut ok_agents: Vec = Vec::new(); let mut errors: Vec = Vec::new(); for agent in &agents { if let Err(e) = lifecycle::restart(agent).await { tracing::warn!(%agent, error = ?e, "restart-all: failed to restart agent"); errors.push(format!("{agent}: {e:#}")); + } else { + ok_agents.push(agent.clone()); } } if errors.is_empty() { - HostResponse::list(agents) + HostResponse::list(ok_agents) } else { HostResponse { ok: false, error: Some(errors.join("; ")), - agents: Some(agents), + agents: Some(ok_agents), approvals: None, } }