Files
pulse/internal/monitoring
rcourtman 41c0c219a2 fix(truenas): read the API shapes TrueNAS actually serves (#1573 residuals)
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.
2026-07-18 01:01:56 +01:00
..
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-11 18:25:17 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-30 09:43:33 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00