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
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
|
@ -379,9 +378,6 @@ func (c *Config) NameFromHostname() {
|
|||
|
||||
// Reset removes all server configuration files.
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
|
@ -395,46 +391,6 @@ func (c *Config) Reset() error {
|
|||
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.
|
||||
func (c *Config) Sanitize() error {
|
||||
tlsConfig, err := c.TLSConfig()
|
||||
|
|
33
etcd.go
33
etcd.go
|
@ -21,6 +21,7 @@ import (
|
|||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"time"
|
||||
|
||||
|
@ -72,18 +73,18 @@ func main() {
|
|||
log.Fatalf("Unable to create path: %s", err)
|
||||
}
|
||||
|
||||
// Load info object.
|
||||
info, err := config.Info()
|
||||
if err != nil {
|
||||
log.Fatal("info:", err)
|
||||
// Warn people if they have an info file
|
||||
info := filepath.Join(config.DataDir, "info")
|
||||
if _, err := os.Stat(info); err == nil {
|
||||
log.Warnf("All cached configuration is now ignored. The file %s can be removed.", info)
|
||||
}
|
||||
|
||||
// Retrieve TLS configuration.
|
||||
tlsConfig, err := info.EtcdTLS.Config()
|
||||
tlsConfig, err := config.TLSInfo().Config()
|
||||
if err != nil {
|
||||
log.Fatal("Client TLS:", err)
|
||||
}
|
||||
peerTLSConfig, err := info.RaftTLS.Config()
|
||||
peerTLSConfig, err := config.PeerTLSInfo().Config()
|
||||
if err != nil {
|
||||
log.Fatal("Peer TLS:", err)
|
||||
}
|
||||
|
@ -114,8 +115,8 @@ func main() {
|
|||
registry := server.NewRegistry(store)
|
||||
|
||||
// Create stats objects
|
||||
followersStats := server.NewRaftFollowersStats(info.Name)
|
||||
serverStats := server.NewRaftServerStats(info.Name)
|
||||
followersStats := server.NewRaftFollowersStats(config.Name)
|
||||
serverStats := server.NewRaftServerStats(config.Name)
|
||||
|
||||
// Calculate all of our timeouts
|
||||
heartbeatTimeout := time.Duration(config.Peer.HeartbeatTimeout) * time.Millisecond
|
||||
|
@ -125,9 +126,9 @@ func main() {
|
|||
|
||||
// Create peer server.
|
||||
psConfig := server.PeerServerConfig{
|
||||
Name: info.Name,
|
||||
Name: config.Name,
|
||||
Scheme: peerTLSConfig.Scheme,
|
||||
URL: info.RaftURL,
|
||||
URL: config.Peer.Addr,
|
||||
SnapshotCount: config.SnapshotCount,
|
||||
MaxClusterSize: config.MaxClusterSize,
|
||||
RetryTimes: config.MaxRetryAttempts,
|
||||
|
@ -136,9 +137,9 @@ func main() {
|
|||
|
||||
var psListener net.Listener
|
||||
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 {
|
||||
psListener, err = server.NewListener(info.RaftListenHost)
|
||||
psListener, err = server.NewListener(config.Peer.BindAddr)
|
||||
}
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -149,7 +150,7 @@ func main() {
|
|||
if psConfig.Scheme == "https" {
|
||||
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 {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
@ -158,7 +159,7 @@ func main() {
|
|||
ps.SetRaftServer(raftServer)
|
||||
|
||||
// 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() {
|
||||
s.EnableTracing()
|
||||
|
@ -166,9 +167,9 @@ func main() {
|
|||
|
||||
var sListener net.Listener
|
||||
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 {
|
||||
sListener, err = server.NewListener(info.EtcdListenHost)
|
||||
sListener, err = server.NewListener(config.BindAddr)
|
||||
}
|
||||
if err != nil {
|
||||
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