Skip to content

Commit

Permalink
Merge pull request #375 from philips/fix-reset
Browse files Browse the repository at this point in the history
fix(etcd): Fix forced config reset
  • Loading branch information
philips committed Dec 5, 2013
2 parents af20be8 + e7839e8 commit d971d22
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 15 deletions.
10 changes: 0 additions & 10 deletions etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,6 @@ func main() {
profile(config.CPUProfileFile)
}

// Only guess the machine name if there is no data dir specified
// because the info file will should have our name
if config.Name == "" && config.DataDir == "" {
config.NameFromHostname()
}

if config.DataDir == "" && config.Name != "" {
config.DataDirFromName()
}

if config.DataDir == "" {
log.Fatal("The data dir was not set and could not be guessed from machine name")
}
Expand Down
20 changes: 15 additions & 5 deletions server/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@ func (c *Config) Load(arguments []string) error {
return fmt.Errorf("sanitize: %v", err)
}

// Force remove server configuration if specified.
if c.Force {
c.Reset()
}

return nil
}

Expand Down Expand Up @@ -278,11 +283,6 @@ func (c *Config) LoadFlags(arguments []string) error {
c.CorsOrigins = trimsplit(cors, ",")
}

// Force remove server configuration if specified.
if c.Force {
c.Reset()
}

return nil
}

Expand Down Expand Up @@ -404,6 +404,16 @@ func (c *Config) Sanitize() error {
return fmt.Errorf("Peer Listen Host: %s", err)
}

// Only guess the machine name if there is no data dir specified
// because the info file should have our name
if c.Name == "" && c.DataDir == "" {
c.NameFromHostname()
}

if c.DataDir == "" && c.Name != "" {
c.DataDirFromName()
}

return nil
}

Expand Down
18 changes: 18 additions & 0 deletions server/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,24 @@ func TestConfigNameFlag(t *testing.T) {
assert.Equal(t, c.Name, "test-name", "")
}

// Ensures that a Name gets guessed if not specified
func TestConfigNameGuess(t *testing.T) {
c := NewConfig()
assert.Nil(t, c.LoadFlags([]string{}), "")
assert.Nil(t, c.Sanitize())
name, _ := os.Hostname()
assert.Equal(t, c.Name, name, "")
}

// Ensures that a DataDir gets guessed if not specified
func TestConfigDataDirGuess(t *testing.T) {
c := NewConfig()
assert.Nil(t, c.LoadFlags([]string{}), "")
assert.Nil(t, c.Sanitize())
name, _ := os.Hostname()
assert.Equal(t, c.DataDir, name+".etcd", "")
}

// Ensures that Snapshot can be parsed from the environment.
func TestConfigSnapshotEnv(t *testing.T) {
withEnv("ETCD_SNAPSHOT", "1", func(c *Config) {
Expand Down

0 comments on commit d971d22

Please sign in to comment.