added -q flag to `docker context ls`. (This is now used in desktop e2e wsl2 tests)

See https://ci-next.docker.com/teams-desktop/blue/organizations/jenkins/desktop%2Fdesktop-test-single-branch-win/detail/desktop-test-single-branch-win/274982/pipeline/
This commit is contained in:
Guillaume Tardif 2020-06-17 07:40:27 +02:00
parent 8f6cd7c63f
commit 2a49c3b32f
2 changed files with 23 additions and 2 deletions

View File

@ -41,20 +41,26 @@ import (
"github.com/docker/api/context/store"
)
type lsOpts struct {
quiet bool
}
func listCommand() *cobra.Command {
var opts lsOpts
cmd := &cobra.Command{
Use: "list",
Short: "List available contexts",
Aliases: []string{"ls"},
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
return runList(cmd.Context())
return runList(cmd.Context(), opts)
},
}
cmd.Flags().BoolVarP(&opts.quiet, "quiet", "q", false, "Only show context names")
return cmd
}
func runList(ctx context.Context) error {
func runList(ctx context.Context, opts lsOpts) error {
currentContext := apicontext.CurrentContext(ctx)
s := store.ContextStore(ctx)
contexts, err := s.List()
@ -66,6 +72,13 @@ func runList(ctx context.Context) error {
return strings.Compare(contexts[i].Name, contexts[j].Name) == -1
})
if opts.quiet {
for _, c := range contexts {
fmt.Println(c.Name)
}
return nil
}
w := tabwriter.NewWriter(os.Stdout, 20, 1, 3, ' ', 0)
fmt.Fprintln(w, "NAME\tTYPE\tDESCRIPTION\tDOCKER ENDPOINT\tKUBERNETES ENDPOINT\tORCHESTRATOR")
format := "%s\t%s\t%s\t%s\t%s\t%s\n"

View File

@ -66,6 +66,14 @@ func (s *E2eSuite) TestCreateDockerContextAndListIt() {
golden.Assert(s.T(), output, GoldenFile("ls-out-test-docker"))
}
func (s *E2eSuite) TestContextListQuiet() {
s.NewDockerCommand("context", "create", "test-docker", "--from", "default").ExecOrDie()
output := s.NewCommand("docker", "context", "ls", "-q").ExecOrDie()
Expect(output).To(Equal(`default
test-docker
`))
}
func (s *E2eSuite) TestInspectDefaultContext() {
output := s.NewDockerCommand("context", "inspect", "default").ExecOrDie()
Expect(output).To(ContainSubstring(`"Name": "default"`))