mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-22 11:10:33 +00:00
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. |
||
|---|---|---|
| .. | ||
| ceph.go | ||
| ceph_test.go | ||
| client.go | ||
| client_api_more2_test.go | ||
| client_api_more3_test.go | ||
| client_api_more4_test.go | ||
| client_api_more_test.go | ||
| client_container_config_test.go | ||
| client_container_interfaces_test.go | ||
| client_node_network_test.go | ||
| client_request_test.go | ||
| client_security_test.go | ||
| client_storage_content_test.go | ||
| client_storage_timeout_test.go | ||
| client_tasks_test.go | ||
| client_test.go | ||
| client_vma_version_test.go | ||
| cluster_client.go | ||
| cluster_client_additional_api2_test.go | ||
| cluster_client_additional_api3_test.go | ||
| cluster_client_additional_api4_test.go | ||
| cluster_client_additional_api5_test.go | ||
| cluster_client_additional_api6_test.go | ||
| cluster_client_additional_api7_test.go | ||
| cluster_client_additional_api_test.go | ||
| cluster_client_api_test.go | ||
| cluster_client_failover_test.go | ||
| cluster_client_initial_health_test.go | ||
| cluster_client_more_test.go | ||
| cluster_client_test.go | ||
| replication.go | ||
| replication_security_test.go | ||
| replication_test.go | ||
| zfs.go | ||
| zfs_details_test.go | ||
| zfs_test.go | ||