Pulse/internal/monitoring/vm_disk_status.go
rcourtman fcd2384dd5
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
Stabilize transient VM disk fallbacks (#1319)
2026-03-26 11:12:23 +00:00

37 lines
1.1 KiB
Go

package monitoring
import "strings"
func classifyGuestAgentDiskStatusError(err error) string {
if err == nil {
return ""
}
errStr := err.Error()
errStrLower := strings.ToLower(errStr)
switch {
case strings.Contains(errStr, "QEMU guest agent is not running"):
return "agent-not-running"
case strings.Contains(errStr, "timeout") || strings.Contains(errStr, "deadline exceeded"):
return "agent-timeout"
case strings.Contains(errStr, "500") && (strings.Contains(errStr, "not running") || strings.Contains(errStr, "not available")):
return "agent-not-running"
case (strings.Contains(errStr, "403") || strings.Contains(errStr, "401")) &&
(strings.Contains(errStrLower, "permission") || strings.Contains(errStrLower, "forbidden") || strings.Contains(errStrLower, "not allowed")):
return "permission-denied"
case strings.Contains(errStr, "500"):
return "agent-not-running"
default:
return "agent-error"
}
}
func shouldCarryForwardQEMUDisk(reason string) bool {
switch reason {
case "", "vm-stopped", "agent-disabled", "no-agent":
return false
default:
return true
}
}