From 672bdacd8b2bec4d7cf849a489ca7e3d0386f64d Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Mon, 13 Nov 2023 11:37:30 +0100 Subject: [PATCH] fix: stats should not deleted, but reset #22 --- database.go | 17 +++++++++++------ manager.go | 12 ++++++------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/database.go b/database.go index 7863b08..a9a46ca 100644 --- a/database.go +++ b/database.go @@ -241,7 +241,7 @@ func (s *DBSaver) DeleteJob(job GenericJob) error { } -func (s *DBSaver) DeleteLogs(job GenericJob) error { +func (s *DBSaver) ResetLogs(job GenericJob) error { s.mu.Lock() defer s.mu.Unlock() var db *gorm.DB @@ -254,7 +254,8 @@ func (s *DBSaver) DeleteLogs(job GenericJob) error { return db.Transaction(func(tx *gorm.DB) error { permJob := job.GetPersistence() - dbErr := tx.Where("job_id = ?", permJob.GetID()).Delete(&JobLog{}).Error + // unscoped because we want to delete the logs finally + dbErr := tx.Unscoped().Where("job_id = ?", permJob.GetID()).Delete(&JobLog{}).Error if dbErr != nil { return dbErr } @@ -263,7 +264,7 @@ func (s *DBSaver) DeleteLogs(job GenericJob) error { }) } -func (s *DBSaver) DeleteStats(job GenericJob) error { +func (s *DBSaver) ResetStats(job GenericJob) error { s.mu.Lock() defer s.mu.Unlock() var db *gorm.DB @@ -276,9 +277,13 @@ func (s *DBSaver) DeleteStats(job GenericJob) error { return db.Transaction(func(tx *gorm.DB) error { permJob := job.GetPersistence() - dbErr := tx.Where("job_id = ?", permJob.GetID()).Delete(&JobStats{}).Error - if dbErr != nil { - return dbErr + permJob.Stats = JobStats{ + JobID: permJob.GetID(), + } + + txErr := tx.Model(&permJob).Updates(permJob).Error + if txErr != nil { + return txErr } return nil diff --git a/manager.go b/manager.go index 825e44f..3e512de 100644 --- a/manager.go +++ b/manager.go @@ -149,8 +149,8 @@ func (m *Manager) RemoveJob(id JobID) error { return m.removeJobInternal(id) } -// DeleteJobLogs deletes the logs of a job -func (m *Manager) DeleteJobLogs(id JobID) error { +// ResetJobLogs deletes the logs of a job +func (m *Manager) ResetJobLogs(id JobID) error { m.mu.Lock() defer m.mu.Unlock() @@ -160,7 +160,7 @@ func (m *Manager) DeleteJobLogs(id JobID) error { if m.dbSaver != nil { - err := m.dbSaver.DeleteLogs(m.activeJobs[id]) + err := m.dbSaver.ResetLogs(m.activeJobs[id]) if err != nil { return err } @@ -169,8 +169,8 @@ func (m *Manager) DeleteJobLogs(id JobID) error { return nil } -// DeleteJobStats deletes the stats of a job -func (m *Manager) DeleteJobStats(id JobID) error { +// ResetJobStats deletes the stats of a job +func (m *Manager) ResetJobStats(id JobID) error { m.mu.Lock() defer m.mu.Unlock() @@ -180,7 +180,7 @@ func (m *Manager) DeleteJobStats(id JobID) error { if m.dbSaver != nil { - err := m.dbSaver.DeleteStats(m.activeJobs[id]) + err := m.dbSaver.ResetStats(m.activeJobs[id]) if err != nil { return err } -- GitLab