mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-15 08:33:03 +00:00
41c0c219a2
wilddev65's rc.2 retest confirmed the connection-keying fix split the two same-serial CORE boxes but left four symptoms. All four trace to Pulse reading fields the TrueNAS API has never served, which the pre-fix identity flapping had masked behind bigger breakage: - Datasets all showed Offline: pool.dataset.query returns no "mounted" field on any TrueNAS version (CORE 13 and SCALE both strip it from the property allowlist), and the parser read absence as unmounted. A listed dataset now defaults to mounted unless "locked" (encrypted, key unloaded) or an explicit mounted=false says otherwise. - Disks all showed Attention/Unknown: disk.query carries no status or smart_status field either, so every disk landed on UNKNOWN health, which the storage table bucketed as Attention. Per-disk ZFS state (ONLINE/DEGRADED/FAULTED/...) and pool membership are now derived from the pool.query topology that both platforms attach unconditionally -- disk.query's extra.pools cannot cross the REST bridge, whose query params turn into filters that silently match nothing. Disks therefore nest under their pools again, and a genuinely unreadable health renders as neutral Unknown instead of amber Attention. - Disk temperatures were blank: disk.temperatures takes parameters, so REST v2.0 has only ever served it as POST with a body keyed by param name; the client's GET failed on every version, and CORE (no JSON-RPC endpoint) has no reporting fallback to rescue it. The ladder now tries native JSON-RPC reporting first and falls back to the POST form, and the provider surfaces API-reported disk temps as SMART sensor entries so the host Thermals card lists disks for API-backed systems. - The storage table ordered identically-named pools (a DR pair both named "tank") by map iteration order, flipping between refreshes; ordering now tie-breaks on system name then id. Verified end-to-end against two stub TrueNAS CORE 13 REST servers reporting the same placeholder DMI serial: storage tab nests both systems' pools/datasets/disks correctly with temperatures and Healthy states, and the system drawer Thermals card lists per-disk readings.