mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-23 12:15:42 +00:00
b53e1a3e0e
The unified-resource adapter flattened models.ZFSPool to four scalars (state + R/W/C totals), so scan status and the per-device report never reached the frontend. The storage detail's ZFS card, the usage bar's scrub/resilver overlay and ZFS tooltip, and ZFS-device-to-disk matching were all dead code on the unified path: a degraded pool rendered as a one-word State cell with no way to see which device failed or that a resilver was running. Found by the v5-parity audit of the pools table (same pipeline disease as #1471 on the disks table). - Add StorageMeta.ZFSPool and populate it in resourceFromStorage (normalized copy, not aliased). - Serialize it in monitorStoragePlatformData so the /api/state path carries it alongside the existing flat scalars. - Map it through normalizeStorageMeta and the storage record adapter (meta first, flat platformData fallback). - Render the per-device report (name, vdev type, state, R/W/C errors, message) in the detail's ZFS Pool card - the v6 home for what v5 showed via the health-map dots and the degraded-pool warning row. - Pin the end-to-end path in code_standards_test and update the unified-resources, monitoring, storage-recovery, and frontend-primitives contracts. Verified live in mock mode: degraded pool now shows the resilver scan, pool error totals, per-device states, and the bar pulse overlay.