Blame SOURCES/bz1350875-disaster-recovery-with-copies.patch

62780e
From 7ad700a716c2122c3b6db6677a6f717919b88926 Mon Sep 17 00:00:00 2001
62780e
From: Jan Chaloupka <jchaloup@redhat.com>
62780e
Date: Tue, 2 May 2017 09:56:02 +0200
62780e
Subject: [PATCH] bz1350875-disaster-recovery-with-copies:
62780e
62780e
---
62780e
 etcdctl/ctlv2/command/backup_command.go | 19 +++++++++++++++++--
62780e
 1 file changed, 17 insertions(+), 2 deletions(-)
62780e
62780e
diff --git a/etcdctl/ctlv2/command/backup_command.go b/etcdctl/ctlv2/command/backup_command.go
62780e
index feda4b1..e77791f 100644
62780e
--- a/etcdctl/ctlv2/command/backup_command.go
62780e
+++ b/etcdctl/ctlv2/command/backup_command.go
62780e
@@ -18,6 +18,7 @@ import (
62780e
 	"fmt"
62780e
 	"log"
62780e
 	"path/filepath"
62780e
+	"strconv"
62780e
 	"time"
62780e
 
62780e
 	"github.com/coreos/etcd/etcdserver/etcdserverpb"
62780e
@@ -40,6 +41,9 @@ func NewBackupCommand() cli.Command {
62780e
 			cli.StringFlag{Name: "wal-dir", Value: "", Usage: "Path to the etcd wal dir"},
62780e
 			cli.StringFlag{Name: "backup-dir", Value: "", Usage: "Path to the backup dir"},
62780e
 			cli.StringFlag{Name: "backup-wal-dir", Value: "", Usage: "Path to the backup wal dir"},
62780e
+			cli.BoolFlag{Name: "keep-cluster-id", Usage: "Do not rewrite the cluster id"},
62780e
+			cli.StringFlag{Name: "node-id", Value: "", Usage: "Use custom node id instead of a random value"},
62780e
+
62780e
 		},
62780e
 		Action: handleBackup,
62780e
 	}
62780e
@@ -99,8 +103,19 @@ func handleBackup(c *cli.Context) error {
62780e
 	var metadata etcdserverpb.Metadata
62780e
 	pbutil.MustUnmarshal(&metadata, wmetadata)
62780e
 	idgen := idutil.NewGenerator(0, time.Now())
62780e
-	metadata.NodeID = idgen.Next()
62780e
-	metadata.ClusterID = idgen.Next()
62780e
+	explicitNodeId := c.String("node-id")
62780e
+	if explicitNodeId != "" {
62780e
+		metadata.NodeID, err = strconv.ParseUint(explicitNodeId, 16, 64)
62780e
+		if err != nil {
62780e
+			log.Fatal(err)
62780e
+		}
62780e
+	} else {
62780e
+		metadata.NodeID = idgen.Next()
62780e
+	}
62780e
+	keepClusterId := c.Bool("keep-cluster-id")
62780e
+	if !keepClusterId {
62780e
+		metadata.ClusterID = idgen.Next()
62780e
+	}
62780e
 
62780e
 	neww, err := wal.Create(destWAL, pbutil.MustMarshal(&metadata))
62780e
 	if err != nil {
62780e
-- 
62780e
2.7.4
62780e