diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-04-11 14:50:48 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-04-11 14:50:48 +0200 |
commit | d3fbdda80bdaba506c9b2c8c0c37de5182d00053 (patch) | |
tree | ab9b6cdbdfc5ab37ce6841961bd35bb615298d66 /client | |
parent | c45716051f96a1617957dc2a43ad7525dd966471 (diff) |
Add support for zone in persistent config
Diffstat (limited to 'client')
-rw-r--r-- | client/go/cmd/config.go | 6 | ||||
-rw-r--r-- | client/go/cmd/config_test.go | 7 | ||||
-rw-r--r-- | client/go/cmd/testutil_test.go | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/client/go/cmd/config.go b/client/go/cmd/config.go index 33d63aac79f..4fa40d02433 100644 --- a/client/go/cmd/config.go +++ b/client/go/cmd/config.go @@ -532,6 +532,12 @@ func (c *Config) set(option, value string) error { c.config.Set(option, value) return nil } + case zoneFlag: + if _, err := vespa.ZoneFromString(value); err != nil { + return err + } + c.config.Set(option, value) + return nil } return fmt.Errorf("invalid option or value: %s = %s", option, value) } diff --git a/client/go/cmd/config_test.go b/client/go/cmd/config_test.go index 741e23a5c5a..a3ce7ee959d 100644 --- a/client/go/cmd/config_test.go +++ b/client/go/cmd/config_test.go @@ -4,6 +4,7 @@ package cmd import ( "os" "path/filepath" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -55,11 +56,15 @@ func TestConfig(t *testing.T) { assertConfigCommand(t, configHome, "", "config", "set", "quiet", "true") assertConfigCommand(t, configHome, "", "config", "set", "quiet", "false") + // zone + assertConfigCommand(t, configHome, "", "config", "set", "zone", "dev.us-east-1") + assertConfigCommand(t, configHome, "zone = dev.us-east-1\n", "config", "get", "zone") + // Write empty value, which should be ignored. This is for compatibility with older config formats configFile := filepath.Join(configHome, "config.yaml") data, err := os.ReadFile(configFile) require.Nil(t, err) - config := string(data) + "zone: \"\"\n" + config := strings.ReplaceAll(string(data), "dev.us-east-1", `""`) require.Nil(t, os.WriteFile(configFile, []byte(config), 0600)) assertConfigCommand(t, configHome, "zone = <unset>\n", "config", "get", "zone") } diff --git a/client/go/cmd/testutil_test.go b/client/go/cmd/testutil_test.go index 26d0369a215..09c0478a45a 100644 --- a/client/go/cmd/testutil_test.go +++ b/client/go/cmd/testutil_test.go @@ -10,6 +10,7 @@ import ( ) func newTestCLI(t *testing.T, envVars ...string) (*CLI, *bytes.Buffer, *bytes.Buffer) { + t.Helper() homeDir := filepath.Join(t.TempDir(), ".vespa") cacheDir := filepath.Join(t.TempDir(), ".cache", "vespa") env := []string{"VESPA_CLI_HOME=" + homeDir, "VESPA_CLI_CACHE_DIR=" + cacheDir} |