diff --git a/tools/etcd-dump-logs/main.go b/tools/etcd-dump-logs/main.go index 4fe4a9ebb..05583e289 100644 --- a/tools/etcd-dump-logs/main.go +++ b/tools/etcd-dump-logs/main.go @@ -32,13 +32,24 @@ import ( func main() { from := flag.String("data-dir", "", "") + snapfile := flag.String("snap-file", "", "The base name of snapshot file to read") flag.Parse() if *from == "" { log.Fatal("Must provide -data-dir flag") } - ss := snap.New(snapDir(*from)) - snapshot, err := ss.Load() + var ( + snapshot *raftpb.Snapshot + err error + ) + + if *snapfile == "" { + ss := snap.New(snapDir(*from)) + snapshot, err = ss.Load() + } else { + snapshot, err = snap.Read(path.Join(snapDir(*from), *snapfile)) + } + var walsnap walpb.Snapshot switch err { case nil: @@ -102,9 +113,9 @@ func main() { } } -func walDir(dataDir string) string { return path.Join(dataDir, "wal") } +func walDir(dataDir string) string { return path.Join(dataDir, "member", "wal") } -func snapDir(dataDir string) string { return path.Join(dataDir, "snap") } +func snapDir(dataDir string) string { return path.Join(dataDir, "member", "snap") } func parseWALMetadata(b []byte) (id, cid types.ID) { var metadata etcdserverpb.Metadata