mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
make use-context return error when context does not exist
This commit is contained in:
parent
96828f203c
commit
aea3403734
@ -44,13 +44,6 @@ func newRedFederalCowHammerConfig() clientcmdapi.Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type configCommandTest struct {
|
|
||||||
args []string
|
|
||||||
startingConfig clientcmdapi.Config
|
|
||||||
expectedConfig clientcmdapi.Config
|
|
||||||
expectedOutputs []string
|
|
||||||
}
|
|
||||||
|
|
||||||
func ExampleView() {
|
func ExampleView() {
|
||||||
expectedConfig := newRedFederalCowHammerConfig()
|
expectedConfig := newRedFederalCowHammerConfig()
|
||||||
test := configCommandTest{
|
test := configCommandTest{
|
||||||
@ -83,16 +76,36 @@ func ExampleView() {
|
|||||||
|
|
||||||
func TestSetCurrentContext(t *testing.T) {
|
func TestSetCurrentContext(t *testing.T) {
|
||||||
expectedConfig := newRedFederalCowHammerConfig()
|
expectedConfig := newRedFederalCowHammerConfig()
|
||||||
expectedConfig.CurrentContext = "the-new-context"
|
startingConfig := newRedFederalCowHammerConfig()
|
||||||
|
|
||||||
|
newContextName := "the-new-context"
|
||||||
|
newContext := clientcmdapi.NewContext()
|
||||||
|
|
||||||
|
startingConfig.Contexts[newContextName] = *newContext
|
||||||
|
expectedConfig.Contexts[newContextName] = *newContext
|
||||||
|
|
||||||
|
expectedConfig.CurrentContext = newContextName
|
||||||
|
|
||||||
test := configCommandTest{
|
test := configCommandTest{
|
||||||
args: []string{"use-context", "the-new-context"},
|
args: []string{"use-context", "the-new-context"},
|
||||||
startingConfig: newRedFederalCowHammerConfig(),
|
startingConfig: startingConfig,
|
||||||
expectedConfig: expectedConfig,
|
expectedConfig: expectedConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
test.run(t)
|
test.run(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSetNonExistantContext(t *testing.T) {
|
||||||
|
expectedConfig := newRedFederalCowHammerConfig()
|
||||||
|
test := configCommandTest{
|
||||||
|
args: []string{"use-context", "non-existant-config"},
|
||||||
|
startingConfig: expectedConfig,
|
||||||
|
expectedConfig: expectedConfig,
|
||||||
|
expectedOutputs: []string{`No context exists with the name: "non-existant-config"`},
|
||||||
|
}
|
||||||
|
test.run(t)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSetIntoExistingStruct(t *testing.T) {
|
func TestSetIntoExistingStruct(t *testing.T) {
|
||||||
expectedConfig := newRedFederalCowHammerConfig()
|
expectedConfig := newRedFederalCowHammerConfig()
|
||||||
a := expectedConfig.AuthInfos["red-user"]
|
a := expectedConfig.AuthInfos["red-user"]
|
||||||
@ -691,6 +704,13 @@ func testConfigCommand(args []string, startingConfig clientcmdapi.Config) (strin
|
|||||||
return buf.String(), *config
|
return buf.String(), *config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type configCommandTest struct {
|
||||||
|
args []string
|
||||||
|
startingConfig clientcmdapi.Config
|
||||||
|
expectedConfig clientcmdapi.Config
|
||||||
|
expectedOutputs []string
|
||||||
|
}
|
||||||
|
|
||||||
func (test configCommandTest) run(t *testing.T) string {
|
func (test configCommandTest) run(t *testing.T) string {
|
||||||
out, actualConfig := testConfigCommand(test.args, test.startingConfig)
|
out, actualConfig := testConfigCommand(test.args, test.startingConfig)
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type useContextOptions struct {
|
type useContextOptions struct {
|
||||||
@ -43,7 +45,7 @@ func NewCmdConfigUseContext(out io.Writer, configAccess ConfigAccess) *cobra.Com
|
|||||||
|
|
||||||
err := options.run()
|
err := options.run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("%v\n", err)
|
fmt.Fprintf(out, "%v\n", err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -52,12 +54,12 @@ func NewCmdConfigUseContext(out io.Writer, configAccess ConfigAccess) *cobra.Com
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (o useContextOptions) run() error {
|
func (o useContextOptions) run() error {
|
||||||
err := o.validate()
|
config, err := o.configAccess.GetStartingConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
config, err := o.configAccess.GetStartingConfig()
|
err = o.validate(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -82,10 +84,16 @@ func (o *useContextOptions) complete(cmd *cobra.Command) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o useContextOptions) validate() error {
|
func (o useContextOptions) validate(config *clientcmdapi.Config) error {
|
||||||
if len(o.contextName) == 0 {
|
if len(o.contextName) == 0 {
|
||||||
return errors.New("You must specify a current-context")
|
return errors.New("You must specify a current-context")
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
for name := range config.Contexts {
|
||||||
|
if name == o.contextName {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("No context exists with the name: %q.", o.contextName)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user