tools: etcd-dump-logs tool support dump from a given snapshot file

This commit is contained in:
Xiang Li 2015-02-11 10:50:04 -08:00
parent 71bed48916
commit 161b1d2e2e

View File

@ -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