From 05c74bd890f80f7eef78504ff73ebcd8207a3e21 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Mon, 14 Sep 2015 22:15:23 -0700 Subject: [PATCH 1/2] etcdserver: rename db file into a formal directory and rename it to a formal name --- etcdserver/config.go | 2 ++ etcdserver/server.go | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/etcdserver/config.go b/etcdserver/config.go index decb5c1d0..982dc72b2 100644 --- a/etcdserver/config.go +++ b/etcdserver/config.go @@ -119,6 +119,8 @@ func (c *ServerConfig) WALDir() string { func (c *ServerConfig) SnapDir() string { return path.Join(c.MemberDir(), "snap") } +func (c *ServerConfig) StorageDir() string { return path.Join(c.MemberDir(), "storage") } + func (c *ServerConfig) ShouldDiscover() bool { return c.DiscoveryURL != "" } // ReqTimeout returns timeout for request to finish. diff --git a/etcdserver/server.go b/etcdserver/server.go index 98b5f0d1b..4ba52ba27 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -62,6 +62,8 @@ const ( purgeFileInterval = 30 * time.Second monitorVersionInterval = 5 * time.Second + + databaseFilename = "db" ) var ( @@ -181,8 +183,7 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { var id types.ID var cl *cluster - demoFile := path.Join(cfg.MemberDir(), "v3demo") - if !cfg.V3demo && fileutil.Exist(demoFile) { + if !cfg.V3demo && fileutil.Exist(path.Join(cfg.StorageDir(), databaseFilename)) { return nil, errors.New("experimental-v3demo cannot be disabled once it is enabled") } @@ -330,7 +331,11 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { } if cfg.V3demo { - srv.kv = dstorage.New(demoFile) + err = os.MkdirAll(cfg.StorageDir(), privateDirMode) + if err != nil && err != os.ErrExist { + return nil, err + } + srv.kv = dstorage.New(path.Join(cfg.StorageDir(), databaseFilename)) } // TODO: move transport initialization near the definition of remote From 352cd768c60cdd31bc6e777a8bd2f9e7558d24c4 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Mon, 14 Sep 2015 23:25:16 -0700 Subject: [PATCH 2/2] etcdserver: fix shadow declaration --- etcdserver/server.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/etcdserver/server.go b/etcdserver/server.go index 4ba52ba27..93226fadb 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -243,7 +243,9 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { return nil, fmt.Errorf("member %s has already been bootstrapped", m.ID) } if cfg.ShouldDiscover() { - str, err := discovery.JoinCluster(cfg.DiscoveryURL, cfg.DiscoveryProxy, m.ID, cfg.InitialPeerURLsMap.String()) + var str string + var err error + str, err = discovery.JoinCluster(cfg.DiscoveryURL, cfg.DiscoveryProxy, m.ID, cfg.InitialPeerURLsMap.String()) if err != nil { return nil, err } @@ -277,7 +279,9 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { if cfg.ShouldDiscover() { plog.Warningf("discovery token ignored since a cluster has already been initialized. Valid log found at %q", cfg.WALDir()) } - snapshot, err := ss.Load() + var snapshot *raftpb.Snapshot + var err error + snapshot, err = ss.Load() if err != nil && err != snap.ErrNoSnapshot { return nil, err }