Files
backrest/internal/orchestrator/tasks/flowidutil.go

25 lines
748 B
Go

package tasks
import (
"fmt"
v1 "github.com/garethgeorge/backrest/gen/go/v1"
"github.com/garethgeorge/backrest/internal/oplog"
"github.com/garethgeorge/backrest/internal/oplog/indexutil"
)
// FlowIDForSnapshotID returns the flow ID associated with the backup task that created snapshot ID or 0 if not found.
func FlowIDForSnapshotID(oplog *oplog.OpLog, snapshotID string) (int64, error) {
var flowID int64
if err := oplog.ForEachBySnapshotId(snapshotID, indexutil.CollectAll(), func(op *v1.Operation) error {
if _, ok := op.Op.(*v1.Operation_OperationBackup); !ok {
return nil
}
flowID = op.FlowId
return nil
}); err != nil {
return 0, fmt.Errorf("get flow id for snapshot %q : %w", snapshotID, err)
}
return flowID, nil
}