mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge branch 'master' of https://github.com/coreos/etcd into mod-lock
This commit is contained in:
commit
03571d3cda
@ -18,7 +18,7 @@ See [etcdctl][etcdctl] for a simple command line client.
|
|||||||
Or feel free to just use curl, as in the examples below.
|
Or feel free to just use curl, as in the examples below.
|
||||||
|
|
||||||
[raft]: https://github.com/coreos/go-raft
|
[raft]: https://github.com/coreos/go-raft
|
||||||
[etcdctl]: http://coreos.com/docs/etcdctl/
|
[etcdctl]: http://github.com/coreos/etcdctl/
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
|
|
||||||
|
30
etcd.go
30
etcd.go
@ -52,24 +52,18 @@ func main() {
|
|||||||
profile(config.CPUProfileFile)
|
profile(config.CPUProfileFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load info object.
|
// Only guess the machine name if there is no data dir specified
|
||||||
info, err := config.Info()
|
// because the info file will should have our name
|
||||||
if err != nil {
|
if config.Name == "" && config.DataDir == "" {
|
||||||
log.Fatal("info:", err)
|
config.NameFromHostname()
|
||||||
}
|
}
|
||||||
if info.Name == "" {
|
|
||||||
host, err := os.Hostname()
|
if config.DataDir == "" && config.Name != "" {
|
||||||
if err != nil || host == "" {
|
config.DataDirFromName()
|
||||||
log.Fatal("Node name required and hostname not set. e.g. '-name=name'")
|
|
||||||
}
|
|
||||||
log.Warnf("Using hostname %s as the node name. You must ensure this name is unique among etcd nodes.", host)
|
|
||||||
info.Name = host
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup a default directory based on the node name
|
|
||||||
if config.DataDir == "" {
|
if config.DataDir == "" {
|
||||||
config.DataDir = info.Name + ".etcd"
|
log.Fatal("The data dir was not set and could not be guessed from machine name")
|
||||||
log.Warnf("Using the directory %s as the etcd configuration directory because a directory was not specified. ", config.DataDir)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create data directory if it doesn't already exist.
|
// Create data directory if it doesn't already exist.
|
||||||
@ -77,6 +71,12 @@ func main() {
|
|||||||
log.Fatalf("Unable to create path: %s", err)
|
log.Fatalf("Unable to create path: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load info object.
|
||||||
|
info, err := config.Info()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("info:", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Retrieve TLS configuration.
|
// Retrieve TLS configuration.
|
||||||
tlsConfig, err := info.EtcdTLS.Config()
|
tlsConfig, err := info.EtcdTLS.Config()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/coreos/etcd/log"
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -300,6 +301,25 @@ func (c *Config) LoadPeersFile() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DataDirFromName sets the data dir from a machine name and issue a warning
|
||||||
|
// that etcd is guessing.
|
||||||
|
func (c *Config) DataDirFromName() {
|
||||||
|
c.DataDir = c.Name + ".etcd"
|
||||||
|
log.Warnf("Using the directory %s as the etcd curation directory because a directory was not specified. ", c.DataDir)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// NameFromHostname sets the machine name from the hostname. This is to help
|
||||||
|
// people get started without thinking up a name.
|
||||||
|
func (c *Config) NameFromHostname() {
|
||||||
|
host, err := os.Hostname()
|
||||||
|
if err != nil && host == "" {
|
||||||
|
log.Fatal("Node name required and hostname not set. e.g. '-name=name'")
|
||||||
|
}
|
||||||
|
c.Name = host
|
||||||
|
}
|
||||||
|
|
||||||
// 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 {
|
if err := os.RemoveAll(filepath.Join(c.DataDir, "info")); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user