mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 19:41:17 +00:00
37 lines
1.1 KiB
Go
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
|
|
}
|
|
}
|