osbuild-service-maintenance: Split out db cleanup
This commit is contained in:
parent
9bff4a4f0f
commit
eeb2238b12
2 changed files with 48 additions and 33 deletions
46
cmd/osbuild-service-maintenance/db.go
Normal file
46
cmd/osbuild-service-maintenance/db.go
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
|
"github.com/osbuild/osbuild-composer/internal/jobqueue/dbjobqueue"
|
||||||
|
)
|
||||||
|
|
||||||
|
func DBCleanup(dbURL string, dryRun bool, cutoff time.Time) error {
|
||||||
|
archs := []string{"x86_64"}
|
||||||
|
jobType := "osbuild"
|
||||||
|
|
||||||
|
jobs, err := dbjobqueue.New(dbURL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var jobTypes []string
|
||||||
|
for _, a := range archs {
|
||||||
|
jobTypes = append(jobTypes, fmt.Sprintf("%s:%s", jobType, a))
|
||||||
|
}
|
||||||
|
|
||||||
|
jobsByType, err := jobs.JobsUptoByType(jobTypes, cutoff)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Error querying jobs: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v := range jobsByType {
|
||||||
|
logrus.Infof("Deleting jobs and their dependencies of type %v", k)
|
||||||
|
if dryRun {
|
||||||
|
logrus.Infof("Dry run, skipping deletion of jobs: %v", v)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, jobId := range v {
|
||||||
|
err = jobs.DeleteJobIncludingDependencies(jobId)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Error deleting job: %v", jobId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
@ -7,15 +7,11 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"github.com/osbuild/osbuild-composer/internal/jobqueue/dbjobqueue"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
logrus.SetReportCaller(true)
|
logrus.SetReportCaller(true)
|
||||||
|
|
||||||
archs := []string{"x86_64"}
|
|
||||||
jobType := "osbuild"
|
|
||||||
// 14 days
|
// 14 days
|
||||||
cutoff := time.Now().Add(-(time.Hour * 24 * 14))
|
cutoff := time.Now().Add(-(time.Hour * 24 * 14))
|
||||||
logrus.Infof("Cutoff date: %v", cutoff)
|
logrus.Infof("Cutoff date: %v", cutoff)
|
||||||
|
|
@ -90,7 +86,6 @@ func main() {
|
||||||
logrus.Info("🦀🦀🦀 DB maintenance not enabled, skipping 🦀🦀🦀")
|
logrus.Info("🦀🦀🦀 DB maintenance not enabled, skipping 🦀🦀🦀")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
dbURL := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s",
|
dbURL := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s",
|
||||||
conf.PGUser,
|
conf.PGUser,
|
||||||
conf.PGPassword,
|
conf.PGPassword,
|
||||||
|
|
@ -99,35 +94,9 @@ func main() {
|
||||||
conf.PGDatabase,
|
conf.PGDatabase,
|
||||||
conf.PGSSLMode,
|
conf.PGSSLMode,
|
||||||
)
|
)
|
||||||
jobs, err := dbjobqueue.New(dbURL)
|
err = DBCleanup(dbURL, conf.DryRun, cutoff)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
logrus.Fatalf("Error during DBCleanup: %v", err)
|
||||||
}
|
|
||||||
|
|
||||||
var jobTypes []string
|
|
||||||
for _, a := range archs {
|
|
||||||
jobTypes = append(jobTypes, fmt.Sprintf("%s:%s", jobType, a))
|
|
||||||
}
|
|
||||||
|
|
||||||
jobsByType, err := jobs.JobsUptoByType(jobTypes, cutoff)
|
|
||||||
if err != nil {
|
|
||||||
logrus.Errorf("Error querying jobs: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v := range jobsByType {
|
|
||||||
logrus.Infof("Deleting jobs and their dependencies of type %v", k)
|
|
||||||
if conf.DryRun {
|
|
||||||
logrus.Infof("Dry run, skipping deletion of jobs: %v", v)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, jobId := range v {
|
|
||||||
err = jobs.DeleteJobIncludingDependencies(jobId)
|
|
||||||
if err != nil {
|
|
||||||
logrus.Errorf("Error deleting job: %v", jobId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
logrus.Info("🦀🦀🦀 dbqueue cleanup done 🦀🦀🦀")
|
logrus.Info("🦀🦀🦀 dbqueue cleanup done 🦀🦀🦀")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue