mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-26 13:39:47 +00:00
dff8ae12d5
Since #2991 stopped guessing a PMG backup node from the connection name, a failed `/config/cluster/status` read leaves no node to ask for backups, and the poller still published that empty result. `UpdatePMGBackups` replaces the instance's whole list, so one transient cluster-status failure, or every node's backup read failing, wiped every known PMG backup and the Backups view flapped empty until the next good poll. Only a node whose backup list was read is now authoritative for that cycle. Nodes that were not read (every node after a failed cluster read, a node whose backup read failed, or one a cancelled poll never reached) keep their previous backups. This is the same per-scope carry the PVE storage backup poller applies to failed storages (`preserveFailedStorageBackups`). A node that answered with no backups, or that a successful cluster read no longer lists, still clears its entries. The failed read is still recorded as a poll failure. #2991's rule against guessing node names is unchanged. Tests in `monitor_pmg_test.go`: the three retention tests fail on main and pass with this change. A complete enumeration that returns no backups still clears the list. The monitoring subsystem contract now records the carry (new section "PMG backups keep last-known entries for unread nodes"), and the #2960 note no longer says a failed cluster read publishes an empty backup list. Replaces #3005, rebuilt on current main with the contract note.