etcdserver: collapse dir configuration to DataDir

release-2.0
Jonathan Boulle 2014-10-03 10:38:35 -07:00
parent af6b29f291
commit e5f5fcff48
2 changed files with 17 additions and 15 deletions

View File

@ -6,6 +6,8 @@ import (
"log" "log"
"math/rand" "math/rand"
"net/http" "net/http"
"os"
"path"
"sync/atomic" "sync/atomic"
"time" "time"
@ -21,9 +23,12 @@ import (
) )
const ( const (
// owner can make/remove files inside the directory
privateDirMode = 0700
defaultSyncTimeout = time.Second defaultSyncTimeout = time.Second
DefaultSnapCount = 10000 DefaultSnapCount = 10000
// TODO: calculated based on heartbeat interval // TODO: calculate based on heartbeat interval
defaultPublishRetryInterval = 5 * time.Second defaultPublishRetryInterval = 5 * time.Second
) )
@ -82,9 +87,8 @@ type RaftTimer interface {
type ServerConfig struct { type ServerConfig struct {
Name string Name string
ClientURLs types.URLs ClientURLs types.URLs
SnapDir string DataDir string
SnapCount int64 SnapCount int64
WalDir string
Cluster *Cluster Cluster *Cluster
Transport *http.Transport Transport *http.Transport
} }
@ -97,13 +101,18 @@ func NewServer(cfg *ServerConfig) *EtcdServer {
// Should never happen // Should never happen
log.Fatalf("could not find name %v in cluster!", cfg.Name) 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() st := store.New()
ss := snap.New(cfg.SnapDir)
var w *wal.WAL var w *wal.WAL
var n raft.Node var n raft.Node
var err error var err error
if !wal.Exist(cfg.WalDir) { waldir := path.Join(cfg.DataDir, "wal")
if w, err = wal.Create(cfg.WalDir); err != nil { if !wal.Exist(waldir) {
if w, err = wal.Create(waldir); err != nil {
log.Fatal(err) log.Fatal(err)
} }
n = raft.StartNode(m.ID, cfg.Cluster.IDs(), 10, 1) 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 // 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) log.Fatal(err)
} }
wid, st, ents, err := w.ReadAll() wid, st, ents, err := w.ReadAll()

View File

@ -6,7 +6,6 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"path"
"strings" "strings"
"time" "time"
@ -129,11 +128,6 @@ func startEtcd() {
if err := os.MkdirAll(*dir, privateDirMode); err != nil { if err := os.MkdirAll(*dir, privateDirMode); err != nil {
log.Fatalf("main: cannot create data directory: %v", err) 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) pt, err := transport.NewTransport(peerTLSInfo)
if err != nil { if err != nil {
@ -147,9 +141,8 @@ func startEtcd() {
cfg := &etcdserver.ServerConfig{ cfg := &etcdserver.ServerConfig{
Name: *name, Name: *name,
ClientURLs: acurls, ClientURLs: acurls,
SnapDir: snapdir, DataDir: *dir,
SnapCount: int64(*snapCount), SnapCount: int64(*snapCount),
WalDir: waldir,
Cluster: cluster, Cluster: cluster,
Transport: pt, Transport: pt,
} }