Merge pull request #3526 from yichengq/snapshot
etcdserver: forbid to unset v3 demo once usedrelease-2.3
commit
51f1ee055e
|
@ -16,6 +16,7 @@ package etcdserver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"expvar"
|
"expvar"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
@ -180,6 +181,11 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) {
|
||||||
var id types.ID
|
var id types.ID
|
||||||
var cl *cluster
|
var cl *cluster
|
||||||
|
|
||||||
|
demoFile := path.Join(cfg.MemberDir(), "v3demo")
|
||||||
|
if !cfg.V3demo && fileutil.Exist(demoFile) {
|
||||||
|
return nil, errors.New("experimental-v3demo cannot be disabled once it is enabled")
|
||||||
|
}
|
||||||
|
|
||||||
// Run the migrations.
|
// Run the migrations.
|
||||||
dataVer, err := version.DetectDataDir(cfg.DataDir)
|
dataVer, err := version.DetectDataDir(cfg.DataDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -324,10 +330,7 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if cfg.V3demo {
|
if cfg.V3demo {
|
||||||
srv.kv = dstorage.New(path.Join(cfg.DataDir, "member", "v3demo"))
|
srv.kv = dstorage.New(demoFile)
|
||||||
} else {
|
|
||||||
// we do not care about the error of the removal
|
|
||||||
os.RemoveAll(path.Join(cfg.DataDir, "member", "v3demo"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: move transport initialization near the definition of remote
|
// TODO: move transport initialization near the definition of remote
|
||||||
|
|
|
@ -55,3 +55,8 @@ func ReadDir(dirpath string) ([]string, error) {
|
||||||
sort.Strings(names)
|
sort.Strings(names)
|
||||||
return names, nil
|
return names, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Exist(name string) bool {
|
||||||
|
_, err := os.Stat(name)
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
|
@ -65,3 +65,20 @@ func TestReadDir(t *testing.T) {
|
||||||
t.Fatalf("ReadDir: got %v, want %v", fs, wfs)
|
t.Fatalf("ReadDir: got %v, want %v", fs, wfs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestExist(t *testing.T) {
|
||||||
|
f, err := ioutil.TempFile(os.TempDir(), "fileutil")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f.Close()
|
||||||
|
|
||||||
|
if g := Exist(f.Name()); g != true {
|
||||||
|
t.Errorf("exist = %v, want true", g)
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Remove(f.Name())
|
||||||
|
if g := Exist(f.Name()); g != false {
|
||||||
|
t.Errorf("exist = %v, want false", g)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue