perf: Cache lowercase error string in guest agent error handling

Compute strings.ToLower(errStr) once and reuse errStrLower instead of
calling ToLower three times on the same string in permission check.
This commit is contained in:
rcourtman
2025-12-02 15:26:40 +00:00
parent 9dbfc3216c
commit a4edd6229f
+2 -1
View File
@@ -502,6 +502,7 @@ func (m *Monitor) pollVMsWithNodes(ctx context.Context, instanceName string, cli
if err != nil {
// Handle errors
errStr := err.Error()
errStrLower := strings.ToLower(errStr)
log.Warn().
Str("instance", instanceName).
Str("vm", vm.Name).
@@ -530,7 +531,7 @@ func (m *Monitor) pollVMsWithNodes(ctx context.Context, instanceName string, cli
Int("vmid", vm.VMID).
Msg("Guest agent communication failed (API error 500). Install and start qemu-guest-agent in the VM")
} else if (strings.Contains(errStr, "403") || strings.Contains(errStr, "401")) &&
(strings.Contains(strings.ToLower(errStr), "permission") || strings.Contains(strings.ToLower(errStr), "forbidden") || strings.Contains(strings.ToLower(errStr), "not allowed")) {
(strings.Contains(errStrLower, "permission") || strings.Contains(errStrLower, "forbidden") || strings.Contains(errStrLower, "not allowed")) {
// Only treat as permission-denied if we get explicit auth/permission error codes (401/403)
// This distinguishes actual permission issues from guest agent unavailability
diskStatusReason = "permission-denied"