From f70e93762f547e4cf55bcf8444375eb42c7642ca Mon Sep 17 00:00:00 2001 From: Sirisha Gopigiri Date: Fri, 16 Apr 2021 19:03:54 +0530 Subject: [PATCH] Fix airshipctl config get-context maximum args Limit the number of arguments that can be passed to get-context command to 1 for now Closes: #526 Change-Id: Ib140fc836e01c284c05719dfb7e3f29d0b191538 --- cmd/config/get_context.go | 4 ++- cmd/config/get_context_test.go | 3 ++- .../get-all-contexts.golden | 6 ----- .../get-multiple-contexts.golden | 26 ++++++++++++++----- .../missing.golden | 2 +- .../cli/airshipctl_config_get-context.md | 2 +- 6 files changed, 27 insertions(+), 16 deletions(-) diff --git a/cmd/config/get_context.go b/cmd/config/get_context.go index a1497e47f..40c6b58c5 100644 --- a/cmd/config/get_context.go +++ b/cmd/config/get_context.go @@ -44,10 +44,12 @@ airshipctl config get-context exampleContext func NewGetContextCommand(cfgFactory config.Factory) *cobra.Command { o := &config.ContextOptions{} cmd := &cobra.Command{ - Use: "get-context [NAME]", + Use: "get-context CONTEXT_NAME", Short: "Get context information from the airshipctl config", Long: getContextLong[1:], Example: getContextExample, + // Adding a maximum args cap for documentation purpose + Args: cobra.MaximumNArgs(1), Aliases: []string{"get-contexts"}, RunE: func(cmd *cobra.Command, args []string) error { airconfig, err := cfgFactory() diff --git a/cmd/config/get_context_test.go b/cmd/config/get_context_test.go index f8d54b99b..7097f40f6 100644 --- a/cmd/config/get_context_test.go +++ b/cmd/config/get_context_test.go @@ -50,7 +50,7 @@ func TestGetContextCmd(t *testing.T) { }, { Name: "get-all-contexts", - CmdLine: fmt.Sprintf("%s %s", fooContext, barContext), + CmdLine: fmt.Sprintf("%s", barContext), Cmd: cmd.NewGetContextCommand(settings), }, // This is not implemented yet @@ -58,6 +58,7 @@ func TestGetContextCmd(t *testing.T) { Name: "get-multiple-contexts", CmdLine: fmt.Sprintf("%s %s", fooContext, barContext), Cmd: cmd.NewGetContextCommand(settings), + Error: fmt.Errorf("accepts at most 1 arg(s), received 2"), }, { diff --git a/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-all-contexts.golden b/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-all-contexts.golden index 875dcb32a..a0275daf8 100644 --- a/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-all-contexts.golden +++ b/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-all-contexts.golden @@ -1,9 +1,3 @@ managementConfiguration: "" manifest: Manifest_ContextBar -managementConfiguration: "" -manifest: Manifest_ContextBaz - -managementConfiguration: "" -manifest: Manifest_ContextFoo - diff --git a/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-multiple-contexts.golden b/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-multiple-contexts.golden index 875dcb32a..341a5f36b 100644 --- a/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-multiple-contexts.golden +++ b/cmd/config/testdata/TestGetContextCmdGoldenOutput/get-multiple-contexts.golden @@ -1,9 +1,23 @@ -managementConfiguration: "" -manifest: Manifest_ContextBar +Error: accepts at most 1 arg(s), received 2 +Usage: + get-context CONTEXT_NAME [flags] -managementConfiguration: "" -manifest: Manifest_ContextBaz +Aliases: + get-context, get-contexts -managementConfiguration: "" -manifest: Manifest_ContextFoo +Examples: + +# List all contexts +airshipctl config get-contexts + +# Display the current context +airshipctl config get-context --current + +# Display a specific context +airshipctl config get-context exampleContext + + +Flags: + --current get the current context + -h, --help help for get-context diff --git a/cmd/config/testdata/TestGetContextCmdGoldenOutput/missing.golden b/cmd/config/testdata/TestGetContextCmdGoldenOutput/missing.golden index a6e73ec04..6a5c697b5 100644 --- a/cmd/config/testdata/TestGetContextCmdGoldenOutput/missing.golden +++ b/cmd/config/testdata/TestGetContextCmdGoldenOutput/missing.golden @@ -1,6 +1,6 @@ Error: missing configuration: context with name 'contextMissing' Usage: - get-context [NAME] [flags] + get-context CONTEXT_NAME [flags] Aliases: get-context, get-contexts diff --git a/docs/source/cli/airshipctl_config_get-context.md b/docs/source/cli/airshipctl_config_get-context.md index 5e2b61297..504d1520e 100644 --- a/docs/source/cli/airshipctl_config_get-context.md +++ b/docs/source/cli/airshipctl_config_get-context.md @@ -8,7 +8,7 @@ Display information about contexts such as associated manifests, users, and clus ``` -airshipctl config get-context [NAME] [flags] +airshipctl config get-context CONTEXT_NAME [flags] ``` ### Examples