diff --git a/cli/command/cli_test.go b/cli/command/cli_test.go index 4dd0dfbde918..02e69044e631 100644 --- a/cli/command/cli_test.go +++ b/cli/command/cli_test.go @@ -187,16 +187,16 @@ func TestInitializeFromClient(t *testing.T) { for _, tc := range testcases { t.Run(tc.doc, func(t *testing.T) { - apiclient := &fakeClient{ + apiClient := &fakeClient{ pingFunc: tc.pingFunc, version: defaultVersion, } - cli := &DockerCli{client: apiclient} + cli := &DockerCli{client: apiClient} err := cli.Initialize(flags.NewClientOptions()) assert.NilError(t, err) assert.DeepEqual(t, cli.ServerInfo(), tc.expectedServer) - assert.Equal(t, apiclient.negotiated, tc.negotiated) + assert.Equal(t, apiClient.negotiated, tc.negotiated) }) } } diff --git a/cli/command/container/create_test.go b/cli/command/container/create_test.go index 1071c47b3b1d..254b3d3757aa 100644 --- a/cli/command/container/create_test.go +++ b/cli/command/container/create_test.go @@ -116,7 +116,7 @@ func TestCreateContainerImagePullPolicy(t *testing.T) { t.Run(tc.PullPolicy, func(t *testing.T) { pullCounter := 0 - client := &fakeClient{ + apiClient := &fakeClient{ createContainerFunc: func( config *container.Config, hostConfig *container.HostConfig, @@ -140,7 +140,7 @@ func TestCreateContainerImagePullPolicy(t *testing.T) { return system.Info{IndexServerAddress: "https://indexserver.example.com"}, nil }, } - fakeCLI := test.NewFakeCli(client) + fakeCLI := test.NewFakeCli(apiClient) id, err := createContainer(context.Background(), fakeCLI, config, &createOptions{ name: "name", platform: runtime.GOOS, diff --git a/cli/command/container/exec_test.go b/cli/command/container/exec_test.go index ef1ed5ef4316..964899ad1de7 100644 --- a/cli/command/container/exec_test.go +++ b/cli/command/container/exec_test.go @@ -234,13 +234,13 @@ func TestGetExecExitStatus(t *testing.T) { } for _, testcase := range testcases { - client := &fakeClient{ + apiClient := &fakeClient{ execInspectFunc: func(id string) (container.ExecInspect, error) { assert.Check(t, is.Equal(execID, id)) return container.ExecInspect{ExitCode: testcase.exitCode}, testcase.inspectError }, } - err := getExecExitStatus(context.Background(), client, execID) + err := getExecExitStatus(context.Background(), apiClient, execID) assert.Check(t, is.Equal(testcase.expectedError, err)) } } diff --git a/cli/command/idresolver/idresolver_test.go b/cli/command/idresolver/idresolver_test.go index 31a3266be66a..fb89d5d7986b 100644 --- a/cli/command/idresolver/idresolver_test.go +++ b/cli/command/idresolver/idresolver_test.go @@ -12,13 +12,13 @@ import ( ) func TestResolveError(t *testing.T) { - cli := &fakeClient{ + apiClient := &fakeClient{ nodeInspectFunc: func(nodeID string) (swarm.Node, []byte, error) { return swarm.Node{}, []byte{}, errors.New("error inspecting node") }, } - idResolver := New(cli, false) + idResolver := New(apiClient, false) _, err := idResolver.Resolve(context.Background(), struct{}{}, "nodeID") assert.Error(t, err, "unsupported type") @@ -26,7 +26,7 @@ func TestResolveError(t *testing.T) { func TestResolveWithNoResolveOption(t *testing.T) { resolved := false - cli := &fakeClient{ + apiClient := &fakeClient{ nodeInspectFunc: func(nodeID string) (swarm.Node, []byte, error) { resolved = true return swarm.Node{}, []byte{}, nil @@ -37,7 +37,7 @@ func TestResolveWithNoResolveOption(t *testing.T) { }, } - idResolver := New(cli, true) + idResolver := New(apiClient, true) id, err := idResolver.Resolve(context.Background(), swarm.Node{}, "nodeID") assert.NilError(t, err) @@ -47,14 +47,14 @@ func TestResolveWithNoResolveOption(t *testing.T) { func TestResolveWithCache(t *testing.T) { inspectCounter := 0 - cli := &fakeClient{ + apiClient := &fakeClient{ nodeInspectFunc: func(nodeID string) (swarm.Node, []byte, error) { inspectCounter++ return *builders.Node(builders.NodeName("node-foo")), []byte{}, nil }, } - idResolver := New(cli, false) + idResolver := New(apiClient, false) ctx := context.Background() for i := 0; i < 2; i++ { @@ -97,10 +97,10 @@ func TestResolveNode(t *testing.T) { ctx := context.Background() for _, tc := range testCases { - cli := &fakeClient{ + apiClient := &fakeClient{ nodeInspectFunc: tc.nodeInspectFunc, } - idResolver := New(cli, false) + idResolver := New(apiClient, false) id, err := idResolver.Resolve(ctx, swarm.Node{}, tc.nodeID) assert.NilError(t, err) @@ -132,10 +132,10 @@ func TestResolveService(t *testing.T) { ctx := context.Background() for _, tc := range testCases { - cli := &fakeClient{ + apiClient := &fakeClient{ serviceInspectFunc: tc.serviceInspectFunc, } - idResolver := New(cli, false) + idResolver := New(apiClient, false) id, err := idResolver.Resolve(ctx, swarm.Service{}, tc.serviceID) assert.NilError(t, err) diff --git a/cli/command/network/list.go b/cli/command/network/list.go index 01aa33bc15a8..0833a37416a9 100644 --- a/cli/command/network/list.go +++ b/cli/command/network/list.go @@ -45,17 +45,17 @@ func newListCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runList(ctx context.Context, dockerCli command.Cli, options listOptions) error { - client := dockerCli.Client() - networkResources, err := client.NetworkList(ctx, network.ListOptions{Filters: options.filter.Value()}) +func runList(ctx context.Context, dockerCLI command.Cli, options listOptions) error { + apiClient := dockerCLI.Client() + networkResources, err := apiClient.NetworkList(ctx, network.ListOptions{Filters: options.filter.Value()}) if err != nil { return err } format := options.format if len(format) == 0 { - if len(dockerCli.ConfigFile().NetworksFormat) > 0 && !options.quiet { - format = dockerCli.ConfigFile().NetworksFormat + if len(dockerCLI.ConfigFile().NetworksFormat) > 0 && !options.quiet { + format = dockerCLI.ConfigFile().NetworksFormat } else { format = formatter.TableFormatKey } @@ -66,7 +66,7 @@ func runList(ctx context.Context, dockerCli command.Cli, options listOptions) er }) networksCtx := formatter.Context{ - Output: dockerCli.Out(), + Output: dockerCLI.Out(), Format: newFormat(format, options.quiet), Trunc: !options.noTrunc, } diff --git a/cli/command/node/cmd.go b/cli/command/node/cmd.go index 20049ba04d36..711277925ca8 100644 --- a/cli/command/node/cmd.go +++ b/cli/command/node/cmd.go @@ -53,6 +53,8 @@ func Reference(ctx context.Context, apiClient client.APIClient, ref string) (str // If there's no node ID in /info, the node probably // isn't a manager. Call a swarm-specific endpoint to // get a more specific error message. + // + // FIXME(thaJeztah): this should not require calling a Swarm endpoint, and we could just suffice with info / ping (which has swarm status). _, err = apiClient.NodeList(ctx, swarm.NodeListOptions{}) if err != nil { return "", err diff --git a/cli/command/node/demote.go b/cli/command/node/demote.go index 31651ba9725d..f6a5b5a719d7 100644 --- a/cli/command/node/demote.go +++ b/cli/command/node/demote.go @@ -22,17 +22,16 @@ func newDemoteCommand(dockerCli command.Cli) *cobra.Command { } } -func runDemote(ctx context.Context, dockerCli command.Cli, nodes []string) error { +func runDemote(ctx context.Context, dockerCLI command.Cli, nodes []string) error { demote := func(node *swarm.Node) error { if node.Spec.Role == swarm.NodeRoleWorker { - _, _ = fmt.Fprintf(dockerCli.Out(), "Node %s is already a worker.\n", node.ID) + _, _ = fmt.Fprintf(dockerCLI.Out(), "Node %s is already a worker.\n", node.ID) return errNoRoleChange } node.Spec.Role = swarm.NodeRoleWorker return nil } - success := func(nodeID string) { - _, _ = fmt.Fprintf(dockerCli.Out(), "Manager %s demoted in the swarm.\n", nodeID) - } - return updateNodes(ctx, dockerCli, nodes, demote, success) + return updateNodes(ctx, dockerCLI.Client(), nodes, demote, func(nodeID string) { + _, _ = fmt.Fprintf(dockerCLI.Out(), "Manager %s demoted in the swarm.\n", nodeID) + }) } diff --git a/cli/command/node/inspect.go b/cli/command/node/inspect.go index 8f2519e04e34..1ef4777f4d3f 100644 --- a/cli/command/node/inspect.go +++ b/cli/command/node/inspect.go @@ -41,32 +41,31 @@ func newInspectCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error { - client := dockerCli.Client() +func runInspect(ctx context.Context, dockerCLI command.Cli, opts inspectOptions) error { + apiClient := dockerCLI.Client() if opts.pretty { opts.format = "pretty" } getRef := func(ref string) (any, []byte, error) { - nodeRef, err := Reference(ctx, client, ref) + nodeRef, err := Reference(ctx, apiClient, ref) if err != nil { return nil, nil, err } - node, _, err := client.NodeInspectWithRaw(ctx, nodeRef) + node, _, err := apiClient.NodeInspectWithRaw(ctx, nodeRef) return node, nil, err } - f := opts.format // check if the user is trying to apply a template to the pretty format, which // is not supported - if strings.HasPrefix(f, "pretty") && f != "pretty" { + if strings.HasPrefix(opts.format, "pretty") && opts.format != "pretty" { return errors.New("cannot supply extra formatting options to the pretty template") } nodeCtx := formatter.Context{ - Output: dockerCli.Out(), - Format: newFormat(f, false), + Output: dockerCLI.Out(), + Format: newFormat(opts.format, false), } if err := inspectFormatWrite(nodeCtx, opts.nodeIds, getRef); err != nil { diff --git a/cli/command/node/list.go b/cli/command/node/list.go index 77adb09e49dd..6561ed47f657 100644 --- a/cli/command/node/list.go +++ b/cli/command/node/list.go @@ -50,20 +50,20 @@ func newListCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runList(ctx context.Context, dockerCli command.Cli, options listOptions) error { - client := dockerCli.Client() +func runList(ctx context.Context, dockerCLI command.Cli, options listOptions) error { + apiClient := dockerCLI.Client() - nodes, err := client.NodeList( - ctx, - swarm.NodeListOptions{Filters: options.filter.Value()}) + nodes, err := apiClient.NodeList(ctx, swarm.NodeListOptions{ + Filters: options.filter.Value(), + }) if err != nil { return err } - info := system.Info{} + var info system.Info if len(nodes) > 0 && !options.quiet { // only non-empty nodes and not quiet, should we call /info api - info, err = client.Info(ctx) + info, err = apiClient.Info(ctx) if err != nil { return err } @@ -72,13 +72,13 @@ func runList(ctx context.Context, dockerCli command.Cli, options listOptions) er format := options.format if len(format) == 0 { format = formatter.TableFormatKey - if len(dockerCli.ConfigFile().NodesFormat) > 0 && !options.quiet { - format = dockerCli.ConfigFile().NodesFormat + if len(dockerCLI.ConfigFile().NodesFormat) > 0 && !options.quiet { + format = dockerCLI.ConfigFile().NodesFormat } } nodesCtx := formatter.Context{ - Output: dockerCli.Out(), + Output: dockerCLI.Out(), Format: newFormat(format, options.quiet), } sort.Slice(nodes, func(i, j int) bool { diff --git a/cli/command/node/promote.go b/cli/command/node/promote.go index 695781b02759..33137f122d3a 100644 --- a/cli/command/node/promote.go +++ b/cli/command/node/promote.go @@ -22,17 +22,16 @@ func newPromoteCommand(dockerCli command.Cli) *cobra.Command { } } -func runPromote(ctx context.Context, dockerCli command.Cli, nodes []string) error { +func runPromote(ctx context.Context, dockerCLI command.Cli, nodes []string) error { promote := func(node *swarm.Node) error { if node.Spec.Role == swarm.NodeRoleManager { - _, _ = fmt.Fprintf(dockerCli.Out(), "Node %s is already a manager.\n", node.ID) + _, _ = fmt.Fprintf(dockerCLI.Out(), "Node %s is already a manager.\n", node.ID) return errNoRoleChange } node.Spec.Role = swarm.NodeRoleManager return nil } - success := func(nodeID string) { - _, _ = fmt.Fprintf(dockerCli.Out(), "Node %s promoted to a manager in the swarm.\n", nodeID) - } - return updateNodes(ctx, dockerCli, nodes, promote, success) + return updateNodes(ctx, dockerCLI.Client(), nodes, promote, func(nodeID string) { + _, _ = fmt.Fprintf(dockerCLI.Out(), "Node %s promoted to a manager in the swarm.\n", nodeID) + }) } diff --git a/cli/command/node/ps.go b/cli/command/node/ps.go index 621ac0dd453e..37df147cff3f 100644 --- a/cli/command/node/ps.go +++ b/cli/command/node/ps.go @@ -59,8 +59,8 @@ func newPsCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runPs(ctx context.Context, dockerCli command.Cli, options psOptions) error { - client := dockerCli.Client() +func runPs(ctx context.Context, dockerCLI command.Cli, options psOptions) error { + apiClient := dockerCLI.Client() var ( errs []string @@ -68,13 +68,13 @@ func runPs(ctx context.Context, dockerCli command.Cli, options psOptions) error ) for _, nodeID := range options.nodeIDs { - nodeRef, err := Reference(ctx, client, nodeID) + nodeRef, err := Reference(ctx, apiClient, nodeID) if err != nil { errs = append(errs, err.Error()) continue } - node, _, err := client.NodeInspectWithRaw(ctx, nodeRef) + node, _, err := apiClient.NodeInspectWithRaw(ctx, nodeRef) if err != nil { errs = append(errs, err.Error()) continue @@ -83,7 +83,7 @@ func runPs(ctx context.Context, dockerCli command.Cli, options psOptions) error filter := options.filter.Value() filter.Add("node", node.ID) - nodeTasks, err := client.TaskList(ctx, swarm.TaskListOptions{Filters: filter}) + nodeTasks, err := apiClient.TaskList(ctx, swarm.TaskListOptions{Filters: filter}) if err != nil { errs = append(errs, err.Error()) continue @@ -94,11 +94,11 @@ func runPs(ctx context.Context, dockerCli command.Cli, options psOptions) error format := options.format if len(format) == 0 { - format = task.DefaultFormat(dockerCli.ConfigFile(), options.quiet) + format = task.DefaultFormat(dockerCLI.ConfigFile(), options.quiet) } if len(errs) == 0 || len(tasks) != 0 { - if err := task.Print(ctx, dockerCli, tasks, idresolver.New(client, options.noResolve), !options.noTrunc, options.quiet, format); err != nil { + if err := task.Print(ctx, dockerCLI, tasks, idresolver.New(apiClient, options.noResolve), !options.noTrunc, options.quiet, format); err != nil { errs = append(errs, err.Error()) } } diff --git a/cli/command/node/update.go b/cli/command/node/update.go index f818320570a6..19af5458aa6e 100644 --- a/cli/command/node/update.go +++ b/cli/command/node/update.go @@ -9,6 +9,7 @@ import ( "github.com/docker/cli/cli/command/completion" "github.com/docker/cli/opts" "github.com/moby/moby/api/types/swarm" + "github.com/moby/moby/client" "github.com/pkg/errors" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -47,18 +48,15 @@ func newUpdateCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runUpdate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, nodeID string) error { - success := func(_ string) { - fmt.Fprintln(dockerCli.Out(), nodeID) - } - return updateNodes(ctx, dockerCli, []string{nodeID}, mergeNodeUpdate(flags), success) +func runUpdate(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, nodeID string) error { + return updateNodes(ctx, dockerCLI.Client(), []string{nodeID}, mergeNodeUpdate(flags), func(_ string) { + _, _ = fmt.Fprintln(dockerCLI.Out(), nodeID) + }) } -func updateNodes(ctx context.Context, dockerCli command.Cli, nodes []string, mergeNode func(node *swarm.Node) error, success func(nodeID string)) error { - client := dockerCli.Client() - +func updateNodes(ctx context.Context, apiClient client.NodeAPIClient, nodes []string, mergeNode func(node *swarm.Node) error, success func(nodeID string)) error { for _, nodeID := range nodes { - node, _, err := client.NodeInspectWithRaw(ctx, nodeID) + node, _, err := apiClient.NodeInspectWithRaw(ctx, nodeID) if err != nil { return err } @@ -70,7 +68,7 @@ func updateNodes(ctx context.Context, dockerCli command.Cli, nodes []string, mer } return err } - err = client.NodeUpdate(ctx, node.ID, node.Version, node.Spec) + err = apiClient.NodeUpdate(ctx, node.ID, node.Version, node.Spec) if err != nil { return err } diff --git a/cli/command/secret/create.go b/cli/command/secret/create.go index c2407ade123a..bdb2cb7ba872 100644 --- a/cli/command/secret/create.go +++ b/cli/command/secret/create.go @@ -49,8 +49,8 @@ func newSecretCreateCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runSecretCreate(ctx context.Context, dockerCli command.Cli, options createOptions) error { - client := dockerCli.Client() +func runSecretCreate(ctx context.Context, dockerCLI command.Cli, options createOptions) error { + apiClient := dockerCLI.Client() var secretData []byte if options.driver != "" { @@ -59,7 +59,7 @@ func runSecretCreate(ctx context.Context, dockerCli command.Cli, options createO } } else { var err error - secretData, err = readSecretData(dockerCli.In(), options.file) + secretData, err = readSecretData(dockerCLI.In(), options.file) if err != nil { return err } @@ -82,12 +82,12 @@ func runSecretCreate(ctx context.Context, dockerCli command.Cli, options createO Name: options.templateDriver, } } - r, err := client.SecretCreate(ctx, spec) + r, err := apiClient.SecretCreate(ctx, spec) if err != nil { return err } - _, _ = fmt.Fprintln(dockerCli.Out(), r.ID) + _, _ = fmt.Fprintln(dockerCLI.Out(), r.ID) return nil } diff --git a/cli/command/secret/inspect.go b/cli/command/secret/inspect.go index 7712e4be1399..fea34f2e0a3b 100644 --- a/cli/command/secret/inspect.go +++ b/cli/command/secret/inspect.go @@ -41,27 +41,26 @@ func newSecretInspectCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runSecretInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error { - client := dockerCli.Client() +func runSecretInspect(ctx context.Context, dockerCLI command.Cli, opts inspectOptions) error { + apiClient := dockerCLI.Client() if opts.pretty { opts.format = "pretty" } getRef := func(id string) (any, []byte, error) { - return client.SecretInspectWithRaw(ctx, id) + return apiClient.SecretInspectWithRaw(ctx, id) } - f := opts.format // check if the user is trying to apply a template to the pretty format, which // is not supported - if strings.HasPrefix(f, "pretty") && f != "pretty" { + if strings.HasPrefix(opts.format, "pretty") && opts.format != "pretty" { return errors.New("cannot supply extra formatting options to the pretty template") } secretCtx := formatter.Context{ - Output: dockerCli.Out(), - Format: newFormat(f, false), + Output: dockerCLI.Out(), + Format: newFormat(opts.format, false), } if err := inspectFormatWrite(secretCtx, opts.names, getRef); err != nil { diff --git a/cli/command/secret/ls.go b/cli/command/secret/ls.go index e56acc4975c2..565c1cf7f09f 100644 --- a/cli/command/secret/ls.go +++ b/cli/command/secret/ls.go @@ -44,17 +44,17 @@ func newSecretListCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runSecretList(ctx context.Context, dockerCli command.Cli, options listOptions) error { - client := dockerCli.Client() +func runSecretList(ctx context.Context, dockerCLI command.Cli, options listOptions) error { + apiClient := dockerCLI.Client() - secrets, err := client.SecretList(ctx, swarm.SecretListOptions{Filters: options.filter.Value()}) + secrets, err := apiClient.SecretList(ctx, swarm.SecretListOptions{Filters: options.filter.Value()}) if err != nil { return err } format := options.format if len(format) == 0 { - if len(dockerCli.ConfigFile().SecretFormat) > 0 && !options.quiet { - format = dockerCli.ConfigFile().SecretFormat + if len(dockerCLI.ConfigFile().SecretFormat) > 0 && !options.quiet { + format = dockerCLI.ConfigFile().SecretFormat } else { format = formatter.TableFormatKey } @@ -65,7 +65,7 @@ func runSecretList(ctx context.Context, dockerCli command.Cli, options listOptio }) secretCtx := formatter.Context{ - Output: dockerCli.Out(), + Output: dockerCLI.Out(), Format: newFormat(format, options.quiet), } return formatWrite(secretCtx, secrets) diff --git a/cli/command/service/inspect.go b/cli/command/service/inspect.go index 044311f327a7..e3ef15590de7 100644 --- a/cli/command/service/inspect.go +++ b/cli/command/service/inspect.go @@ -57,8 +57,8 @@ func newInspectCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error { - client := dockerCli.Client() +func runInspect(ctx context.Context, dockerCLI command.Cli, opts inspectOptions) error { + apiClient := dockerCLI.Client() if opts.pretty { opts.format = "pretty" @@ -66,7 +66,7 @@ func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) getRef := func(ref string) (any, []byte, error) { // Service inspect shows defaults values in empty fields. - service, _, err := client.ServiceInspectWithRaw(ctx, ref, swarm.ServiceInspectOptions{InsertDefaults: true}) + service, _, err := apiClient.ServiceInspectWithRaw(ctx, ref, swarm.ServiceInspectOptions{InsertDefaults: true}) if err == nil || !errdefs.IsNotFound(err) { return service, nil, err } @@ -74,7 +74,7 @@ func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) } getNetwork := func(ref string) (any, []byte, error) { - nw, _, err := client.NetworkInspectWithRaw(ctx, ref, network.InspectOptions{Scope: "swarm"}) + nw, _, err := apiClient.NetworkInspectWithRaw(ctx, ref, network.InspectOptions{Scope: "swarm"}) if err == nil || !errdefs.IsNotFound(err) { return nw, nil, err } @@ -84,8 +84,8 @@ func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) f := opts.format if len(f) == 0 { f = "raw" - if len(dockerCli.ConfigFile().ServiceInspectFormat) > 0 { - f = dockerCli.ConfigFile().ServiceInspectFormat + if len(dockerCLI.ConfigFile().ServiceInspectFormat) > 0 { + f = dockerCLI.ConfigFile().ServiceInspectFormat } } @@ -96,7 +96,7 @@ func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) } serviceCtx := formatter.Context{ - Output: dockerCli.Out(), + Output: dockerCLI.Out(), Format: newFormat(f), } diff --git a/cli/command/service/opts_test.go b/cli/command/service/opts_test.go index 864f664deb5c..d89c13fe2df4 100644 --- a/cli/command/service/opts_test.go +++ b/cli/command/service/opts_test.go @@ -190,7 +190,7 @@ func TestToServiceNetwork(t *testing.T) { {Name: "zzz-network", ID: "id111"}, } - client := &fakeClient{ + apiClient := &fakeClient{ networkInspectFunc: func(ctx context.Context, networkID string, options network.InspectOptions) (network.Inspect, error) { for _, nw := range nws { if nw.ID == networkID || nw.Name == networkID { @@ -212,7 +212,7 @@ func TestToServiceNetwork(t *testing.T) { ctx := context.Background() flags := newCreateCommand(nil).Flags() - service, err := o.ToService(ctx, client, flags) + service, err := o.ToService(ctx, apiClient, flags) assert.NilError(t, err) assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id111"}, {Target: "id555"}, {Target: "id999"}}, service.TaskTemplate.Networks)) } diff --git a/cli/command/service/ps_test.go b/cli/command/service/ps_test.go index 72d471918f1d..033a1950969f 100644 --- a/cli/command/service/ps_test.go +++ b/cli/command/service/ps_test.go @@ -15,7 +15,7 @@ import ( ) func TestCreateFilter(t *testing.T) { - client := &fakeClient{ + apiClient := &fakeClient{ serviceListFunc: func(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error) { return []swarm.Service{ {ID: "idmatch"}, @@ -33,7 +33,7 @@ func TestCreateFilter(t *testing.T) { filter: filter, } - actual, notfound, err := createFilter(context.Background(), client, options) + actual, notfound, err := createFilter(context.Background(), apiClient, options) assert.NilError(t, err) assert.Check(t, is.DeepEqual(notfound, []string{"no such service: notfound"})) @@ -47,7 +47,7 @@ func TestCreateFilter(t *testing.T) { } func TestCreateFilterWithAmbiguousIDPrefixError(t *testing.T) { - client := &fakeClient{ + apiClient := &fakeClient{ serviceListFunc: func(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error) { return []swarm.Service{ {ID: "aaaone"}, @@ -59,22 +59,22 @@ func TestCreateFilterWithAmbiguousIDPrefixError(t *testing.T) { services: []string{"aaa"}, filter: opts.NewFilterOpt(), } - _, _, err := createFilter(context.Background(), client, options) + _, _, err := createFilter(context.Background(), apiClient, options) assert.Error(t, err, "multiple services found with provided prefix: aaa") } func TestCreateFilterNoneFound(t *testing.T) { - client := &fakeClient{} + apiClient := &fakeClient{} options := psOptions{ services: []string{"foo", "notfound"}, filter: opts.NewFilterOpt(), } - _, _, err := createFilter(context.Background(), client, options) + _, _, err := createFilter(context.Background(), apiClient, options) assert.Error(t, err, "no such service: foo\nno such service: notfound") } func TestRunPSWarnsOnNotFound(t *testing.T) { - client := &fakeClient{ + apiClient := &fakeClient{ serviceListFunc: func(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error) { return []swarm.Service{ {ID: "foo"}, @@ -82,7 +82,7 @@ func TestRunPSWarnsOnNotFound(t *testing.T) { }, } - cli := test.NewFakeCli(client) + cli := test.NewFakeCli(apiClient) options := psOptions{ services: []string{"foo", "bar"}, filter: opts.NewFilterOpt(), @@ -95,7 +95,7 @@ func TestRunPSWarnsOnNotFound(t *testing.T) { } func TestRunPSQuiet(t *testing.T) { - client := &fakeClient{ + apiClient := &fakeClient{ serviceListFunc: func(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error) { return []swarm.Service{{ID: "foo"}}, nil }, @@ -104,7 +104,7 @@ func TestRunPSQuiet(t *testing.T) { }, } - cli := test.NewFakeCli(client) + cli := test.NewFakeCli(apiClient) ctx := context.Background() err := runPS(ctx, cli, psOptions{services: []string{"foo"}, quiet: true, filter: opts.NewFilterOpt()}) assert.NilError(t, err) @@ -119,13 +119,14 @@ func TestUpdateNodeFilter(t *testing.T) { filters.Arg("node", "self"), ) - client := &fakeClient{ + apiClient := &fakeClient{ infoFunc: func(_ context.Context) (system.Info, error) { return system.Info{Swarm: swarm.Info{NodeID: selfNodeID}}, nil }, } - updateNodeFilter(context.Background(), client, filter) + err := updateNodeFilter(context.Background(), apiClient, filter) + assert.NilError(t, err) expected := filters.NewArgs( filters.Arg("node", "one"), diff --git a/cli/command/service/update_test.go b/cli/command/service/update_test.go index 5f3936c62f57..1cc9ab0e8227 100644 --- a/cli/command/service/update_test.go +++ b/cli/command/service/update_test.go @@ -851,7 +851,7 @@ func TestUpdateNetworks(t *testing.T) { {Name: "zzz-network", ID: "id111"}, } - client := &fakeClient{ + apiClient := &fakeClient{ networkInspectFunc: func(ctx context.Context, networkID string, options network.InspectOptions) (network.Inspect, error) { for _, nw := range nws { if nw.ID == networkID || nw.Name == networkID { @@ -874,28 +874,28 @@ func TestUpdateNetworks(t *testing.T) { flags := newUpdateCommand(nil).Flags() err := flags.Set(flagNetworkAdd, "aaa-network") assert.NilError(t, err) - err = updateService(ctx, client, flags, &svc) + err = updateService(ctx, apiClient, flags, &svc) assert.NilError(t, err) assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id555"}, {Target: "id999"}}, svc.TaskTemplate.Networks)) flags = newUpdateCommand(nil).Flags() err = flags.Set(flagNetworkAdd, "aaa-network") assert.NilError(t, err) - err = updateService(ctx, client, flags, &svc) + err = updateService(ctx, apiClient, flags, &svc) assert.Error(t, err, "service is already attached to network aaa-network") assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id555"}, {Target: "id999"}}, svc.TaskTemplate.Networks)) flags = newUpdateCommand(nil).Flags() err = flags.Set(flagNetworkAdd, "id555") assert.NilError(t, err) - err = updateService(ctx, client, flags, &svc) + err = updateService(ctx, apiClient, flags, &svc) assert.Error(t, err, "service is already attached to network id555") assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id555"}, {Target: "id999"}}, svc.TaskTemplate.Networks)) flags = newUpdateCommand(nil).Flags() err = flags.Set(flagNetworkRemove, "id999") assert.NilError(t, err) - err = updateService(ctx, client, flags, &svc) + err = updateService(ctx, apiClient, flags, &svc) assert.NilError(t, err) assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id555"}}, svc.TaskTemplate.Networks)) @@ -904,7 +904,7 @@ func TestUpdateNetworks(t *testing.T) { assert.NilError(t, err) err = flags.Set(flagNetworkRemove, "aaa-network") assert.NilError(t, err) - err = updateService(ctx, client, flags, &svc) + err = updateService(ctx, apiClient, flags, &svc) assert.NilError(t, err) assert.Check(t, is.DeepEqual([]swarm.NetworkAttachmentConfig{{Target: "id999"}}, svc.TaskTemplate.Networks)) } diff --git a/cli/command/stack/remove_test.go b/cli/command/stack/remove_test.go index 1a6923b747d7..6c843e6f6ecb 100644 --- a/cli/command/stack/remove_test.go +++ b/cli/command/stack/remove_test.go @@ -99,14 +99,14 @@ func TestRemoveStackSkipEmpty(t *testing.T) { allConfigs := []string{objectName("bar", "config1")} allConfigIDs := buildObjectIDs(allConfigs) - fakeClient := &fakeClient{ + apiClient := &fakeClient{ version: "1.30", services: allServices, networks: allNetworks, secrets: allSecrets, configs: allConfigs, } - fakeCli := test.NewFakeCli(fakeClient) + fakeCli := test.NewFakeCli(apiClient) cmd := newRemoveCommand(fakeCli) cmd.SetArgs([]string{"foo", "bar"}) @@ -120,10 +120,10 @@ func TestRemoveStackSkipEmpty(t *testing.T) { } assert.Check(t, is.Equal(strings.Join(expectedList, "\n"), fakeCli.OutBuffer().String())) assert.Check(t, is.Contains(fakeCli.ErrBuffer().String(), "Nothing found in stack: foo\n")) - assert.Check(t, is.DeepEqual(allServiceIDs, fakeClient.removedServices)) - assert.Check(t, is.DeepEqual(allNetworkIDs, fakeClient.removedNetworks)) - assert.Check(t, is.DeepEqual(allSecretIDs, fakeClient.removedSecrets)) - assert.Check(t, is.DeepEqual(allConfigIDs, fakeClient.removedConfigs)) + assert.Check(t, is.DeepEqual(allServiceIDs, apiClient.removedServices)) + assert.Check(t, is.DeepEqual(allNetworkIDs, apiClient.removedNetworks)) + assert.Check(t, is.DeepEqual(allSecretIDs, apiClient.removedSecrets)) + assert.Check(t, is.DeepEqual(allConfigIDs, apiClient.removedConfigs)) } func TestRemoveContinueAfterError(t *testing.T) { @@ -140,7 +140,7 @@ func TestRemoveContinueAfterError(t *testing.T) { allConfigIDs := buildObjectIDs(allConfigs) removedServices := []string{} - cli := &fakeClient{ + apiClient := &fakeClient{ version: "1.30", services: allServices, networks: allNetworks, @@ -156,14 +156,14 @@ func TestRemoveContinueAfterError(t *testing.T) { return nil }, } - cmd := newRemoveCommand(test.NewFakeCli(cli)) + cmd := newRemoveCommand(test.NewFakeCli(apiClient)) cmd.SetOut(io.Discard) cmd.SetErr(io.Discard) cmd.SetArgs([]string{"foo", "bar"}) assert.Error(t, cmd.Execute(), "failed to remove some resources from stack: foo") assert.Check(t, is.DeepEqual(allServiceIDs, removedServices)) - assert.Check(t, is.DeepEqual(allNetworkIDs, cli.removedNetworks)) - assert.Check(t, is.DeepEqual(allSecretIDs, cli.removedSecrets)) - assert.Check(t, is.DeepEqual(allConfigIDs, cli.removedConfigs)) + assert.Check(t, is.DeepEqual(allNetworkIDs, apiClient.removedNetworks)) + assert.Check(t, is.DeepEqual(allSecretIDs, apiClient.removedSecrets)) + assert.Check(t, is.DeepEqual(allConfigIDs, apiClient.removedConfigs)) } diff --git a/cli/command/stack/swarm/deploy_test.go b/cli/command/stack/swarm/deploy_test.go index a6fa3e0c2563..14342b07e600 100644 --- a/cli/command/stack/swarm/deploy_test.go +++ b/cli/command/stack/swarm/deploy_test.go @@ -18,11 +18,11 @@ func TestPruneServices(t *testing.T) { "new": {}, "keep": {}, } - client := &fakeClient{services: []string{objectName("foo", "keep"), objectName("foo", "remove")}} - dockerCli := test.NewFakeCli(client) + apiClient := &fakeClient{services: []string{objectName("foo", "keep"), objectName("foo", "remove")}} + dockerCli := test.NewFakeCli(apiClient) pruneServices(ctx, dockerCli, namespace, services) - assert.Check(t, is.DeepEqual(buildObjectIDs([]string{objectName("foo", "remove")}), client.removedServices)) + assert.Check(t, is.DeepEqual(buildObjectIDs([]string{objectName("foo", "remove")}), apiClient.removedServices)) } // TestServiceUpdateResolveImageChanged tests that the service's diff --git a/cli/command/stack/swarm/ps.go b/cli/command/stack/swarm/ps.go index 9b40dc9b3043..5bb6ab5866f2 100644 --- a/cli/command/stack/swarm/ps.go +++ b/cli/command/stack/swarm/ps.go @@ -12,11 +12,11 @@ import ( ) // RunPS is the swarm implementation of docker stack ps -func RunPS(ctx context.Context, dockerCli command.Cli, opts options.PS) error { +func RunPS(ctx context.Context, dockerCLI command.Cli, opts options.PS) error { filter := getStackFilterFromOpt(opts.Namespace, opts.Filter) - client := dockerCli.Client() - tasks, err := client.TaskList(ctx, swarm.TaskListOptions{Filters: filter}) + apiClient := dockerCLI.Client() + tasks, err := apiClient.TaskList(ctx, swarm.TaskListOptions{Filters: filter}) if err != nil { return err } @@ -27,8 +27,8 @@ func RunPS(ctx context.Context, dockerCli command.Cli, opts options.PS) error { format := opts.Format if len(format) == 0 { - format = task.DefaultFormat(dockerCli.ConfigFile(), opts.Quiet) + format = task.DefaultFormat(dockerCLI.ConfigFile(), opts.Quiet) } - return task.Print(ctx, dockerCli, tasks, idresolver.New(client, opts.NoResolve), !opts.NoTrunc, opts.Quiet, format) + return task.Print(ctx, dockerCLI, tasks, idresolver.New(apiClient, opts.NoResolve), !opts.NoTrunc, opts.Quiet, format) } diff --git a/cli/command/swarm/ca.go b/cli/command/swarm/ca.go index 4007ec5b245d..a2c8898152be 100644 --- a/cli/command/swarm/ca.go +++ b/cli/command/swarm/ca.go @@ -54,10 +54,10 @@ func newCACommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runCA(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, opts caOptions) error { - client := dockerCli.Client() +func runCA(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, opts caOptions) error { + apiClient := dockerCLI.Client() - swarmInspect, err := client.SwarmInspect(ctx) + swarmInspect, err := apiClient.SwarmInspect(ctx) if err != nil { return err } @@ -68,7 +68,7 @@ func runCA(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, opt return fmt.Errorf("`--%s` flag requires the `--rotate` flag to update the CA", f) } } - return displayTrustRoot(dockerCli.Out(), swarmInspect) + return displayTrustRoot(dockerCLI.Out(), swarmInspect) } if flags.Changed(flagExternalCA) && len(opts.externalCA.Value()) > 0 && !flags.Changed(flagCACert) { @@ -83,14 +83,14 @@ func runCA(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, opt } updateSwarmSpec(&swarmInspect.Spec, flags, opts) - if err := client.SwarmUpdate(ctx, swarmInspect.Version, swarmInspect.Spec, swarm.UpdateFlags{}); err != nil { + if err := apiClient.SwarmUpdate(ctx, swarmInspect.Version, swarmInspect.Spec, swarm.UpdateFlags{}); err != nil { return err } if opts.detach { return nil } - return attach(ctx, dockerCli, opts) + return attach(ctx, dockerCLI, opts) } func updateSwarmSpec(spec *swarm.Spec, flags *pflag.FlagSet, opts caOptions) { @@ -106,13 +106,13 @@ func updateSwarmSpec(spec *swarm.Spec, flags *pflag.FlagSet, opts caOptions) { } } -func attach(ctx context.Context, dockerCli command.Cli, opts caOptions) error { - client := dockerCli.Client() +func attach(ctx context.Context, dockerCLI command.Cli, opts caOptions) error { + apiClient := dockerCLI.Client() errChan := make(chan error, 1) pipeReader, pipeWriter := io.Pipe() go func() { - errChan <- progress.RootRotationProgress(ctx, client, pipeWriter) + errChan <- progress.RootRotationProgress(ctx, apiClient, pipeWriter) }() if opts.quiet { @@ -120,7 +120,7 @@ func attach(ctx context.Context, dockerCli command.Cli, opts caOptions) error { return <-errChan } - err := jsonstream.Display(ctx, pipeReader, dockerCli.Out()) + err := jsonstream.Display(ctx, pipeReader, dockerCLI.Out()) if err == nil { err = <-errChan } @@ -128,17 +128,17 @@ func attach(ctx context.Context, dockerCli command.Cli, opts caOptions) error { return err } - swarmInspect, err := client.SwarmInspect(ctx) + swarmInspect, err := apiClient.SwarmInspect(ctx) if err != nil { return err } - return displayTrustRoot(dockerCli.Out(), swarmInspect) + return displayTrustRoot(dockerCLI.Out(), swarmInspect) } func displayTrustRoot(out io.Writer, info swarm.Swarm) error { if info.ClusterInfo.TLSInfo.TrustRoot == "" { return errors.New("No CA information available") } - fmt.Fprintln(out, strings.TrimSpace(info.ClusterInfo.TLSInfo.TrustRoot)) + _, _ = fmt.Fprintln(out, strings.TrimSpace(info.ClusterInfo.TLSInfo.TrustRoot)) return nil } diff --git a/cli/command/swarm/join.go b/cli/command/swarm/join.go index c9295fc80e40..ae835360903e 100644 --- a/cli/command/swarm/join.go +++ b/cli/command/swarm/join.go @@ -52,8 +52,8 @@ func newJoinCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runJoin(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, opts joinOptions) error { - client := dockerCli.Client() +func runJoin(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, opts joinOptions) error { + apiClient := dockerCLI.Client() req := swarm.JoinRequest{ JoinToken: opts.token, @@ -72,20 +72,20 @@ func runJoin(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, o } } - err := client.SwarmJoin(ctx, req) + err := apiClient.SwarmJoin(ctx, req) if err != nil { return err } - info, err := client.Info(ctx) + info, err := apiClient.Info(ctx) if err != nil { return err } if info.Swarm.ControlAvailable { - fmt.Fprintln(dockerCli.Out(), "This node joined a swarm as a manager.") + _, _ = fmt.Fprintln(dockerCLI.Out(), "This node joined a swarm as a manager.") } else { - fmt.Fprintln(dockerCli.Out(), "This node joined a swarm as a worker.") + _, _ = fmt.Fprintln(dockerCLI.Out(), "This node joined a swarm as a worker.") } return nil } diff --git a/cli/command/swarm/leave.go b/cli/command/swarm/leave.go index 9d7385215825..28c8d603aa60 100644 --- a/cli/command/swarm/leave.go +++ b/cli/command/swarm/leave.go @@ -36,13 +36,13 @@ func newLeaveCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runLeave(ctx context.Context, dockerCli command.Cli, opts leaveOptions) error { - client := dockerCli.Client() +func runLeave(ctx context.Context, dockerCLI command.Cli, opts leaveOptions) error { + apiClient := dockerCLI.Client() - if err := client.SwarmLeave(ctx, opts.force); err != nil { + if err := apiClient.SwarmLeave(ctx, opts.force); err != nil { return err } - fmt.Fprintln(dockerCli.Out(), "Node left the swarm.") + _, _ = fmt.Fprintln(dockerCLI.Out(), "Node left the swarm.") return nil } diff --git a/cli/command/swarm/unlock.go b/cli/command/swarm/unlock.go index a230a9525b1e..ba60f641e41b 100644 --- a/cli/command/swarm/unlock.go +++ b/cli/command/swarm/unlock.go @@ -35,12 +35,12 @@ func newUnlockCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runUnlock(ctx context.Context, dockerCli command.Cli) error { - client := dockerCli.Client() +func runUnlock(ctx context.Context, dockerCLI command.Cli) error { + apiClient := dockerCLI.Client() // First see if the node is actually part of a swarm, and if it is actually locked first. // If it's in any other state than locked, don't ask for the key. - info, err := client.Info(ctx) + info, err := apiClient.Info(ctx) if err != nil { return err } @@ -54,12 +54,12 @@ func runUnlock(ctx context.Context, dockerCli command.Cli) error { return errors.New("Error: swarm is not locked") } - key, err := readKey(dockerCli.In(), "Enter unlock key: ") + key, err := readKey(dockerCLI.In(), "Enter unlock key: ") if err != nil { return err } - return client.SwarmUnlock(ctx, swarm.UnlockRequest{ + return apiClient.SwarmUnlock(ctx, swarm.UnlockRequest{ UnlockKey: key, }) } diff --git a/cli/command/swarm/update.go b/cli/command/swarm/update.go index 6514065302c1..53413d4a6f9d 100644 --- a/cli/command/swarm/update.go +++ b/cli/command/swarm/update.go @@ -41,12 +41,12 @@ func newUpdateCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runUpdate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, opts swarmOptions) error { - client := dockerCli.Client() +func runUpdate(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, opts swarmOptions) error { + apiClient := dockerCLI.Client() var updateFlags swarm.UpdateFlags - swarmInspect, err := client.SwarmInspect(ctx) + swarmInspect, err := apiClient.SwarmInspect(ctx) if err != nil { return err } @@ -57,19 +57,19 @@ func runUpdate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, curAutoLock := swarmInspect.Spec.EncryptionConfig.AutoLockManagers - err = client.SwarmUpdate(ctx, swarmInspect.Version, swarmInspect.Spec, updateFlags) + err = apiClient.SwarmUpdate(ctx, swarmInspect.Version, swarmInspect.Spec, updateFlags) if err != nil { return err } - fmt.Fprintln(dockerCli.Out(), "Swarm updated.") + _, _ = fmt.Fprintln(dockerCLI.Out(), "Swarm updated.") if curAutoLock && !prevAutoLock { - unlockKeyResp, err := client.SwarmGetUnlockKey(ctx) + unlockKeyResp, err := apiClient.SwarmGetUnlockKey(ctx) if err != nil { return errors.Wrap(err, "could not fetch unlock key") } - printUnlockCommand(dockerCli.Out(), unlockKeyResp.UnlockKey) + printUnlockCommand(dockerCLI.Out(), unlockKeyResp.UnlockKey) } return nil diff --git a/cli/command/system/events.go b/cli/command/system/events.go index a772cbd9d47e..9ba72526f84a 100644 --- a/cli/command/system/events.go +++ b/cli/command/system/events.go @@ -55,7 +55,7 @@ func newEventsCommand(dockerCLI command.Cli) *cobra.Command { return cmd } -func runEvents(ctx context.Context, dockerCli command.Cli, options *eventsOptions) error { +func runEvents(ctx context.Context, dockerCLI command.Cli, options *eventsOptions) error { tmpl, err := makeTemplate(options.format) if err != nil { return cli.StatusError{ @@ -64,14 +64,14 @@ func runEvents(ctx context.Context, dockerCli command.Cli, options *eventsOption } } ctx, cancel := context.WithCancel(ctx) - evts, errs := dockerCli.Client().Events(ctx, events.ListOptions{ + evts, errs := dockerCLI.Client().Events(ctx, events.ListOptions{ Since: options.since, Until: options.until, Filters: options.filter.Value(), }) defer cancel() - out := dockerCli.Out() + out := dockerCLI.Out() for { select { diff --git a/cli/command/volume/inspect.go b/cli/command/volume/inspect.go index 1105a052068b..cc3abb72e8c3 100644 --- a/cli/command/volume/inspect.go +++ b/cli/command/volume/inspect.go @@ -38,13 +38,10 @@ func newInspectCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error { - client := dockerCli.Client() - - getVolFunc := func(name string) (any, []byte, error) { - i, err := client.VolumeInspect(ctx, name) +func runInspect(ctx context.Context, dockerCLI command.Cli, opts inspectOptions) error { + apiClient := dockerCLI.Client() + return inspect.Inspect(dockerCLI.Out(), opts.names, opts.format, func(name string) (any, []byte, error) { + i, err := apiClient.VolumeInspect(ctx, name) return i, nil, err - } - - return inspect.Inspect(dockerCli.Out(), opts.names, opts.format, getVolFunc) + }) } diff --git a/cli/command/volume/list.go b/cli/command/volume/list.go index 3860379cd6cb..f689e9a14d8e 100644 --- a/cli/command/volume/list.go +++ b/cli/command/volume/list.go @@ -51,17 +51,17 @@ func newListCommand(dockerCli command.Cli) *cobra.Command { return cmd } -func runList(ctx context.Context, dockerCli command.Cli, options listOptions) error { - client := dockerCli.Client() - volumes, err := client.VolumeList(ctx, volume.ListOptions{Filters: options.filter.Value()}) +func runList(ctx context.Context, dockerCLI command.Cli, options listOptions) error { + apiClient := dockerCLI.Client() + volumes, err := apiClient.VolumeList(ctx, volume.ListOptions{Filters: options.filter.Value()}) if err != nil { return err } format := options.format if len(format) == 0 && !options.cluster { - if len(dockerCli.ConfigFile().VolumesFormat) > 0 && !options.quiet { - format = dockerCli.ConfigFile().VolumesFormat + if len(dockerCLI.ConfigFile().VolumesFormat) > 0 && !options.quiet { + format = dockerCLI.ConfigFile().VolumesFormat } else { format = formatter.TableFormatKey } @@ -90,7 +90,7 @@ func runList(ctx context.Context, dockerCli command.Cli, options listOptions) er }) volumeCtx := formatter.Context{ - Output: dockerCli.Out(), + Output: dockerCLI.Out(), Format: formatter.NewVolumeFormat(format, options.quiet), } return formatter.VolumeWrite(volumeCtx, volumes.Volumes)