4bd0909f2b
Phase B (hub half) of the restore-test warning fix. The agent v0.7.0 now passes a restore-test that emitted a benign start advisory (systemd-nesting) and carries the warning text on the wire. - hostRestoreTest gains warnings + warnings_recognized mirror fields (omitempty; absent recognized => false => louder unrecognized path) - ingest logs [INFO] passed WITH WARNINGS (recognized), [WARN] for unrecognized; FAILED still [WARN] - golden restore_tests[0] gains the keys, byte-identical with felhom-agent (sha256 e6999d77...); bidirectional key-set contract test round-trips them - no dashboard widget: no host-domain dashboard surface exists yet (log+persist only, as with pbs_snapshots) -- deferred to slice 10 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
53 lines
3.0 KiB
Markdown
53 lines
3.0 KiB
Markdown
# felhom.eu — task reports
|
|
|
|
> **Overwrite** this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in [hub/CHANGELOG.md](hub/CHANGELOG.md).
|
|
|
|
---
|
|
|
|
# REPORT — Hub: restore-test "passed with warnings" visibility (v0.7.5) (2026-06-09)
|
|
|
|
## Outcome
|
|
|
|
**Phase B (hub half) of `TASK — Restore-test must not false-fail on benign start warnings`.**
|
|
The agent (v0.7.0, already deployed + live-validated) now treats a benign guest-start advisory
|
|
(e.g. `WARN: Systemd 257 detected. You may need to enable nesting.`) as a PASS — verdict is
|
|
liveness, not the start-task exitstatus — and carries the warning text on the wire. This is the
|
|
hub half: ingest those fields and make a passed-with-warnings restore-test visible to the
|
|
operator instead of indistinguishable from a clean pass.
|
|
|
|
## What landed (`hub/internal/api/handler.go`, golden, `host_test.go`)
|
|
|
|
- **Wire mirror:** `hostRestoreTest` gains `warnings []string` + `warnings_recognized bool`
|
|
(`omitempty`), matching the agent's `hub.RestoreTest` field-for-field. An absent
|
|
`warnings_recognized` ⇒ `false` ⇒ the **louder** unrecognized path, so a missing flag can only
|
|
over-notice, never hide a real warning.
|
|
- **Ingest behaviour:** a passed restore-test that carried warnings now logs
|
|
`[INFO] restore-test passed WITH WARNINGS (recognized)` when every warning is the known-benign
|
|
anchor, escalated to `[WARN] … UNRECOGNIZED WARNINGS` otherwise (as loud as a failed PBS
|
|
verify). A FAILED restore-test still logs the existing `[WARN] … FAILED`.
|
|
- **Contract:** `restore_tests[0]` in the host-report golden gains the two keys; the golden stays
|
|
**byte-identical** with felhom-agent's copy (sha256 `e6999d77…`), and the bidirectional
|
|
key-set contract test round-trips the new keys through `hostRestoreTest`. `go test ./...` green.
|
|
|
|
## Scope note — no dashboard widget this slice
|
|
|
|
The task asked to "surface in the dashboard distinctly from a clean pass." The hub web layer
|
|
currently renders **only controller-report data** — there is no host-domain dashboard surface
|
|
yet (guests/storage/restore_tests/pbs_snapshots are log+persist only; the failed-PBS-verify
|
|
signal is likewise log-only). Building one is out of scope here; distinct dashboard treatment
|
|
should land with the host-domain dashboard (slice 10). The operator signal this slice is the log
|
|
line, consistent with the established failed-PBS-verify precedent.
|
|
|
|
## Backward compatibility
|
|
|
|
An agent that omits/empties `warnings`/`warnings_recognized` is accepted unchanged (the deployed
|
|
v0.7.4 hub already ignores them). The legacy controller report path is untouched.
|
|
|
|
## Deploy (GitOps)
|
|
|
|
Build+push `gitea.dooplex.hu/admin/felhom-hub:v0.7.5` → bump the `image:` tag in
|
|
`manifests/hub.yaml` → commit → sync the `felhom` ArgoCD app (auto-sync off). Live-validated
|
|
after sync: the demo host's restore-test (agent v0.7.0, which passes-with-recognized-warnings on
|
|
the Debian-13 guest 9999) reflects on the hub as `passed WITH WARNINGS (recognized)` — not a
|
|
plain pass and not a FAILED.
|