Pulse/pkg/proxmox
rcourtman 0dd3f8bedb Surface per-endpoint reasons in cluster "no healthy nodes" error
When every cluster endpoint failed health, getHealthyClient wrapped
the failure as `no healthy nodes available in cluster X (all N
endpoints unreachable: [...])`, dropping the per-endpoint reason from
cc.lastError. The connections aggregator's auth-error regex
(401/403/unauthorized/forbidden/authentication/...) only sees the
outer message, so a token rejected with 401 on every endpoint of a
clustered PVE connection surfaced as `state: "unreachable"` /
`adapterHealth: "blocked"` instead of `state: "unauthorized"` /
`credentialStatus: "invalid"` — the same Settings → Connections
brokenness the rest of today's commits set out to remove.

Single-node `pve:pi` already classified the same kind of failure
correctly because its error came straight from the per-instance
client; only the cluster wrapper masked it.

Surface each unhealthy endpoint's already-sanitized reason in the
outer error. The "no healthy nodes available" prefix is preserved so
existing callers that test for it (monitor_polling_storage.go,
internal cluster_client passthroughs, existing tests) keep working.

Add a regression test covering both shapes:
- all endpoints failed auth → wrapped error contains
  "Authentication failed" so the aggregator regex now matches.
- endpoint with no recorded reason → wrapped error includes the
  fallback "no recorded reason" text rather than a bare URL.
2026-05-08 21:10:14 +01:00
..
ceph.go Count Ceph monitors from monitor arrays 2026-05-01 20:28:11 +01:00
ceph_test.go Count Ceph monitors from monitor arrays 2026-05-01 20:28:11 +01:00
client.go Fix Proxmox guest memory fallbacks 2026-05-05 14:59:29 +01:00
client_api_more2_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_api_more3_test.go Harden Proxmox guest fsinfo parsing 2026-04-01 18:47:14 +01:00
client_api_more4_test.go test: improve coverage for API, AI, Alerts, and Frontend Utils 2026-01-20 15:52:39 +00:00
client_api_more_test.go Add guest agent meminfo VM memory fallback 2026-04-01 19:00:48 +01:00
client_container_config_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_container_interfaces_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_node_network_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_request_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_security_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_storage_content_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_storage_timeout_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_tasks_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
client_test.go Fix Proxmox guest memory fallbacks 2026-05-05 14:59:29 +01:00
client_vma_version_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client.go Surface per-endpoint reasons in cluster "no healthy nodes" error 2026-05-08 21:10:14 +01:00
cluster_client_additional_api2_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api3_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api4_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api5_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api6_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api7_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_additional_api_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_api_test.go fix(memory): correct memory reporting for Linux VMs and FreeBSD ZFS ARC 2026-02-18 12:56:53 +00:00
cluster_client_failover_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_initial_health_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cluster_client_more_test.go Surface per-endpoint reasons in cluster "no healthy nodes" error 2026-05-08 21:10:14 +01:00
cluster_client_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
replication.go Use checked Proxmox replication parsing 2026-04-01 16:18:02 +01:00
replication_security_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
replication_test.go Use checked Proxmox replication parsing 2026-04-01 16:18:02 +01:00
zfs.go Normalize Proxmox special ZFS groups 2026-04-15 16:40:43 +01:00
zfs_details_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
zfs_test.go Normalize Proxmox special ZFS groups 2026-04-15 16:40:43 +01:00