Merge pull request #532 from philips/remove-info-file
feat(config): remove the info filerelease-0.4
commit
1c6a41dda4
|
@ -1,7 +1,6 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -379,9 +378,6 @@ func (c *Config) NameFromHostname() {
|
||||||
|
|
||||||
// Reset removes all server configuration files.
|
// Reset removes all server configuration files.
|
||||||
func (c *Config) Reset() error {
|
func (c *Config) Reset() error {
|
||||||
if err := os.RemoveAll(filepath.Join(c.DataDir, "info")); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := os.RemoveAll(filepath.Join(c.DataDir, "log")); err != nil {
|
if err := os.RemoveAll(filepath.Join(c.DataDir, "log")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -395,46 +391,6 @@ func (c *Config) Reset() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reads the info file from the file system or initializes it based on the config.
|
|
||||||
func (c *Config) Info() (*server.Info, error) {
|
|
||||||
info := &server.Info{}
|
|
||||||
path := filepath.Join(c.DataDir, "info")
|
|
||||||
|
|
||||||
// Open info file and read it out.
|
|
||||||
f, err := os.Open(path)
|
|
||||||
if err != nil && !os.IsNotExist(err) {
|
|
||||||
return nil, err
|
|
||||||
} else if f != nil {
|
|
||||||
defer f.Close()
|
|
||||||
if err := json.NewDecoder(f).Decode(&info); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return info, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the file doesn't exist then initialize it.
|
|
||||||
info.Name = strings.TrimSpace(c.Name)
|
|
||||||
info.EtcdURL = c.Addr
|
|
||||||
info.EtcdListenHost = c.BindAddr
|
|
||||||
info.RaftURL = c.Peer.Addr
|
|
||||||
info.RaftListenHost = c.Peer.BindAddr
|
|
||||||
info.EtcdTLS = c.TLSInfo()
|
|
||||||
info.RaftTLS = c.PeerTLSInfo()
|
|
||||||
|
|
||||||
// Write to file.
|
|
||||||
f, err = os.Create(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
if err := json.NewEncoder(f).Encode(info); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return info, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sanitize cleans the input fields.
|
// Sanitize cleans the input fields.
|
||||||
func (c *Config) Sanitize() error {
|
func (c *Config) Sanitize() error {
|
||||||
tlsConfig, err := c.TLSConfig()
|
tlsConfig, err := c.TLSConfig()
|
||||||
|
|
33
etcd.go
33
etcd.go
|
@ -21,6 +21,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -72,18 +73,18 @@ func main() {
|
||||||
log.Fatalf("Unable to create path: %s", err)
|
log.Fatalf("Unable to create path: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load info object.
|
// Warn people if they have an info file
|
||||||
info, err := config.Info()
|
info := filepath.Join(config.DataDir, "info")
|
||||||
if err != nil {
|
if _, err := os.Stat(info); err == nil {
|
||||||
log.Fatal("info:", err)
|
log.Warnf("All cached configuration is now ignored. The file %s can be removed.", info)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve TLS configuration.
|
// Retrieve TLS configuration.
|
||||||
tlsConfig, err := info.EtcdTLS.Config()
|
tlsConfig, err := config.TLSInfo().Config()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Client TLS:", err)
|
log.Fatal("Client TLS:", err)
|
||||||
}
|
}
|
||||||
peerTLSConfig, err := info.RaftTLS.Config()
|
peerTLSConfig, err := config.PeerTLSInfo().Config()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Peer TLS:", err)
|
log.Fatal("Peer TLS:", err)
|
||||||
}
|
}
|
||||||
|
@ -114,8 +115,8 @@ func main() {
|
||||||
registry := server.NewRegistry(store)
|
registry := server.NewRegistry(store)
|
||||||
|
|
||||||
// Create stats objects
|
// Create stats objects
|
||||||
followersStats := server.NewRaftFollowersStats(info.Name)
|
followersStats := server.NewRaftFollowersStats(config.Name)
|
||||||
serverStats := server.NewRaftServerStats(info.Name)
|
serverStats := server.NewRaftServerStats(config.Name)
|
||||||
|
|
||||||
// Calculate all of our timeouts
|
// Calculate all of our timeouts
|
||||||
heartbeatTimeout := time.Duration(config.Peer.HeartbeatTimeout) * time.Millisecond
|
heartbeatTimeout := time.Duration(config.Peer.HeartbeatTimeout) * time.Millisecond
|
||||||
|
@ -125,9 +126,9 @@ func main() {
|
||||||
|
|
||||||
// Create peer server.
|
// Create peer server.
|
||||||
psConfig := server.PeerServerConfig{
|
psConfig := server.PeerServerConfig{
|
||||||
Name: info.Name,
|
Name: config.Name,
|
||||||
Scheme: peerTLSConfig.Scheme,
|
Scheme: peerTLSConfig.Scheme,
|
||||||
URL: info.RaftURL,
|
URL: config.Peer.Addr,
|
||||||
SnapshotCount: config.SnapshotCount,
|
SnapshotCount: config.SnapshotCount,
|
||||||
MaxClusterSize: config.MaxClusterSize,
|
MaxClusterSize: config.MaxClusterSize,
|
||||||
RetryTimes: config.MaxRetryAttempts,
|
RetryTimes: config.MaxRetryAttempts,
|
||||||
|
@ -136,9 +137,9 @@ func main() {
|
||||||
|
|
||||||
var psListener net.Listener
|
var psListener net.Listener
|
||||||
if psConfig.Scheme == "https" {
|
if psConfig.Scheme == "https" {
|
||||||
psListener, err = server.NewTLSListener(&tlsConfig.Server, info.RaftListenHost, info.RaftTLS.CertFile, info.RaftTLS.KeyFile)
|
psListener, err = server.NewTLSListener(&tlsConfig.Server, config.Peer.BindAddr, config.PeerTLSInfo().CertFile, config.PeerTLSInfo().KeyFile)
|
||||||
} else {
|
} else {
|
||||||
psListener, err = server.NewListener(info.RaftListenHost)
|
psListener, err = server.NewListener(config.Peer.BindAddr)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -149,7 +150,7 @@ func main() {
|
||||||
if psConfig.Scheme == "https" {
|
if psConfig.Scheme == "https" {
|
||||||
raftTransporter.SetTLSConfig(peerTLSConfig.Client)
|
raftTransporter.SetTLSConfig(peerTLSConfig.Client)
|
||||||
}
|
}
|
||||||
raftServer, err := raft.NewServer(info.Name, config.DataDir, raftTransporter, store, ps, "")
|
raftServer, err := raft.NewServer(config.Name, config.DataDir, raftTransporter, store, ps, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -158,7 +159,7 @@ func main() {
|
||||||
ps.SetRaftServer(raftServer)
|
ps.SetRaftServer(raftServer)
|
||||||
|
|
||||||
// Create client server.
|
// Create client server.
|
||||||
s := server.New(info.Name, info.EtcdURL, ps, registry, store, &mb)
|
s := server.New(config.Name, config.Addr, ps, registry, store, &mb)
|
||||||
|
|
||||||
if config.Trace() {
|
if config.Trace() {
|
||||||
s.EnableTracing()
|
s.EnableTracing()
|
||||||
|
@ -166,9 +167,9 @@ func main() {
|
||||||
|
|
||||||
var sListener net.Listener
|
var sListener net.Listener
|
||||||
if tlsConfig.Scheme == "https" {
|
if tlsConfig.Scheme == "https" {
|
||||||
sListener, err = server.NewTLSListener(&tlsConfig.Server, info.EtcdListenHost, info.EtcdTLS.CertFile, info.EtcdTLS.KeyFile)
|
sListener, err = server.NewTLSListener(&tlsConfig.Server, config.BindAddr, config.TLSInfo().CertFile, config.TLSInfo().KeyFile)
|
||||||
} else {
|
} else {
|
||||||
sListener, err = server.NewListener(info.EtcdListenHost)
|
sListener, err = server.NewListener(config.BindAddr)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
package server
|
|
||||||
|
|
||||||
// Info describes the non-mutable state of the server upon initialization.
|
|
||||||
// These fields cannot be changed without deleting the server fields and
|
|
||||||
// reinitializing.
|
|
||||||
type Info struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
|
|
||||||
RaftURL string `json:"raftURL"`
|
|
||||||
EtcdURL string `json:"etcdURL"`
|
|
||||||
|
|
||||||
RaftListenHost string `json:"raftListenHost"`
|
|
||||||
EtcdListenHost string `json:"etcdListenHost"`
|
|
||||||
|
|
||||||
RaftTLS TLSInfo `json:"raftTLS"`
|
|
||||||
EtcdTLS TLSInfo `json:"etcdTLS"`
|
|
||||||
}
|
|
Loading…
Reference in New Issue