Host detail v2: full pipeline + per-stage logs + WoL diagnostics
CI / Lint + build + test (push) Has been cancelled
CI / Lint + build + test (push) Has been cancelled
Pipeline now always renders all 13 nodes (3 pre-stage + 9 stage +
Completed), synthesising ghosts from run state when stage rows
aren't seeded yet. Makes a WaitingWoL host show the full timeline
ahead of it instead of just 4 dots.
Agent tags each log line with its stage; logs.Hub fans out to both
log-{runID} and log-{runID}-{stage} SSE events so the detail page
can show per-stage tabs with a pure-CSS radio-sibling switch. Flat
run log prepends [stage] so grep still works.
Dispatcher writes picked/sent-WoL/heartbeat lines into the per-run
log — the operator opens the detail page, sees WaitingWoL stuck,
and reads exactly what the dispatcher did and why nothing's
progressing, instead of having to tail journalctl on the LXC.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -103,6 +103,7 @@ func main() {
|
||||
SpecDiffs: specDiffStore,
|
||||
Artifacts: artifactStore,
|
||||
EventHub: hub,
|
||||
Logs: logHub,
|
||||
Runner: runner,
|
||||
Tiles: tiles,
|
||||
PublicURL: cfg.Server.PublicURL,
|
||||
@@ -126,7 +127,7 @@ func main() {
|
||||
}
|
||||
agentAPI.LiveKernelURL, agentAPI.LiveInitrdURL = pxe.BuildLiveURLs(cfg.PXE.OrchestratorURL)
|
||||
|
||||
dispatcher := orchestrator.NewDispatcher(cfg.Dispatcher.MaxConcurrentRuns, runStore, hostStore, runner)
|
||||
dispatcher := orchestrator.NewDispatcher(cfg.Dispatcher.MaxConcurrentRuns, runStore, hostStore, runner, logHub)
|
||||
iperfSup := orchestrator.NewIperfSupervisor(cfg.Network.IperfPort)
|
||||
|
||||
janitorSvc := janitor.New(janitor.Config{
|
||||
|
||||
Reference in New Issue
Block a user