From e5f5fcff48916643b783b7d267aff30640d26e23 Mon Sep 17 00:00:00 2001 From: Jonathan Boulle Date: Fri, 3 Oct 2014 10:38:35 -0700 Subject: [PATCH] etcdserver: collapse dir configuration to DataDir --- etcdserver/server.go | 23 ++++++++++++++++------- main.go | 9 +-------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/etcdserver/server.go b/etcdserver/server.go index 953bd6f76..5bd2d4297 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -6,6 +6,8 @@ import ( "log" "math/rand" "net/http" + "os" + "path" "sync/atomic" "time" @@ -21,9 +23,12 @@ import ( ) const ( + // owner can make/remove files inside the directory + privateDirMode = 0700 + defaultSyncTimeout = time.Second DefaultSnapCount = 10000 - // TODO: calculated based on heartbeat interval + // TODO: calculate based on heartbeat interval defaultPublishRetryInterval = 5 * time.Second ) @@ -82,9 +87,8 @@ type RaftTimer interface { type ServerConfig struct { Name string ClientURLs types.URLs - SnapDir string + DataDir string SnapCount int64 - WalDir string Cluster *Cluster Transport *http.Transport } @@ -97,13 +101,18 @@ func NewServer(cfg *ServerConfig) *EtcdServer { // Should never happen log.Fatalf("could not find name %v in cluster!", cfg.Name) } + snapdir := path.Join(cfg.DataDir, "snap") + if err := os.MkdirAll(snapdir, privateDirMode); err != nil { + log.Fatalf("etcdserver: cannot create snapshot directory: %v", err) + } + ss := snap.New(snapdir) st := store.New() - ss := snap.New(cfg.SnapDir) var w *wal.WAL var n raft.Node var err error - if !wal.Exist(cfg.WalDir) { - if w, err = wal.Create(cfg.WalDir); err != nil { + waldir := path.Join(cfg.DataDir, "wal") + if !wal.Exist(waldir) { + if w, err = wal.Create(waldir); err != nil { log.Fatal(err) } n = raft.StartNode(m.ID, cfg.Cluster.IDs(), 10, 1) @@ -120,7 +129,7 @@ func NewServer(cfg *ServerConfig) *EtcdServer { } // restart a node from previous wal - if w, err = wal.OpenAtIndex(cfg.WalDir, index); err != nil { + if w, err = wal.OpenAtIndex(waldir, index); err != nil { log.Fatal(err) } wid, st, ents, err := w.ReadAll() diff --git a/main.go b/main.go index ef46547c5..645031277 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,6 @@ import ( "log" "net/http" "os" - "path" "strings" "time" @@ -129,11 +128,6 @@ func startEtcd() { if err := os.MkdirAll(*dir, privateDirMode); err != nil { log.Fatalf("main: cannot create data directory: %v", err) } - snapdir := path.Join(*dir, "snap") - if err := os.MkdirAll(snapdir, privateDirMode); err != nil { - log.Fatalf("main: cannot create snapshot directory: %v", err) - } - waldir := path.Join(*dir, "wal") pt, err := transport.NewTransport(peerTLSInfo) if err != nil { @@ -147,9 +141,8 @@ func startEtcd() { cfg := &etcdserver.ServerConfig{ Name: *name, ClientURLs: acurls, - SnapDir: snapdir, + DataDir: *dir, SnapCount: int64(*snapCount), - WalDir: waldir, Cluster: cluster, Transport: pt, }