From 9974bf029183b68a3c2d439da799ec82ec4c21d6 Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Tue, 25 Nov 2014 13:57:47 +0000 Subject: [PATCH 1/2] backup: Add fatal if dest snapshot failed Errors are currently silently swallowed --- etcdctl/command/backup_command.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etcdctl/command/backup_command.go b/etcdctl/command/backup_command.go index 4245d957c..5256cb1b0 100644 --- a/etcdctl/command/backup_command.go +++ b/etcdctl/command/backup_command.go @@ -58,7 +58,9 @@ func handleBackup(c *cli.Context) { if snapshot != nil { index = snapshot.Index newss := snap.New(destSnap) - newss.SaveSnap(*snapshot) + if err := newss.SaveSnap(*snapshot); err != nil { + log.Fatal(err) + } } w, err := wal.OpenAtIndex(srcWAL, index) From dbb6a75e3f334eb220d1683c0ef3abfed7c06726 Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Tue, 25 Nov 2014 13:58:06 +0000 Subject: [PATCH 2/2] backup: Ensure dest snapshot dir always exists Otherwise the SaveSnap operation fails --- etcdctl/command/backup_command.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etcdctl/command/backup_command.go b/etcdctl/command/backup_command.go index 5256cb1b0..e0a926a7b 100644 --- a/etcdctl/command/backup_command.go +++ b/etcdctl/command/backup_command.go @@ -19,6 +19,7 @@ package command import ( "log" "math/rand" + "os" "path" "time" @@ -49,6 +50,9 @@ func handleBackup(c *cli.Context) { srcWAL := path.Join(c.String("data-dir"), "wal") destWAL := path.Join(c.String("backup-dir"), "wal") + if err := os.MkdirAll(destSnap, 0700); err != nil { + log.Fatalf("failed creating backup snapshot dir %v: %v", destSnap, err) + } ss := snap.New(srcSnap) snapshot, err := ss.Load() if err != nil && err != snap.ErrNoSnapshot {