mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
0fcf9944b3
Audit pass on Docker Hosts and vSphere Hosts. Docker hosts had `docker.uptimeSeconds` and `docker.temperature` in the payload but the canonical adapter never projected them to the top-level `Resource.Uptime` / `Resource.Temperature` fields the table reads, so both columns showed dashes. Same projection pattern as the prior commits in this chain (c7bdd11e0for host/node,5b94724bffor TrueNAS). Live mock now reports `uptime: 781089, temperature: 44.3°C` on the Docker host row. vSphere ESXi hosts had a richer column-fit problem: the generic infrastructure table omits the vCenter inventory context that matters most for the operator — datacenter, cluster, power state, datastore count, VM count, vCenter — and shows dashes for Uptime / Temperature because the upstream VMware inventory model does not expose host bootTime today (canonical-model gap, not a projection bug). New `VsphereHostsTable` reuses canonical shared primitives (Card, Table, SearchInput, FilterButtonGroup, StatusDot) and surfaces the vCenter-native columns; per-host VM count is computed from the page scope client-side (no extra API calls). Mounted on `/vmware/overview` in place of the generic infrastructure table. New `DockerHostsTable` (mounted on `/docker/overview`) does the parallel job for Docker / Podman hosts: runtime (Docker vs Podman), runtime version, container count, Swarm role, plus CPU / Memory / Uptime / Temp from the canonical metrics + new projections. Browser verification (Playwright, chromium, live mock-mode): - 9 tests pass; every-sub-tab operator-controls audit still finds the canonical search input on /docker/overview and /vmware/overview (now from each bespoke table's toolbar). Targeted Go: `go test ./internal/unifiedresources/...` green. Contract-neutral bypass: PULSE_ALLOW_CONTRACT_NEUTRAL_COMMIT set. Continues the column-fit audit chain (c7bdd11e0→5b94724bf→69f70a3fc). New Uptime/Temperature projection is strictly additive on existing AgentData/DockerData payloads; the two new bespoke tables live inside features/ and reuse canonical primitives only.