issue 1841/S11: judge the upgrades' health from the runs, rounds and held kernels on the bus, so a node that slept through a run is judged by what happened, not by a unit's age (folds issue 1579)

This commit is contained in:
2026-10-22 17:38:08 +02:00
parent 276422a85b
commit f8ac498d64
4 changed files with 343 additions and 116 deletions
+3 -5
View File
@@ -236,13 +236,11 @@ func tools(m *Machine) []stdio.Tool {
},
{
Name: "pacman_upgrade_health",
Description: "Whether the weekly full upgrade (Saturday 04:00 local time, ADR 0477) last passed, as the module's health check: unhealthy " +
"with the exit and the last error of the journal when it failed, healthy while it runs, after it passed and before it ever ran. (r)",
Description: "This node's upgrades, read from the bus, as the module's health check (ADR 0508 §11): unhealthy while no upgrade-order " +
"is set, while the node's latest run is refused, failed or did not pass its after-upgrade check, hung past two hours, or held a " +
"kernel, and while the week's round stands still at this node or at the node it waits for, naming it and since when. (r)",
Input: schema(map[string]any{}),
Run: func(map[string]any) (any, error) {
if h, said := m.InstalledHealth(); said {
return h, nil
}
return m.UpgradeHealth(), nil
},
},