Skip to content
Snippets Groups Projects
Verified Commit 5217132b authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

feat: delete stats and logs function #20

parent 3cb0b597
No related branches found
No related tags found
No related merge requests found
...@@ -240,3 +240,47 @@ func (s *DBSaver) DeleteJob(job GenericJob) error { ...@@ -240,3 +240,47 @@ func (s *DBSaver) DeleteJob(job GenericJob) error {
}) })
} }
func (s *DBSaver) DeleteLogs(job GenericJob) error {
s.mu.Lock()
defer s.mu.Unlock()
var db *gorm.DB
var err error
if db, err = checkRunningSaver(s); err != nil {
return err
}
return db.Transaction(func(tx *gorm.DB) error {
permJob := job.GetPersistence()
dbErr := tx.Where("job_id = ?", permJob.GetID()).Delete(&JobLog{}).Error
if dbErr != nil {
return dbErr
}
return nil
})
}
func (s *DBSaver) DeleteStats(job GenericJob) error {
s.mu.Lock()
defer s.mu.Unlock()
var db *gorm.DB
var err error
if db, err = checkRunningSaver(s); err != nil {
return err
}
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
}
return nil
})
}
...@@ -324,6 +324,38 @@ func TestWriteToDB(t *testing.T) { ...@@ -324,6 +324,38 @@ func TestWriteToDB(t *testing.T) {
}) })
wg.Add(1)
t.Run("TestDeleteJob", func(t *testing.T) {
defer wg.Done()
mgr := NewManager()
mgr.SetDB(db)
worker := NewLocalWorker(1)
err := mgr.AddWorker(worker)
assert.Nil(t, err)
err = mgr.Start()
assert.Nil(t, err)
runner := &CounterRunnable{}
job := NewJob[CounterResult]("job1", runner)
scheduler := &InstantScheduler{}
err = mgr.ScheduleJob(job, scheduler)
assert.Nil(t, err)
time.Sleep(1 * time.Second)
err = mgr.DeleteJob(job.GetID())
assert.Nil(t, err)
// test is job in database
var tmpJob JobPersistence
if err := db.First(&tmpJob, "id = ?", "job1").Error; err == nil {
t.Error("job1 is still in database")
}
})
wg.Wait() wg.Wait()
var jobPersistence JobPersistence var jobPersistence JobPersistence
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment