diff --git a/database.go b/database.go index 7863b086f970b20e26bc629905f4145db08bfc09..a9a46ca1094a0eced650dfb2b690fc3fc527f3aa 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 825e44f5fbad5c90b38ca95b13561e5ebd14f75e..3e512de65d703a0b927e2cbf3ec46f66512fff10 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 }