get_logs: resolve the broker-logical 'manager' alias to the hm1nd machine

This commit is contained in:
damocles 2026-05-20 10:47:47 +02:00
parent 0a79912b67
commit 24b10becc9

View file

@ -287,10 +287,17 @@ async fn dispatch(req: &ManagerRequest, coord: &Arc<Coordinator>) -> ManagerResp
ManagerRequest::GetLogs { agent, lines } => {
let n = lines.unwrap_or(50);
// `journalctl -M` wants the *machine* name, not the
// logical agent name. Map it the same way every other
// lifecycle verb does so the caller passes `gui` and we
// resolve `h-gui` (manager stays `hm1nd`).
let machine = crate::lifecycle::container_name(agent);
// logical agent name: `gui` → `h-gui`. `container_name`
// does that and passes `hm1nd` through unprefixed — but
// it doesn't know the broker-logical manager name
// `"manager"` (it'd wrongly produce `h-manager`), so
// handle that alias explicitly. Either manager spelling
// resolves to the unprefixed `hm1nd` machine.
let machine = if agent == MANAGER_AGENT {
crate::lifecycle::MANAGER_NAME.to_owned()
} else {
crate::lifecycle::container_name(agent)
};
tracing::info!(%agent, %machine, %n, "manager: get_logs");
match tokio::process::Command::new("journalctl")
.args([