From cc89d04e1c0bb9e16540bda72fc0e9c7341c0269 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Thu, 27 Nov 2025 15:08:57 +0100 Subject: [PATCH 1/3] chore: log event changes for cas backend validation Signed-off-by: Miguel Martinez --- app/controlplane/pkg/biz/casbackend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controlplane/pkg/biz/casbackend.go b/app/controlplane/pkg/biz/casbackend.go index 5b242b8ec..0884a7aa2 100644 --- a/app/controlplane/pkg/biz/casbackend.go +++ b/app/controlplane/pkg/biz/casbackend.go @@ -628,7 +628,7 @@ func (uc *CASBackendUseCase) PerformValidation(ctx context.Context, id string) e // Log status change as an audit event if status has changed and auditor is available if uc.auditorUC != nil && previousStatus != validationStatus { - uc.logger.Debugw("msg", "status changed, dispatching audit event", + uc.logger.Infow("msg", "status changed, dispatching audit event", "backend", backend.ID, "previousStatus", previousStatus, "newStatus", validationStatus) From dae762bfdf13f21cc86da5356de0a9d000343fc1 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Thu, 27 Nov 2025 16:29:04 +0100 Subject: [PATCH 2/3] reload backend Signed-off-by: Miguel Martinez --- app/controlplane/pkg/biz/casbackend.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/controlplane/pkg/biz/casbackend.go b/app/controlplane/pkg/biz/casbackend.go index 0884a7aa2..c8d1ce0f5 100644 --- a/app/controlplane/pkg/biz/casbackend.go +++ b/app/controlplane/pkg/biz/casbackend.go @@ -616,6 +616,19 @@ func (uc *CASBackendUseCase) PerformValidation(ctx context.Context, id string) e } defer func() { + // reload the backend in case some other instance updated it while we were validating + backend, err := uc.repo.FindByID(ctx, backendUUID) + if err != nil { + uc.logger.Errorw("msg", "finding backend after validation", "ID", id, "error", err) + return + } else if backend == nil { + uc.logger.Errorw("msg", "backend not found after validation", "ID", id) + return + } + + // Store previous status for audit logging + previousStatus := backend.ValidationStatus + // Update the validation status and error uc.logger.Infow("msg", "updating validation status", "ID", id, "status", validationStatus, "error", validationError) if err := uc.repo.UpdateValidationStatus(ctx, backendUUID, validationStatus, validationError); err != nil { @@ -623,9 +636,6 @@ func (uc *CASBackendUseCase) PerformValidation(ctx context.Context, id string) e return } - // Store previous status for audit logging - previousStatus := backend.ValidationStatus - // Log status change as an audit event if status has changed and auditor is available if uc.auditorUC != nil && previousStatus != validationStatus { uc.logger.Infow("msg", "status changed, dispatching audit event", From ab8c800921af2d68ed2cde956581f1f7b260a18a Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Thu, 27 Nov 2025 16:38:02 +0100 Subject: [PATCH 3/3] reload backend Signed-off-by: Miguel Martinez --- app/controlplane/cmd/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controlplane/cmd/main.go b/app/controlplane/cmd/main.go index 6211eaed5..7c1e501f7 100644 --- a/app/controlplane/cmd/main.go +++ b/app/controlplane/cmd/main.go @@ -178,7 +178,7 @@ func main() { // Start around 24h mark to avoid overlap with default checker go app.casBackendChecker.Start(ctx, &biz.CASBackendCheckerOpts{ CheckInterval: 24 * time.Hour, - InitialDelay: 24 * time.Hour, + InitialDelay: (24 * time.Hour) + jitter, OnlyDefaults: toPtr(false), }) }