mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver: Create MemberDir() and base {Snap,WAL}Dir() thereon. Audit DataDir.
This commit is contained in:
parent
fade9b6065
commit
cd50f0e058
@ -83,9 +83,11 @@ func (c *ServerConfig) VerifyBootstrapConfig() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ServerConfig) WALDir() string { return path.Join(c.DataDir, "wal") }
|
func (c *ServerConfig) MemberDir() string { return path.Join(c.DataDir, "member") }
|
||||||
|
|
||||||
func (c *ServerConfig) SnapDir() string { return path.Join(c.DataDir, "snap") }
|
func (c *ServerConfig) WALDir() string { return path.Join(c.MemberDir(), "wal") }
|
||||||
|
|
||||||
|
func (c *ServerConfig) SnapDir() string { return path.Join(c.MemberDir(), "snap") }
|
||||||
|
|
||||||
func (c *ServerConfig) ShouldDiscover() bool { return c.DiscoveryURL != "" }
|
func (c *ServerConfig) ShouldDiscover() bool { return c.DiscoveryURL != "" }
|
||||||
|
|
||||||
@ -99,6 +101,7 @@ func (c *ServerConfig) print(initial bool) {
|
|||||||
log.Println("etcdserver: force new cluster")
|
log.Println("etcdserver: force new cluster")
|
||||||
}
|
}
|
||||||
log.Printf("etcdserver: data dir = %s", c.DataDir)
|
log.Printf("etcdserver: data dir = %s", c.DataDir)
|
||||||
|
log.Printf("etcdserver: member dir = %s", c.MemberDir())
|
||||||
log.Printf("etcdserver: heartbeat = %dms", c.TickMs)
|
log.Printf("etcdserver: heartbeat = %dms", c.TickMs)
|
||||||
log.Printf("etcdserver: election = %dms", c.ElectionTicks*int(c.TickMs))
|
log.Printf("etcdserver: election = %dms", c.ElectionTicks*int(c.TickMs))
|
||||||
log.Printf("etcdserver: snapshot count = %d", c.SnapCount)
|
log.Printf("etcdserver: snapshot count = %d", c.SnapCount)
|
||||||
|
@ -129,8 +129,8 @@ func TestBootstrapConfigVerify(t *testing.T) {
|
|||||||
|
|
||||||
func TestSnapDir(t *testing.T) {
|
func TestSnapDir(t *testing.T) {
|
||||||
tests := map[string]string{
|
tests := map[string]string{
|
||||||
"/": "/snap",
|
"/": "/member/snap",
|
||||||
"/var/lib/etc": "/var/lib/etc/snap",
|
"/var/lib/etc": "/var/lib/etc/member/snap",
|
||||||
}
|
}
|
||||||
for dd, w := range tests {
|
for dd, w := range tests {
|
||||||
cfg := ServerConfig{
|
cfg := ServerConfig{
|
||||||
@ -144,8 +144,8 @@ func TestSnapDir(t *testing.T) {
|
|||||||
|
|
||||||
func TestWALDir(t *testing.T) {
|
func TestWALDir(t *testing.T) {
|
||||||
tests := map[string]string{
|
tests := map[string]string{
|
||||||
"/": "/wal",
|
"/": "/member/wal",
|
||||||
"/var/lib/etc": "/var/lib/etc/wal",
|
"/var/lib/etc": "/var/lib/etc/member/wal",
|
||||||
}
|
}
|
||||||
for dd, w := range tests {
|
for dd, w := range tests {
|
||||||
cfg := ServerConfig{
|
cfg := ServerConfig{
|
||||||
|
@ -145,16 +145,13 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) {
|
|||||||
var s *raft.MemoryStorage
|
var s *raft.MemoryStorage
|
||||||
var id types.ID
|
var id types.ID
|
||||||
var ss *snap.Snapshotter
|
var ss *snap.Snapshotter
|
||||||
baseDataDir := cfg.DataDir
|
|
||||||
// Data dir lives under member now.
|
|
||||||
cfg.DataDir = path.Join(cfg.DataDir, "member")
|
|
||||||
|
|
||||||
walVersion, err := wal.DetectVersion(baseDataDir)
|
walVersion, err := wal.DetectVersion(cfg.DataDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if walVersion == wal.WALUnknown {
|
if walVersion == wal.WALUnknown {
|
||||||
return nil, fmt.Errorf("unknown wal version in data dir %s", baseDataDir)
|
return nil, fmt.Errorf("unknown wal version in data dir %s", cfg.DataDir)
|
||||||
}
|
}
|
||||||
haveWAL := walVersion != wal.WALNotExist
|
haveWAL := walVersion != wal.WALNotExist
|
||||||
|
|
||||||
@ -194,7 +191,7 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) {
|
|||||||
id, n, s, w = startNode(cfg, cfg.Cluster.MemberIDs())
|
id, n, s, w = startNode(cfg, cfg.Cluster.MemberIDs())
|
||||||
case haveWAL:
|
case haveWAL:
|
||||||
// Run the migrations.
|
// Run the migrations.
|
||||||
if err := upgradeWAL(baseDataDir, cfg.Name, walVersion); err != nil {
|
if err := upgradeWAL(cfg.DataDir, cfg.Name, walVersion); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,6 +199,10 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) {
|
|||||||
return nil, fmt.Errorf("cannot write to data directory: %v", err)
|
return nil, fmt.Errorf("cannot write to data directory: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := fileutil.IsDirWriteable(cfg.MemberDir()); err != nil {
|
||||||
|
return nil, fmt.Errorf("cannot write to member directory: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
if cfg.ShouldDiscover() {
|
if cfg.ShouldDiscover() {
|
||||||
log.Printf("etcdserver: discovery token ignored since a cluster has already been initialized. Valid log found at %q", cfg.WALDir())
|
log.Printf("etcdserver: discovery token ignored since a cluster has already been initialized. Valid log found at %q", cfg.WALDir())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user