Skip to content

Commit efff689

Browse files
authored
Merge pull request #19173 from ahrtr/migrate_20250111
Move getLatestWALSnap into etcdutl/common.go
2 parents 9db8dcb + 8374966 commit efff689

File tree

2 files changed

+36
-23
lines changed

2 files changed

+36
-23
lines changed

etcdutl/etcdutl/common.go

+36
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@
1515
package etcdutl
1616

1717
import (
18+
"errors"
19+
1820
"go.uber.org/zap"
1921
"go.uber.org/zap/zapcore"
2022

2123
"go.etcd.io/etcd/client/pkg/v3/logutil"
2224
"go.etcd.io/etcd/pkg/v3/cobrautl"
25+
"go.etcd.io/etcd/server/v3/etcdserver/api/snap"
26+
"go.etcd.io/etcd/server/v3/storage/datadir"
27+
"go.etcd.io/etcd/server/v3/storage/wal"
28+
"go.etcd.io/etcd/server/v3/storage/wal/walpb"
29+
"go.etcd.io/raft/v3/raftpb"
2330
)
2431

2532
func GetLogger() *zap.Logger {
@@ -32,3 +39,32 @@ func GetLogger() *zap.Logger {
3239
}
3340
return lg
3441
}
42+
43+
func getLatestWALSnap(lg *zap.Logger, dataDir string) (walpb.Snapshot, error) {
44+
snapshot, err := getLatestV2Snapshot(lg, dataDir)
45+
if err != nil {
46+
return walpb.Snapshot{}, err
47+
}
48+
49+
var walsnap walpb.Snapshot
50+
if snapshot != nil {
51+
walsnap.Index, walsnap.Term = snapshot.Metadata.Index, snapshot.Metadata.Term
52+
}
53+
return walsnap, nil
54+
}
55+
56+
func getLatestV2Snapshot(lg *zap.Logger, dataDir string) (*raftpb.Snapshot, error) {
57+
walPath := datadir.ToWALDir(dataDir)
58+
walSnaps, err := wal.ValidSnapshotEntries(lg, walPath)
59+
if err != nil {
60+
return nil, err
61+
}
62+
63+
ss := snap.New(lg, datadir.ToSnapDir(dataDir))
64+
snapshot, err := ss.LoadNewestAvailable(walSnaps)
65+
if err != nil && !errors.Is(err, snap.ErrNoSnapshot) {
66+
return nil, err
67+
}
68+
69+
return snapshot, nil
70+
}

etcdutl/etcdutl/migrate_command.go

-23
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package etcdutl
1616

1717
import (
18-
"errors"
1918
"fmt"
2019
"strings"
2120

@@ -25,12 +24,10 @@ import (
2524

2625
"go.etcd.io/etcd/api/v3/version"
2726
"go.etcd.io/etcd/pkg/v3/cobrautl"
28-
"go.etcd.io/etcd/server/v3/etcdserver/api/snap"
2927
"go.etcd.io/etcd/server/v3/storage/backend"
3028
"go.etcd.io/etcd/server/v3/storage/datadir"
3129
"go.etcd.io/etcd/server/v3/storage/schema"
3230
"go.etcd.io/etcd/server/v3/storage/wal"
33-
"go.etcd.io/etcd/server/v3/storage/wal/walpb"
3431
)
3532

3633
// NewMigrateCommand prints out the version of etcd.
@@ -114,26 +111,6 @@ func (o *migrateOptions) Config() (*migrateConfig, error) {
114111
return c, nil
115112
}
116113

117-
func getLatestWALSnap(lg *zap.Logger, dataDir string) (walpb.Snapshot, error) {
118-
walPath := datadir.ToWALDir(dataDir)
119-
walSnaps, err := wal.ValidSnapshotEntries(lg, walPath)
120-
if err != nil {
121-
return walpb.Snapshot{}, err
122-
}
123-
124-
ss := snap.New(lg, datadir.ToSnapDir(dataDir))
125-
snapshot, err := ss.LoadNewestAvailable(walSnaps)
126-
if err != nil && !errors.Is(err, snap.ErrNoSnapshot) {
127-
return walpb.Snapshot{}, err
128-
}
129-
130-
var walsnap walpb.Snapshot
131-
if snapshot != nil {
132-
walsnap.Index, walsnap.Term = snapshot.Metadata.Index, snapshot.Metadata.Term
133-
}
134-
return walsnap, nil
135-
}
136-
137114
type migrateConfig struct {
138115
lg *zap.Logger
139116
be backend.Backend

0 commit comments

Comments
 (0)