pool: Reddo component-like fields
This commit is contained in:
parent
99983ee6db
commit
337a5fbeba
48 changed files with 291 additions and 163 deletions
|
|
@ -75,7 +75,7 @@ func (backup *Backup) run(ctx context.Context, progress io.Writer, exporter *Exp
|
|||
defer done()
|
||||
|
||||
// create a new status display
|
||||
backups := exporter.Backupable
|
||||
backups := exporter.Dependencies.Backupable
|
||||
backup.ComponentErrors = make(map[string]error, len(backups))
|
||||
|
||||
// Component backup tasks
|
||||
|
|
@ -125,7 +125,7 @@ func (backup *Backup) run(ctx context.Context, progress io.Writer, exporter *Exp
|
|||
}
|
||||
|
||||
// list all instances
|
||||
wissKIs, err := exporter.Instances.All(ctx)
|
||||
wissKIs, err := exporter.Dependencies.Instances.All(ctx)
|
||||
if err != nil {
|
||||
backup.InstanceListErr = err
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -18,13 +18,14 @@ import (
|
|||
// Exporter manages snapshots and backups
|
||||
type Exporter struct {
|
||||
component.Base
|
||||
Dependencies struct {
|
||||
SQL *sql.SQL
|
||||
Instances *instances.Instances
|
||||
ExporterLogger *logger.Logger
|
||||
|
||||
SQL *sql.SQL
|
||||
Instances *instances.Instances
|
||||
ExporterLogger *logger.Logger
|
||||
|
||||
Snapshotable []component.Snapshotable
|
||||
Backupable []component.Backupable
|
||||
Snapshotable []component.Snapshotable
|
||||
Backupable []component.Backupable
|
||||
}
|
||||
}
|
||||
|
||||
// Path returns the path that contains all snapshot related data.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ import (
|
|||
|
||||
type Pathbuilders struct {
|
||||
component.Base
|
||||
Instances *instances.Instances
|
||||
Dependencies struct {
|
||||
Instances *instances.Instances
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
@ -24,7 +26,7 @@ func (Pathbuilders) SnapshotName() string { return "pathbuilders" }
|
|||
|
||||
func (pbs *Pathbuilders) Snapshot(wisski models.Instance, scontext component.StagingContext) error {
|
||||
return scontext.AddDirectory(".", func(ctx context.Context) error {
|
||||
builders, err := pbs.Instances.Instance(ctx, wisski).Pathbuilder().GetAll(ctx, nil)
|
||||
builders, err := pbs.Dependencies.Instances.Instance(ctx, wisski).Pathbuilder().GetAll(ctx, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ func (exporter *Exporter) MakeExport(ctx context.Context, progress io.Writer, ta
|
|||
// write out the log entry
|
||||
entry.Path = stagingDir
|
||||
entry.Packed = false
|
||||
exporter.ExporterLogger.Add(ctx, entry)
|
||||
exporter.Dependencies.ExporterLogger.Add(ctx, entry)
|
||||
|
||||
logging.ProgressF(progress, ctx, "Wrote %s\n", stagingDir)
|
||||
return nil
|
||||
|
|
@ -159,7 +159,7 @@ func (exporter *Exporter) MakeExport(ctx context.Context, progress io.Writer, ta
|
|||
logging.LogMessage(progress, ctx, "Writing Log Entry")
|
||||
entry.Path = archivePath
|
||||
entry.Packed = true
|
||||
exporter.ExporterLogger.Add(ctx, entry)
|
||||
exporter.Dependencies.ExporterLogger.Add(ctx, entry)
|
||||
|
||||
// and we're done!
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -14,8 +14,9 @@ import (
|
|||
// Logger is responsible for logging backups and snapshots
|
||||
type Logger struct {
|
||||
component.Base
|
||||
|
||||
SQL *sql.SQL
|
||||
Dependencies struct {
|
||||
SQL *sql.SQL
|
||||
}
|
||||
}
|
||||
|
||||
// For retrieves (and prunes) the ExportLog.
|
||||
|
|
@ -35,7 +36,7 @@ func (log *Logger) For(ctx context.Context, slug string) (exports []models.Expor
|
|||
// Log retrieves (and prunes) all entries in the snapshot log.
|
||||
func (log *Logger) Log(ctx context.Context) ([]models.Export, error) {
|
||||
// query the table!
|
||||
table, err := log.SQL.QueryTable(ctx, false, models.ExportTable)
|
||||
table, err := log.Dependencies.SQL.QueryTable(ctx, false, models.ExportTable)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -67,7 +68,7 @@ func (log *Logger) Log(ctx context.Context) ([]models.Export, error) {
|
|||
// AddToExportLog adds the provided export to the log.
|
||||
func (log *Logger) Add(ctx context.Context, export models.Export) error {
|
||||
// find the table
|
||||
table, err := log.SQL.QueryTable(ctx, false, models.ExportTable)
|
||||
table, err := log.Dependencies.SQL.QueryTable(ctx, false, models.ExportTable)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,6 @@ func (exporter *Exporter) PruneExports(ctx context.Context, progress io.Writer)
|
|||
}
|
||||
|
||||
// prune the snapshot log!
|
||||
_, err = exporter.ExporterLogger.Log(ctx)
|
||||
_, err = exporter.Dependencies.ExporterLogger.Log(ctx)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ func (snapshot *Snapshot) makeParts(ctx context.Context, progress io.Writer, sna
|
|||
defer st.Stop()
|
||||
|
||||
// get all the components
|
||||
comps := collection.FilterClone(snapshots.Snapshotable, func(sc component.Snapshotable) bool {
|
||||
comps := collection.FilterClone(snapshots.Dependencies.Snapshotable, func(sc component.Snapshotable) bool {
|
||||
return sc.SnapshotNeedsRunning() == needsRunning
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue