diff options
Diffstat (limited to 'client/go')
-rw-r--r-- | client/go/cmd/config.go | 15 | ||||
-rw-r--r-- | client/go/cmd/config_test.go | 29 |
2 files changed, 33 insertions, 11 deletions
diff --git a/client/go/cmd/config.go b/client/go/cmd/config.go index 7b198ff82f8..33d63aac79f 100644 --- a/client/go/cmd/config.go +++ b/client/go/cmd/config.go @@ -185,7 +185,7 @@ $ vespa config get --local config.printOption(option) } } else { - config.printOption(args[0]) + return config.printOption(args[0]) } return nil }, @@ -536,7 +536,17 @@ func (c *Config) set(option, value string) error { return fmt.Errorf("invalid option or value: %s = %s", option, value) } -func (c *Config) printOption(option string) { +func (c *Config) checkOption(option string) error { + if _, ok := c.flags[option]; !ok { + return fmt.Errorf("invalid option: %s", option) + } + return nil +} + +func (c *Config) printOption(option string) error { + if err := c.checkOption(option); err != nil { + return err + } value, ok := c.get(option) if !ok { faintColor := color.New(color.FgWhite, color.Faint) @@ -545,6 +555,7 @@ func (c *Config) printOption(option string) { value = color.CyanString(value) } log.Printf("%s = %s", option, value) + return nil } func vespaCliHome(env map[string]string) (string, error) { diff --git a/client/go/cmd/config_test.go b/client/go/cmd/config_test.go index 673d90506f8..741e23a5c5a 100644 --- a/client/go/cmd/config_test.go +++ b/client/go/cmd/config_test.go @@ -15,8 +15,10 @@ import ( func TestConfig(t *testing.T) { configHome := t.TempDir() assertConfigCommandErr(t, configHome, "Error: invalid option or value: foo = bar\n", "config", "set", "foo", "bar") - assertConfigCommand(t, configHome, "foo = <unset>\n", "config", "get", "foo") - assertConfigCommand(t, configHome, "target = local\n", "config", "get", "target") + assertConfigCommandErr(t, configHome, "Error: invalid option: foo\n", "config", "get", "foo") + + // target + assertConfigCommand(t, configHome, "target = local\n", "config", "get", "target") // default value assertConfigCommand(t, configHome, "", "config", "set", "target", "hosted") assertConfigCommand(t, configHome, "target = hosted\n", "config", "get", "target") assertConfigCommand(t, configHome, "", "config", "set", "target", "cloud") @@ -25,25 +27,34 @@ func TestConfig(t *testing.T) { assertConfigCommand(t, configHome, "", "config", "set", "target", "https://127.0.0.1") assertConfigCommand(t, configHome, "target = https://127.0.0.1\n", "config", "get", "target") + // application assertConfigCommandErr(t, configHome, "Error: invalid application: \"foo\"\n", "config", "set", "application", "foo") assertConfigCommand(t, configHome, "application = <unset>\n", "config", "get", "application") assertConfigCommand(t, configHome, "", "config", "set", "application", "t1.a1.i1") assertConfigCommand(t, configHome, "application = t1.a1.i1\n", "config", "get", "application") + assertConfigCommand(t, configHome, "", "config", "set", "application", "t1.a1") + assertConfigCommand(t, configHome, "application = t1.a1.default\n", "config", "get", "application") - assertConfigCommand(t, configHome, "", "config", "set", "wait", "60") + // instance + assertConfigCommand(t, configHome, "instance = <unset>\n", "config", "get", "instance") + assertConfigCommand(t, configHome, "", "config", "set", "instance", "i2") + assertConfigCommand(t, configHome, "instance = i2\n", "config", "get", "instance") + + // wait assertConfigCommandErr(t, configHome, "Error: wait option must be an integer >= 0, got \"foo\"\n", "config", "set", "wait", "foo") + assertConfigCommand(t, configHome, "", "config", "set", "wait", "60") assertConfigCommand(t, configHome, "wait = 60\n", "config", "get", "wait") assertConfigCommand(t, configHome, "wait = 30\n", "config", "get", "--wait", "30", "wait") // flag overrides global config + // color + assertConfigCommandErr(t, configHome, "Error: invalid option or value: color = foo\n", "config", "set", "color", "foo") + assertConfigCommand(t, configHome, "", "config", "set", "color", "never") + assertConfigCommand(t, configHome, "color = never\n", "config", "get", "color") + + // quiet assertConfigCommand(t, configHome, "", "config", "set", "quiet", "true") assertConfigCommand(t, configHome, "", "config", "set", "quiet", "false") - assertConfigCommand(t, configHome, "", "config", "set", "instance", "i2") - assertConfigCommand(t, configHome, "instance = i2\n", "config", "get", "instance") - - assertConfigCommand(t, configHome, "", "config", "set", "application", "t1.a1") - assertConfigCommand(t, configHome, "application = t1.a1.default\n", "config", "get", "application") - // 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) |