Files
Gareth 93becf3e32
Release Please / release-please (push) Has been cancelled
Release Preview / call-reusable-release (push) Has been cancelled
Test / test-nix (push) Has been cancelled
Test / test-win (push) Has been cancelled
Update Restic / update-restic-version (push) Has been cancelled
fix: multihost sync refinements (#830)
2025-11-01 18:29:35 -07:00

31 lines
775 B
Go

package protoutil
import (
"errors"
"reflect"
v1 "github.com/garethgeorge/backrest/gen/go/v1"
"github.com/garethgeorge/backrest/internal/oplog"
)
func OpSelectorToQuery(sel *v1.OpSelector) (oplog.Query, error) {
if sel == nil {
return oplog.Query{}, errors.New("empty selector")
}
q := oplog.Query{
RepoGUID: sel.RepoGuid,
PlanID: sel.PlanId,
SnapshotID: sel.SnapshotId,
FlowID: sel.FlowId,
InstanceID: sel.InstanceId,
OriginalInstanceKeyid: sel.OriginalInstanceKeyid,
ModnoGte: sel.ModnoGte,
}
if len(sel.Ids) > 0 && !reflect.DeepEqual(q, oplog.Query{}) {
return oplog.Query{}, errors.New("cannot specify both query and ids")
}
q.OpIDs = sel.Ids
return q, nil
}