etcdserver: collapse dir configuration to DataDir
parent
af6b29f291
commit
e5f5fcff48
|
@ -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()
|
||||||
|
|
9
main.go
9
main.go
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue