From 1699d55c60df5e41f4d110d4f9c6af26e81e79e3 Mon Sep 17 00:00:00 2001 From: Yash Mehrotra Date: Mon, 10 Jul 2023 12:02:38 +0530 Subject: [PATCH] chore: delete transformed checks from cron --- pkg/db/canary.go | 11 ++++------- pkg/jobs/canary/canary_jobs.go | 11 +++++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pkg/db/canary.go b/pkg/db/canary.go index f53fe276e..f6d70afa0 100644 --- a/pkg/db/canary.go +++ b/pkg/db/canary.go @@ -178,13 +178,10 @@ func DeleteChecks(id []string) error { return Gorm.Table("checks").Where("id IN (?)", id).UpdateColumn("deleted_at", time.Now()).Error } -func GetCanary(id string) (*pkg.Canary, error) { - var model *pkg.Canary - if err := Gorm.Where("id = ?", id).First(&model).Error; err != nil { - return nil, err - } - - return model, nil +func GetCanary(id string) (pkg.Canary, error) { + var model pkg.Canary + err := Gorm.Where("id = ?", id).First(&model).Error + return model, err } func FindCanaryByID(id string) (*pkg.Canary, error) { diff --git a/pkg/jobs/canary/canary_jobs.go b/pkg/jobs/canary/canary_jobs.go index cdd7b39e9..ed80d7bd3 100644 --- a/pkg/jobs/canary/canary_jobs.go +++ b/pkg/jobs/canary/canary_jobs.go @@ -51,7 +51,8 @@ func StartScanCanaryConfigs(dataFile string, configFiles []string) { type CanaryJob struct { *kommons.Client Kubernetes kubernetes.Interface - v1.Canary + Canary v1.Canary + DBCanary pkg.Canary // model pkg.Canary LogPass bool LogFail bool @@ -111,6 +112,11 @@ func (job CanaryJob) Run() { logger.Errorf("error deleting transformed checks for canary %s: %v", job.Canary.GetPersistedID(), err) } + if len(checksToMarkHealthy) > 0 { + // Remove from cron and let the transformed checks repopulate + DeleteCanaryJob(job.DBCanary.ID.String()) + } + // Update last runtime map canaryLastRuntimes.Store(job.Canary.GetPersistedID(), time.Now()) } @@ -216,7 +222,7 @@ type CanaryStatusPayload struct { func findCronEntry(id string) *cron.Entry { for _, entry := range CanaryScheduler.Entries() { - if entry.Job.(CanaryJob).GetPersistedID() == id { + if entry.Job.(CanaryJob).Canary.GetPersistedID() == id { return &entry } } @@ -268,6 +274,7 @@ func SyncCanaryJob(canary v1.Canary) error { Client: Kommons, Kubernetes: Kubernetes, Canary: canary, + DBCanary: dbCanary, LogPass: canary.IsTrace() || canary.IsDebug() || LogPass, LogFail: canary.IsTrace() || canary.IsDebug() || LogFail, }