Skip to content

Commit 6ab0375

Browse files
committed
reuse cleanup report for delete-pitr
1 parent a1102d7 commit 6ab0375

File tree

4 files changed

+6
-60
lines changed

4 files changed

+6
-60
lines changed

cmd/pbm-agent/delete.go

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -302,43 +302,21 @@ func (a *Agent) Cleanup(ctx context.Context, d *ctrl.CleanupCmd, opid ctrl.OPID,
302302
func deletePITRImpl(ctx context.Context, conn connect.Client, ts primitive.Timestamp) error {
303303
l := log.LogEventFromContext(ctx)
304304

305-
cfg, err := config.GetConfig(ctx, conn)
306-
if err != nil {
307-
return errors.Wrap(err, "get config")
308-
}
309-
310-
if cfg.PITR.Enabled && !cfg.PITR.OplogOnly {
311-
ct, err := topo.GetClusterTime(ctx, conn)
312-
if err != nil {
313-
return errors.Wrap(err, "get cluster time")
314-
}
315-
316-
lw, err := backup.FindBaseSnapshotLWBefore(ctx, conn, ct, primitive.Timestamp{})
317-
if err != nil {
318-
return errors.Wrap(err, "find previous snapshot")
319-
}
320-
if !lw.IsZero() {
321-
if lw.T < ts.T || (lw.T == ts.T && (ts.I == 0 || lw.I < ts.I)) {
322-
ts = lw
323-
}
324-
}
325-
}
326-
327-
chunks, err := oplog.ListDeleteChunksBefore(ctx, conn, ts)
305+
r, err := backup.MakeCleanupInfo(ctx, conn, ts)
328306
if err != nil {
329307
return errors.Wrap(err, "get pitr chunks")
330308
}
331-
if len(chunks) == 0 {
309+
if len(r.Chunks) == 0 {
332310
l.Debug("nothing to delete")
333311
return nil
334312
}
335313

336-
stg, err := util.StorageFromConfig(cfg.Storage, l)
314+
stg, err := util.GetStorage(ctx, conn, l)
337315
if err != nil {
338316
return errors.Wrap(err, "get storage")
339317
}
340318

341-
return deleteChunks(ctx, conn, stg, chunks)
319+
return deleteChunks(ctx, conn, stg, r.Chunks)
342320
}
343321

344322
func deleteChunks(ctx context.Context, m connect.Client, stg storage.Storage, chunks []oplog.OplogChunk) error {

cmd/pbm/delete.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"go.mongodb.org/mongo-driver/bson/primitive"
1313

1414
"github.com/percona/percona-backup-mongodb/pbm/backup"
15-
"github.com/percona/percona-backup-mongodb/pbm/config"
1615
"github.com/percona/percona-backup-mongodb/pbm/connect"
1716
"github.com/percona/percona-backup-mongodb/pbm/ctrl"
1817
"github.com/percona/percona-backup-mongodb/pbm/defs"
@@ -188,24 +187,6 @@ func deletePITR(
188187
}
189188
}
190189

191-
enabled, oplogOnly, err := config.IsPITREnabled(ctx, conn)
192-
if err != nil {
193-
return nil, errors.Wrap(err, "check pitr status")
194-
}
195-
196-
if enabled && !oplogOnly {
197-
lw, err := backup.FindBaseSnapshotLWBefore(ctx,
198-
conn, primitive.Timestamp{T: uint32(time.Now().UTC().Unix())}, primitive.Timestamp{})
199-
if err != nil {
200-
return nil, errors.Wrap(err, "find previous snapshot")
201-
}
202-
if !lw.IsZero() {
203-
if lw.T < until.T || (lw.T == until.T && (until.I == 0 || lw.I < until.I)) {
204-
until = lw
205-
}
206-
}
207-
}
208-
209190
chunks, err := sdk.ListDeleteChunksBefore(ctx, pbm, until)
210191
if err != nil {
211192
return nil, errors.Wrap(err, "list chunks")

pbm/oplog/chunk.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -491,16 +491,3 @@ func HasSingleTimelineToCover(chunks []OplogChunk, from, till uint32) bool {
491491

492492
return false
493493
}
494-
495-
func ListDeleteChunksBefore(ctx context.Context, conn connect.Client, ts primitive.Timestamp) ([]OplogChunk, error) {
496-
f := bson.D{{"end_ts", bson.M{"$lt": ts}}}
497-
o := options.Find().SetSort(bson.D{{"start_ts", 1}})
498-
cur, err := conn.PITRChunksCollection().Find(ctx, f, o)
499-
if err != nil {
500-
return nil, errors.Wrap(err, "query")
501-
}
502-
503-
rv := []OplogChunk{}
504-
err = cur.All(ctx, &rv)
505-
return rv, errors.Wrap(err, "cursor: all")
506-
}

sdk/util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/percona/percona-backup-mongodb/pbm/defs"
1212
"github.com/percona/percona-backup-mongodb/pbm/errors"
1313
"github.com/percona/percona-backup-mongodb/pbm/log"
14-
"github.com/percona/percona-backup-mongodb/pbm/oplog"
1514
"github.com/percona/percona-backup-mongodb/pbm/topo"
1615
)
1716

@@ -93,5 +92,6 @@ func ListDeleteChunksBefore(
9392
sc Client,
9493
ts primitive.Timestamp,
9594
) ([]OplogChunk, error) {
96-
return oplog.ListDeleteChunksBefore(ctx, sc.(*clientImpl).conn, ts)
95+
r, err := backup.MakeCleanupInfo(ctx, sc.(*clientImpl).conn, ts)
96+
return r.Chunks, err
9797
}

0 commit comments

Comments
 (0)