Add context

This commit adds and passes context around to (almost) every function.
This allows cancelling (almost) every function call globally.
This commit is contained in:
Tom Wiesing 2022-11-28 13:30:08 +01:00
parent 996ecb9f80
commit 3455f491ca
No known key found for this signature in database
104 changed files with 836 additions and 511 deletions

View file

@ -1,6 +1,8 @@
package logger
import (
"context"
"github.com/FAU-CDI/wisski-distillery/internal/dis/component"
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/sql"
"github.com/FAU-CDI/wisski-distillery/internal/models"
@ -19,8 +21,8 @@ type Logger struct {
// For retrieves (and prunes) the ExportLog.
// Slug determines if entries for Backups (empty slug)
// or a specific Instance (non-empty slug) are returned.
func (log *Logger) For(slug string) (exports []models.Export, err error) {
exports, err = log.Log()
func (log *Logger) For(ctx context.Context, slug string) (exports []models.Export, err error) {
exports, err = log.Log(ctx)
if err != nil {
return nil, err
}
@ -31,9 +33,9 @@ func (log *Logger) For(slug string) (exports []models.Export, err error) {
}
// Log retrieves (and prunes) all entries in the snapshot log.
func (log *Logger) Log() ([]models.Export, error) {
func (log *Logger) Log(ctx context.Context) ([]models.Export, error) {
// query the table!
table, err := log.SQL.QueryTable(false, models.ExportTable)
table, err := log.SQL.QueryTable(ctx, false, models.ExportTable)
if err != nil {
return nil, err
}
@ -63,9 +65,9 @@ func (log *Logger) Log() ([]models.Export, error) {
}
// AddToExportLog adds the provided export to the log.
func (log *Logger) Add(export models.Export) error {
func (log *Logger) Add(ctx context.Context, export models.Export) error {
// find the table
table, err := log.SQL.QueryTable(false, models.ExportTable)
table, err := log.SQL.QueryTable(ctx, false, models.ExportTable)
if err != nil {
return err
}
@ -79,7 +81,7 @@ func (log *Logger) Add(export models.Export) error {
}
// Fetch writes the SnapshotLog into the given observation
func (logger *Logger) Fetch(flags component.FetcherFlags, target *status.Distillery) (err error) {
target.Backups, err = logger.For("")
func (logger *Logger) Fetch(ctx context.Context, flags component.FetcherFlags, target *status.Distillery) (err error) {
target.Backups, err = logger.For(ctx, "")
return
}