Browse Source

Merge pull request #1781 from orls/fix-backup-snapshots

Fix backup snapshots
Xiang Li 11 years ago
parent
commit
aa2721e31d
1 changed files with 7 additions and 1 deletions
  1. 7 1
      etcdctl/command/backup_command.go

+ 7 - 1
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 {
@@ -58,7 +62,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)