mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 11:30:15 +00:00
Dramatically improve temperature proxy installation robustness
Users were abandoning Pulse due to catastrophic temperature monitoring setup failures. This commit addresses the root causes: **Problem 1: Silent Failures** - Installations reported "SUCCESS" even when proxy never started - UI showed green checkmarks with no temperature data - Zero feedback when things went wrong **Problem 2: Missing Diagnostics** - Service failures logged only in journald - Users saw "Something going on with the proxy" with no actionable guidance - No way to troubleshoot from error messages **Problem 3: Standalone Node Issues** - Proxy daemon logged continuous pvecm errors as warnings - "ipcc_send_rec" and "Unknown error -1" messages confused users - These are expected for non-clustered/LXC setups **Solutions Implemented:** 1. **Health Gate in install.sh (lines 1588-1629)** - Verify service is running after installation - Check socket exists on host - Confirm socket visible inside container via bind mount - Fail loudly with specific diagnostics if any check fails 2. **Actionable Error Messages in install-sensor-proxy.sh (lines 822-877)** - When service fails to start: dump full systemctl status + 40 lines of logs - When socket missing: show permissions, service status, and remediation command - Include common issues checklist (missing user, permission errors, lm-sensors, etc.) - Direct link to troubleshooting docs 3. **Better Standalone Node Detection in ssh.go (lines 585-595)** - Recognize "Unknown error -1" and "Unable to load access control list" as LXC indicators - Log at INFO level (not WARN) since this is expected behavior - Clarify message: "using localhost for temperature collection" **Impact:** - Eliminates "green checkmark but no temps" scenario - Users get immediate actionable feedback on failures - Standalone/LXC installations work silently without error spam - Reduces support burden from #571 (15+ comments of user frustration) Related to #571
This commit is contained in:
parent
52ee702187
commit
d3875eaae5
3 changed files with 93 additions and 9 deletions
|
|
@ -582,15 +582,20 @@ func discoverClusterNodes() ([]string, error) {
|
|||
// Check if this is a standalone node or LXC container
|
||||
// - "does not exist" or "not part of a cluster": standalone node
|
||||
// - "ipcc_send_rec": running in LXC container without corosync access
|
||||
// - "Unknown error -1": LXC container corosync communication failure
|
||||
// - "Unable to load access control list": Permission/access issues in containers
|
||||
// Note: Some Proxmox versions write these messages to stdout, others to stderr
|
||||
if strings.Contains(combinedOutput, "does not exist") ||
|
||||
strings.Contains(combinedOutput, "not part of a cluster") ||
|
||||
strings.Contains(combinedOutput, "ipcc_send_rec") {
|
||||
log.Info().Msg("Standalone Proxmox node or LXC container detected - discovering local host addresses")
|
||||
strings.Contains(combinedOutput, "ipcc_send_rec") ||
|
||||
strings.Contains(combinedOutput, "Unknown error -1") ||
|
||||
strings.Contains(combinedOutput, "Unable to load access control list") {
|
||||
// Log at INFO level since this is expected for standalone/container scenarios
|
||||
log.Info().Msg("Standalone Proxmox node or LXC container detected - using localhost for temperature collection")
|
||||
return discoverLocalHostAddresses()
|
||||
}
|
||||
// For other errors, fail
|
||||
log.Warn().Str("stderr", stderrStr).Str("stdout", stdoutStr).Msg("pvecm status failed")
|
||||
// For other unexpected errors, fail with details
|
||||
log.Warn().Str("stderr", stderrStr).Str("stdout", stdoutStr).Msg("pvecm status failed with unexpected error")
|
||||
return nil, fmt.Errorf("failed to get cluster status: %w (stderr: %s, stdout: %s)", err, stderrStr, stdoutStr)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue