From 46d0ba20f17c59f3d2256ec2392fb94f3a211aa7 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 13 Oct 2023 20:34:32 +0200 Subject: [PATCH] vendor: github.com/docker/docker cdb3f9fb8dca (v25.0.0-dev) full diff: https://github.com/docker/docker/compare/d3afa80b96bf...cdb3f9fb8dca613a06643090dd9659a0ae46f144 Signed-off-by: Sebastiaan van Stijn --- cli/command/completion/functions.go | 3 +- cli/command/container/attach.go | 2 +- cli/command/container/client_test.go | 20 ++--- cli/command/container/commit.go | 13 +--- cli/command/container/list.go | 6 +- cli/command/container/list_test.go | 19 ++--- cli/command/container/logs.go | 7 +- cli/command/container/logs_test.go | 4 +- cli/command/container/rm.go | 20 +++-- cli/command/container/rm_test.go | 4 +- cli/command/container/run.go | 7 +- cli/command/container/start.go | 24 +++--- cli/command/container/stats.go | 13 ++-- cli/command/container/tty.go | 4 +- cli/command/container/tty_test.go | 4 +- cli/command/container/utils.go | 2 +- cli/command/formatter/disk_usage.go | 5 +- cli/command/formatter/image.go | 17 ++--- cli/command/formatter/image_test.go | 32 ++++---- cli/command/image/client_test.go | 16 ++-- cli/command/image/list_test.go | 17 +++-- cli/command/image/prune_test.go | 5 +- cli/command/image/remove_test.go | 41 ++++++----- cli/command/service/client_test.go | 6 +- cli/command/service/logs.go | 39 +++++----- cli/command/service/rollback_test.go | 12 +-- cli/command/stack/client_test.go | 6 +- cli/command/stack/swarm/client_test.go | 6 +- cli/command/stack/swarm/deploy_test.go | 4 +- vendor.mod | 2 +- vendor.sum | 4 +- .../github.com/docker/docker/api/swagger.yaml | 67 +++++++++++++---- .../docker/docker/api/types/client.go | 73 ------------------- .../docker/api/types/container/options.go | 67 +++++++++++++++++ .../delete_response.go} | 8 +- .../docker/docker/api/types/image/image.go | 9 +++ .../{image_summary.go => image/summary.go} | 8 +- .../docker/api/types/swarm/container.go | 43 ++++++++++- .../types/swarm/service_create_response.go | 20 +++++ .../{ => swarm}/service_update_response.go | 2 +- .../docker/docker/api/types/types.go | 13 +--- .../docker/api/types/types_deprecated.go | 66 +++++++++++++++++ .../github.com/docker/docker/client/client.go | 8 +- .../docker/docker/client/container_attach.go | 3 +- .../docker/docker/client/container_commit.go | 3 +- .../docker/docker/client/container_list.go | 3 +- .../docker/docker/client/container_logs.go | 4 +- .../docker/docker/client/container_remove.go | 4 +- .../docker/docker/client/container_resize.go | 6 +- .../docker/docker/client/container_start.go | 4 +- .../docker/docker/client/image_list.go | 5 +- .../docker/docker/client/image_remove.go | 5 +- .../docker/docker/client/interface.go | 28 +++---- .../docker/docker/client/service_create.go | 4 +- .../docker/docker/client/service_logs.go | 4 +- .../docker/docker/client/service_update.go | 4 +- .../docker/docker/client/task_logs.go | 4 +- .../docker/docker/pkg/archive/archive.go | 2 +- .../docker/docker/pkg/archive/changes.go | 2 +- .../docker/docker/pkg/archive/copy.go | 2 +- .../docker/docker/pkg/archive/diff.go | 2 +- .../github.com/docker/docker/registry/auth.go | 2 +- .../docker/docker/registry/config.go | 6 +- .../docker/docker/registry/registry.go | 2 +- .../docker/docker/registry/search.go | 2 +- .../docker/registry/search_endpoint_v1.go | 2 +- .../docker/docker/registry/search_session.go | 2 +- .../docker/docker/registry/service.go | 2 +- vendor/modules.txt | 2 +- 69 files changed, 511 insertions(+), 346 deletions(-) create mode 100644 vendor/github.com/docker/docker/api/types/container/options.go rename vendor/github.com/docker/docker/api/types/{image_delete_response_item.go => image/delete_response.go} (68%) create mode 100644 vendor/github.com/docker/docker/api/types/image/image.go rename vendor/github.com/docker/docker/api/types/{image_summary.go => image/summary.go} (96%) create mode 100644 vendor/github.com/docker/docker/api/types/swarm/service_create_response.go rename vendor/github.com/docker/docker/api/types/{ => swarm}/service_update_response.go (95%) diff --git a/cli/command/completion/functions.go b/cli/command/completion/functions.go index 40f0b52632d4..7a53ede243f9 100644 --- a/cli/command/completion/functions.go +++ b/cli/command/completion/functions.go @@ -6,6 +6,7 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/formatter" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/volume" "github.com/spf13/cobra" ) @@ -33,7 +34,7 @@ func ImageNames(dockerCli command.Cli) ValidArgsFn { // Set DOCKER_COMPLETION_SHOW_CONTAINER_IDS=yes to also complete IDs. func ContainerNames(dockerCli command.Cli, all bool, filters ...func(types.Container) bool) ValidArgsFn { return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { - list, err := dockerCli.Client().ContainerList(cmd.Context(), types.ContainerListOptions{ + list, err := dockerCli.Client().ContainerList(cmd.Context(), container.ListOptions{ All: all, }) if err != nil { diff --git a/cli/command/container/attach.go b/cli/command/container/attach.go index 4785434c91db..b834197552f2 100644 --- a/cli/command/container/attach.go +++ b/cli/command/container/attach.go @@ -91,7 +91,7 @@ func runAttach(dockerCli command.Cli, opts *attachOptions) error { detachKeys = opts.detachKeys } - options := types.ContainerAttachOptions{ + options := container.AttachOptions{ Stream: true, Stdin: !opts.noStdin && c.Config.OpenStdin, Stdout: true, diff --git a/cli/command/container/client_test.go b/cli/command/container/client_test.go index 43f83b0f9653..b650aece7d8b 100644 --- a/cli/command/container/client_test.go +++ b/cli/command/container/client_test.go @@ -22,22 +22,22 @@ type fakeClient struct { networkingConfig *network.NetworkingConfig, platform *specs.Platform, containerName string) (container.CreateResponse, error) - containerStartFunc func(container string, options types.ContainerStartOptions) error + containerStartFunc func(container string, options container.StartOptions) error imageCreateFunc func(parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) infoFunc func() (system.Info, error) containerStatPathFunc func(container, path string) (types.ContainerPathStat, error) containerCopyFromFunc func(container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) - logFunc func(string, types.ContainerLogsOptions) (io.ReadCloser, error) + logFunc func(string, container.LogsOptions) (io.ReadCloser, error) waitFunc func(string) (<-chan container.WaitResponse, <-chan error) - containerListFunc func(types.ContainerListOptions) ([]types.Container, error) + containerListFunc func(container.ListOptions) ([]types.Container, error) containerExportFunc func(string) (io.ReadCloser, error) - containerExecResizeFunc func(id string, options types.ResizeOptions) error - containerRemoveFunc func(ctx context.Context, container string, options types.ContainerRemoveOptions) error + containerExecResizeFunc func(id string, options container.ResizeOptions) error + containerRemoveFunc func(ctx context.Context, container string, options container.RemoveOptions) error containerKillFunc func(ctx context.Context, container, signal string) error Version string } -func (f *fakeClient) ContainerList(_ context.Context, options types.ContainerListOptions) ([]types.Container, error) { +func (f *fakeClient) ContainerList(_ context.Context, options container.ListOptions) ([]types.Container, error) { if f.containerListFunc != nil { return f.containerListFunc(options) } @@ -83,7 +83,7 @@ func (f *fakeClient) ContainerCreate( return container.CreateResponse{}, nil } -func (f *fakeClient) ContainerRemove(ctx context.Context, container string, options types.ContainerRemoveOptions) error { +func (f *fakeClient) ContainerRemove(ctx context.Context, container string, options container.RemoveOptions) error { if f.containerRemoveFunc != nil { return f.containerRemoveFunc(ctx, container, options) } @@ -118,7 +118,7 @@ func (f *fakeClient) CopyFromContainer(_ context.Context, container, srcPath str return nil, types.ContainerPathStat{}, nil } -func (f *fakeClient) ContainerLogs(_ context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) { +func (f *fakeClient) ContainerLogs(_ context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) { if f.logFunc != nil { return f.logFunc(container, options) } @@ -136,7 +136,7 @@ func (f *fakeClient) ContainerWait(_ context.Context, container string, _ contai return nil, nil } -func (f *fakeClient) ContainerStart(_ context.Context, container string, options types.ContainerStartOptions) error { +func (f *fakeClient) ContainerStart(_ context.Context, container string, options container.StartOptions) error { if f.containerStartFunc != nil { return f.containerStartFunc(container, options) } @@ -150,7 +150,7 @@ func (f *fakeClient) ContainerExport(_ context.Context, container string) (io.Re return nil, nil } -func (f *fakeClient) ContainerExecResize(_ context.Context, id string, options types.ResizeOptions) error { +func (f *fakeClient) ContainerExecResize(_ context.Context, id string, options container.ResizeOptions) error { if f.containerExecResizeFunc != nil { return f.containerExecResizeFunc(id, options) } diff --git a/cli/command/container/commit.go b/cli/command/container/commit.go index 39b8db9a5f41..26171656d155 100644 --- a/cli/command/container/commit.go +++ b/cli/command/container/commit.go @@ -8,7 +8,7 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/completion" "github.com/docker/cli/opts" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/spf13/cobra" ) @@ -59,18 +59,13 @@ func NewCommitCommand(dockerCli command.Cli) *cobra.Command { func runCommit(dockerCli command.Cli, options *commitOptions) error { ctx := context.Background() - name := options.container - reference := options.reference - - commitOptions := types.ContainerCommitOptions{ - Reference: reference, + response, err := dockerCli.Client().ContainerCommit(ctx, options.container, container.CommitOptions{ + Reference: options.reference, Comment: options.comment, Author: options.author, Changes: options.changes.GetAll(), Pause: options.pause, - } - - response, err := dockerCli.Client().ContainerCommit(ctx, name, commitOptions) + }) if err != nil { return err } diff --git a/cli/command/container/list.go b/cli/command/container/list.go index 471e4e1c41b1..5f0f40be6f90 100644 --- a/cli/command/container/list.go +++ b/cli/command/container/list.go @@ -11,7 +11,7 @@ import ( flagsHelper "github.com/docker/cli/cli/flags" "github.com/docker/cli/opts" "github.com/docker/cli/templates" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/pkg/errors" "github.com/spf13/cobra" ) @@ -68,8 +68,8 @@ func newListCommand(dockerCli command.Cli) *cobra.Command { return &cmd } -func buildContainerListOptions(opts *psOptions) (*types.ContainerListOptions, error) { - options := &types.ContainerListOptions{ +func buildContainerListOptions(opts *psOptions) (*container.ListOptions, error) { + options := &container.ListOptions{ All: opts.all, Limit: opts.last, Size: opts.size, diff --git a/cli/command/container/list_test.go b/cli/command/container/list_test.go index a0078377511e..37394d6bb34c 100644 --- a/cli/command/container/list_test.go +++ b/cli/command/container/list_test.go @@ -10,6 +10,7 @@ import ( . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function "github.com/docker/cli/opts" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" "gotest.tools/v3/golden" @@ -129,7 +130,7 @@ func TestContainerListErrors(t *testing.T) { testCases := []struct { args []string flags map[string]string - containerListFunc func(types.ContainerListOptions) ([]types.Container, error) + containerListFunc func(container.ListOptions) ([]types.Container, error) expectedError string }{ { @@ -145,7 +146,7 @@ func TestContainerListErrors(t *testing.T) { expectedError: `wrong number of args for join`, }, { - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return nil, fmt.Errorf("error listing containers") }, expectedError: "error listing containers", @@ -168,7 +169,7 @@ func TestContainerListErrors(t *testing.T) { func TestContainerListWithoutFormat(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1"), *Container("c2", WithName("foo")), @@ -185,7 +186,7 @@ func TestContainerListWithoutFormat(t *testing.T) { func TestContainerListNoTrunc(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1"), *Container("c2", WithName("foo/bar")), @@ -201,7 +202,7 @@ func TestContainerListNoTrunc(t *testing.T) { // Test for GitHub issue docker/docker#21772 func TestContainerListNamesMultipleTime(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1"), *Container("c2", WithName("foo/bar")), @@ -217,7 +218,7 @@ func TestContainerListNamesMultipleTime(t *testing.T) { // Test for GitHub issue docker/docker#30291 func TestContainerListFormatTemplateWithArg(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1", WithLabel("some.label", "value")), *Container("c2", WithName("foo/bar"), WithLabel("foo", "bar")), @@ -268,7 +269,7 @@ func TestContainerListFormatSizeSetsOption(t *testing.T) { tc := tc t.Run(tc.doc, func(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(options types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(options container.ListOptions) ([]types.Container, error) { assert.Check(t, is.Equal(options.Size, tc.sizeExpected)) return []types.Container{}, nil }, @@ -285,7 +286,7 @@ func TestContainerListFormatSizeSetsOption(t *testing.T) { func TestContainerListWithConfigFormat(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1", WithLabel("some.label", "value"), WithSize(10700000)), *Container("c2", WithName("foo/bar"), WithLabel("foo", "bar"), WithSize(3200000)), @@ -302,7 +303,7 @@ func TestContainerListWithConfigFormat(t *testing.T) { func TestContainerListWithFormat(t *testing.T) { cli := test.NewFakeCli(&fakeClient{ - containerListFunc: func(_ types.ContainerListOptions) ([]types.Container, error) { + containerListFunc: func(_ container.ListOptions) ([]types.Container, error) { return []types.Container{ *Container("c1", WithLabel("some.label", "value")), *Container("c2", WithName("foo/bar"), WithLabel("foo", "bar")), diff --git a/cli/command/container/logs.go b/cli/command/container/logs.go index 0fd7cfd0cc6b..5855529e0aaf 100644 --- a/cli/command/container/logs.go +++ b/cli/command/container/logs.go @@ -7,7 +7,7 @@ import ( "github.com/docker/cli/cli" "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/completion" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/stdcopy" "github.com/spf13/cobra" ) @@ -60,7 +60,7 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { return err } - options := types.ContainerLogsOptions{ + responseBody, err := dockerCli.Client().ContainerLogs(ctx, c.ID, container.LogsOptions{ ShowStdout: true, ShowStderr: true, Since: opts.since, @@ -69,8 +69,7 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { Follow: opts.follow, Tail: opts.tail, Details: opts.details, - } - responseBody, err := dockerCli.Client().ContainerLogs(ctx, c.ID, options) + }) if err != nil { return err } diff --git a/cli/command/container/logs_test.go b/cli/command/container/logs_test.go index 14efb0341cbc..d615badd96ed 100644 --- a/cli/command/container/logs_test.go +++ b/cli/command/container/logs_test.go @@ -12,8 +12,8 @@ import ( is "gotest.tools/v3/assert/cmp" ) -var logFn = func(expectedOut string) func(string, types.ContainerLogsOptions) (io.ReadCloser, error) { - return func(container string, opts types.ContainerLogsOptions) (io.ReadCloser, error) { +var logFn = func(expectedOut string) func(string, container.LogsOptions) (io.ReadCloser, error) { + return func(container string, opts container.LogsOptions) (io.ReadCloser, error) { return io.NopCloser(strings.NewReader(expectedOut)), nil } } diff --git a/cli/command/container/rm.go b/cli/command/container/rm.go index 70a78e84fb0a..a06c0769029d 100644 --- a/cli/command/container/rm.go +++ b/cli/command/container/rm.go @@ -8,7 +8,7 @@ import ( "github.com/docker/cli/cli" "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/completion" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/errdefs" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -52,18 +52,16 @@ func runRm(dockerCli command.Cli, opts *rmOptions) error { ctx := context.Background() var errs []string - options := types.ContainerRemoveOptions{ - RemoveVolumes: opts.rmVolumes, - RemoveLinks: opts.rmLink, - Force: opts.force, - } - - errChan := parallelOperation(ctx, opts.containers, func(ctx context.Context, container string) error { - container = strings.Trim(container, "/") - if container == "" { + errChan := parallelOperation(ctx, opts.containers, func(ctx context.Context, ctrID string) error { + ctrID = strings.Trim(ctrID, "/") + if ctrID == "" { return errors.New("Container name cannot be empty") } - return dockerCli.Client().ContainerRemove(ctx, container, options) + return dockerCli.Client().ContainerRemove(ctx, ctrID, container.RemoveOptions{ + RemoveVolumes: opts.rmVolumes, + RemoveLinks: opts.rmLink, + Force: opts.force, + }) }) for _, name := range opts.containers { diff --git a/cli/command/container/rm_test.go b/cli/command/container/rm_test.go index 7ab83dd2c907..3f36e890d50b 100644 --- a/cli/command/container/rm_test.go +++ b/cli/command/container/rm_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/docker/cli/internal/test" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/errdefs" "gotest.tools/v3/assert" ) @@ -29,7 +29,7 @@ func TestRemoveForce(t *testing.T) { mutex := new(sync.Mutex) cli := test.NewFakeCli(&fakeClient{ - containerRemoveFunc: func(ctx context.Context, container string, options types.ContainerRemoveOptions) error { + containerRemoveFunc: func(ctx context.Context, container string, options container.RemoveOptions) error { // containerRemoveFunc is called in parallel for each container // by the remove command so append must be synchronized. mutex.Lock() diff --git a/cli/command/container/run.go b/cli/command/container/run.go index 9d0e3d742d05..338467959610 100644 --- a/cli/command/container/run.go +++ b/cli/command/container/run.go @@ -12,7 +12,6 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/completion" "github.com/docker/cli/opts" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/moby/sys/signal" "github.com/moby/term" @@ -174,7 +173,7 @@ func runContainer(dockerCli command.Cli, opts *runOptions, copts *containerOptio detachKeys = opts.detachKeys } - closeFn, err := attachContainer(ctx, dockerCli, containerID, &errCh, config, types.ContainerAttachOptions{ + closeFn, err := attachContainer(ctx, dockerCli, containerID, &errCh, config, container.AttachOptions{ Stream: true, Stdin: config.AttachStdin, Stdout: config.AttachStdout, @@ -190,7 +189,7 @@ func runContainer(dockerCli command.Cli, opts *runOptions, copts *containerOptio statusChan := waitExitOrRemoved(ctx, dockerCli.Client(), containerID, copts.autoRemove) // start the container - if err := client.ContainerStart(ctx, containerID, types.ContainerStartOptions{}); err != nil { + if err := client.ContainerStart(ctx, containerID, container.StartOptions{}); err != nil { // If we have hijackedIOStreamer, we should notify // hijackedIOStreamer we are going to exit and wait // to avoid the terminal are not restored. @@ -239,7 +238,7 @@ func runContainer(dockerCli command.Cli, opts *runOptions, copts *containerOptio return nil } -func attachContainer(ctx context.Context, dockerCli command.Cli, containerID string, errCh *chan error, config *container.Config, options types.ContainerAttachOptions) (func(), error) { +func attachContainer(ctx context.Context, dockerCli command.Cli, containerID string, errCh *chan error, config *container.Config, options container.AttachOptions) (func(), error) { resp, errAttach := dockerCli.Client().ContainerAttach(ctx, containerID, options) if errAttach != nil { return nil, errAttach diff --git a/cli/command/container/start.go b/cli/command/container/start.go index febe0b8fc93a..c7c1a9ec4e7d 100644 --- a/cli/command/container/start.go +++ b/cli/command/container/start.go @@ -10,6 +10,7 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/completion" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/moby/sys/signal" "github.com/moby/term" "github.com/pkg/errors" @@ -83,8 +84,8 @@ func RunStart(dockerCli command.Cli, opts *StartOptions) error { } // 2. Attach to the container. - container := opts.Containers[0] - c, err := dockerCli.Client().ContainerInspect(ctx, container) + ctr := opts.Containers[0] + c, err := dockerCli.Client().ContainerInspect(ctx, ctr) if err != nil { return err } @@ -101,7 +102,7 @@ func RunStart(dockerCli command.Cli, opts *StartOptions) error { detachKeys = opts.DetachKeys } - options := types.ContainerAttachOptions{ + options := container.AttachOptions{ Stream: true, Stdin: opts.OpenStdin && c.Config.OpenStdin, Stdout: true, @@ -148,7 +149,7 @@ func RunStart(dockerCli command.Cli, opts *StartOptions) error { statusChan := waitExitOrRemoved(ctx, dockerCli.Client(), c.ID, c.HostConfig.AutoRemove) // 4. Start the container. - err = dockerCli.Client().ContainerStart(ctx, c.ID, types.ContainerStartOptions{ + err = dockerCli.Client().ContainerStart(ctx, c.ID, container.StartOptions{ CheckpointID: opts.Checkpoint, CheckpointDir: opts.CheckpointDir, }) @@ -183,12 +184,11 @@ func RunStart(dockerCli command.Cli, opts *StartOptions) error { if len(opts.Containers) > 1 { return errors.New("you cannot restore multiple containers at once") } - container := opts.Containers[0] - startOptions := types.ContainerStartOptions{ + ctr := opts.Containers[0] + return dockerCli.Client().ContainerStart(ctx, ctr, container.StartOptions{ CheckpointID: opts.Checkpoint, CheckpointDir: opts.CheckpointDir, - } - return dockerCli.Client().ContainerStart(ctx, container, startOptions) + }) } else { // We're not going to attach to anything. @@ -201,13 +201,13 @@ func RunStart(dockerCli command.Cli, opts *StartOptions) error { func startContainersWithoutAttachments(ctx context.Context, dockerCli command.Cli, containers []string) error { var failedContainers []string - for _, container := range containers { - if err := dockerCli.Client().ContainerStart(ctx, container, types.ContainerStartOptions{}); err != nil { + for _, ctr := range containers { + if err := dockerCli.Client().ContainerStart(ctx, ctr, container.StartOptions{}); err != nil { fmt.Fprintln(dockerCli.Err(), err) - failedContainers = append(failedContainers, container) + failedContainers = append(failedContainers, ctr) continue } - fmt.Fprintln(dockerCli.Out(), container) + fmt.Fprintln(dockerCli.Out(), ctr) } if len(failedContainers) > 0 { diff --git a/cli/command/container/stats.go b/cli/command/container/stats.go index bf4785876fe5..cd5f9038ac03 100644 --- a/cli/command/container/stats.go +++ b/cli/command/container/stats.go @@ -14,6 +14,7 @@ import ( "github.com/docker/cli/cli/command/formatter" flagsHelper "github.com/docker/cli/cli/flags" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/events" "github.com/docker/docker/api/types/filters" "github.com/pkg/errors" @@ -110,15 +111,15 @@ func runStats(dockerCli command.Cli, opts *statsOptions) error { // getContainerList simulates creation event for all previously existing // containers (only used when calling `docker stats` without arguments). getContainerList := func() { - options := types.ContainerListOptions{ + options := container.ListOptions{ All: opts.all, } cs, err := dockerCli.Client().ContainerList(ctx, options) if err != nil { closeChan <- err } - for _, container := range cs { - s := NewStats(container.ID[:12]) + for _, ctr := range cs { + s := NewStats(ctr.ID[:12]) if cStats.add(s) { waitFirst.Add(1) go collect(ctx, s, dockerCli.Client(), !opts.noStream, waitFirst) @@ -135,7 +136,7 @@ func runStats(dockerCli command.Cli, opts *statsOptions) error { eh := command.InitEventHandler() eh.Handle(events.ActionCreate, func(e events.Message) { if opts.all { - s := NewStats(e.ID[:12]) + s := NewStats(e.Actor.ID[:12]) if cStats.add(s) { waitFirst.Add(1) go collect(ctx, s, dockerCli.Client(), !opts.noStream, waitFirst) @@ -144,7 +145,7 @@ func runStats(dockerCli command.Cli, opts *statsOptions) error { }) eh.Handle(events.ActionStart, func(e events.Message) { - s := NewStats(e.ID[:12]) + s := NewStats(e.Actor.ID[:12]) if cStats.add(s) { waitFirst.Add(1) go collect(ctx, s, dockerCli.Client(), !opts.noStream, waitFirst) @@ -153,7 +154,7 @@ func runStats(dockerCli command.Cli, opts *statsOptions) error { eh.Handle(events.ActionDie, func(e events.Message) { if !opts.all { - cStats.remove(e.ID[:12]) + cStats.remove(e.Actor.ID[:12]) } }) diff --git a/cli/command/container/tty.go b/cli/command/container/tty.go index 1d287b0068f0..a3fe9baf4123 100644 --- a/cli/command/container/tty.go +++ b/cli/command/container/tty.go @@ -9,7 +9,7 @@ import ( "time" "github.com/docker/cli/cli/command" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "github.com/moby/sys/signal" "github.com/sirupsen/logrus" @@ -21,7 +21,7 @@ func resizeTtyTo(ctx context.Context, client client.ContainerAPIClient, id strin return nil } - options := types.ResizeOptions{ + options := container.ResizeOptions{ Height: height, Width: width, } diff --git a/cli/command/container/tty_test.go b/cli/command/container/tty_test.go index dc5a5a46deaa..c90d9417a70a 100644 --- a/cli/command/container/tty_test.go +++ b/cli/command/container/tty_test.go @@ -7,7 +7,7 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/internal/test" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/pkg/errors" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -15,7 +15,7 @@ import ( func TestInitTtySizeErrors(t *testing.T) { expectedError := "failed to resize tty, using default size\n" - fakeContainerExecResizeFunc := func(id string, options types.ResizeOptions) error { + fakeContainerExecResizeFunc := func(id string, options container.ResizeOptions) error { return errors.Errorf("Error response from daemon: no such exec") } fakeResizeTtyFunc := func(ctx context.Context, cli command.Cli, id string, isExec bool) error { diff --git a/cli/command/container/utils.go b/cli/command/container/utils.go index 0989c10b10f1..bbe9724f9652 100644 --- a/cli/command/container/utils.go +++ b/cli/command/container/utils.go @@ -86,7 +86,7 @@ func legacyWaitExitOrRemoved(ctx context.Context, apiClient client.APIClient, co // We need to fall back to the old behavior, which is client-side removal if versions.LessThan(apiClient.ClientVersion(), "1.25") { go func() { - removeErr = apiClient.ContainerRemove(ctx, containerID, types.ContainerRemoveOptions{RemoveVolumes: true}) + removeErr = apiClient.ContainerRemove(ctx, containerID, container.RemoveOptions{RemoveVolumes: true}) if removeErr != nil { logrus.Errorf("error removing container: %v", removeErr) cancel() // cancel the event Q diff --git a/cli/command/formatter/disk_usage.go b/cli/command/formatter/disk_usage.go index 1bba9a4bdda3..d91df2fc55fe 100644 --- a/cli/command/formatter/disk_usage.go +++ b/cli/command/formatter/disk_usage.go @@ -9,6 +9,7 @@ import ( "github.com/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/api/types/volume" units "github.com/docker/go-units" ) @@ -34,7 +35,7 @@ type DiskUsageContext struct { Context Verbose bool LayersSize int64 - Images []*types.ImageSummary + Images []*image.Summary Containers []*types.Container Volumes []*volume.Volume BuildCache []*types.BuildCache @@ -261,7 +262,7 @@ func (ctx *DiskUsageContext) verboseWriteTable(duc *diskUsageContext) error { type diskUsageImagesContext struct { HeaderContext totalSize int64 - images []*types.ImageSummary + images []*image.Summary } func (c *diskUsageImagesContext) MarshalJSON() ([]byte, error) { diff --git a/cli/command/formatter/image.go b/cli/command/formatter/image.go index 3cfef119d1ed..c7eeb1e39c10 100644 --- a/cli/command/formatter/image.go +++ b/cli/command/formatter/image.go @@ -5,7 +5,7 @@ import ( "time" "github.com/distribution/reference" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/pkg/stringid" units "github.com/docker/go-units" ) @@ -26,7 +26,7 @@ type ImageContext struct { Digest bool } -func isDangling(image types.ImageSummary) bool { +func isDangling(image image.Summary) bool { if len(image.RepoTags) == 0 && len(image.RepoDigests) == 0 { return true } @@ -75,7 +75,7 @@ virtual_size: {{.Size}} } // ImageWrite writes the formatter images using the ImageContext -func ImageWrite(ctx ImageContext, images []types.ImageSummary) error { +func ImageWrite(ctx ImageContext, images []image.Summary) error { render := func(format func(subContext SubContext) error) error { return imageFormat(ctx, images, format) } @@ -87,7 +87,7 @@ func needDigest(ctx ImageContext) bool { return ctx.Digest || ctx.Format.Contains("{{.Digest}}") } -func imageFormat(ctx ImageContext, images []types.ImageSummary, format func(subContext SubContext) error) error { +func imageFormat(ctx ImageContext, images []image.Summary, format func(subContext SubContext) error) error { for _, image := range images { formatted := []*imageContext{} if isDangling(image) { @@ -110,7 +110,7 @@ func imageFormat(ctx ImageContext, images []types.ImageSummary, format func(subC return nil } -func imageFormatTaggedAndDigest(ctx ImageContext, image types.ImageSummary) []*imageContext { +func imageFormatTaggedAndDigest(ctx ImageContext, image image.Summary) []*imageContext { repoTags := map[string][]string{} repoDigests := map[string][]string{} images := []*imageContext{} @@ -137,14 +137,13 @@ func imageFormatTaggedAndDigest(ctx ImageContext, image types.ImageSummary) []*i } addImage := func(repo, tag, digest string) { - image := &imageContext{ + images = append(images, &imageContext{ trunc: ctx.Trunc, i: image, repo: repo, tag: tag, digest: digest, - } - images = append(images, image) + }) } for repo, tags := range repoTags { @@ -188,7 +187,7 @@ func imageFormatTaggedAndDigest(ctx ImageContext, image types.ImageSummary) []*i type imageContext struct { HeaderContext trunc bool - i types.ImageSummary + i image.Summary repo string tag string digest string diff --git a/cli/command/formatter/image_test.go b/cli/command/formatter/image_test.go index ef1e62cb2aff..36a17f147f13 100644 --- a/cli/command/formatter/image_test.go +++ b/cli/command/formatter/image_test.go @@ -8,7 +8,7 @@ import ( "time" "github.com/docker/cli/internal/test" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/pkg/stringid" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -26,66 +26,66 @@ func TestImageContext(t *testing.T) { call func() string }{ { - imageCtx: imageContext{i: types.ImageSummary{ID: imageID}, trunc: true}, + imageCtx: imageContext{i: image.Summary{ID: imageID}, trunc: true}, expValue: stringid.TruncateID(imageID), call: ctx.ID, }, { - imageCtx: imageContext{i: types.ImageSummary{ID: imageID}, trunc: false}, + imageCtx: imageContext{i: image.Summary{ID: imageID}, trunc: false}, expValue: imageID, call: ctx.ID, }, { - imageCtx: imageContext{i: types.ImageSummary{Size: 10}, trunc: true}, + imageCtx: imageContext{i: image.Summary{Size: 10}, trunc: true}, expValue: "10B", call: ctx.Size, }, { - imageCtx: imageContext{i: types.ImageSummary{Created: unix}, trunc: true}, + imageCtx: imageContext{i: image.Summary{Created: unix}, trunc: true}, expValue: time.Unix(unix, 0).String(), call: ctx.CreatedAt, }, // FIXME // {imageContext{ - // i: types.ImageSummary{Created: unix}, + // i: image.Summary{Created: unix}, // trunc: true, // }, units.HumanDuration(time.Unix(unix, 0)), createdSinceHeader, ctx.CreatedSince}, { - imageCtx: imageContext{i: types.ImageSummary{}, repo: "busybox"}, + imageCtx: imageContext{i: image.Summary{}, repo: "busybox"}, expValue: "busybox", call: ctx.Repository, }, { - imageCtx: imageContext{i: types.ImageSummary{}, tag: "latest"}, + imageCtx: imageContext{i: image.Summary{}, tag: "latest"}, expValue: "latest", call: ctx.Tag, }, { - imageCtx: imageContext{i: types.ImageSummary{}, digest: "sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d850b2a2a67f2819a"}, + imageCtx: imageContext{i: image.Summary{}, digest: "sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d850b2a2a67f2819a"}, expValue: "sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d850b2a2a67f2819a", call: ctx.Digest, }, { - imageCtx: imageContext{i: types.ImageSummary{Containers: 10}}, + imageCtx: imageContext{i: image.Summary{Containers: 10}}, expValue: "10", call: ctx.Containers, }, { - imageCtx: imageContext{i: types.ImageSummary{Size: 10000}}, + imageCtx: imageContext{i: image.Summary{Size: 10000}}, expValue: "10kB", call: ctx.VirtualSize, //nolint:staticcheck // ignore SA1019: field is deprecated, but still set on API < v1.44. }, { - imageCtx: imageContext{i: types.ImageSummary{SharedSize: 10000}}, + imageCtx: imageContext{i: image.Summary{SharedSize: 10000}}, expValue: "10kB", call: ctx.SharedSize, }, { - imageCtx: imageContext{i: types.ImageSummary{SharedSize: 5000, Size: 20000}}, + imageCtx: imageContext{i: image.Summary{SharedSize: 5000, Size: 20000}}, expValue: "15kB", call: ctx.UniqueSize, }, { - imageCtx: imageContext{i: types.ImageSummary{Created: zeroTime}}, + imageCtx: imageContext{i: image.Summary{Created: zeroTime}}, expValue: "", call: ctx.CreatedSince, }, @@ -297,7 +297,7 @@ image_id: imageID3 }, } - images := []types.ImageSummary{ + images := []image.Summary{ {ID: "imageID1", RepoTags: []string{"image:tag1"}, RepoDigests: []string{"image@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"}, Created: unixTime}, {ID: "imageID2", RepoTags: []string{"image:tag2"}, Created: zeroTime}, {ID: "imageID3", RepoTags: []string{":"}, RepoDigests: []string{"@"}, Created: unixTime}, @@ -320,7 +320,7 @@ image_id: imageID3 func TestImageContextWriteWithNoImage(t *testing.T) { out := bytes.NewBufferString("") - images := []types.ImageSummary{} + images := []image.Summary{} cases := []struct { context ImageContext diff --git a/cli/command/image/client_test.go b/cli/command/image/client_test.go index 4e1fd3abe93e..85b31b79b374 100644 --- a/cli/command/image/client_test.go +++ b/cli/command/image/client_test.go @@ -17,13 +17,13 @@ type fakeClient struct { client.Client imageTagFunc func(string, string) error imageSaveFunc func(images []string) (io.ReadCloser, error) - imageRemoveFunc func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) + imageRemoveFunc func(image string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) imagePushFunc func(ref string, options types.ImagePushOptions) (io.ReadCloser, error) infoFunc func() (system.Info, error) imagePullFunc func(ref string, options types.ImagePullOptions) (io.ReadCloser, error) imagesPruneFunc func(pruneFilter filters.Args) (types.ImagesPruneReport, error) imageLoadFunc func(input io.Reader, quiet bool) (types.ImageLoadResponse, error) - imageListFunc func(options types.ImageListOptions) ([]types.ImageSummary, error) + imageListFunc func(options types.ImageListOptions) ([]image.Summary, error) imageInspectFunc func(image string) (types.ImageInspect, []byte, error) imageImportFunc func(source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) imageHistoryFunc func(image string) ([]image.HistoryResponseItem, error) @@ -44,13 +44,13 @@ func (cli *fakeClient) ImageSave(_ context.Context, images []string) (io.ReadClo return io.NopCloser(strings.NewReader("")), nil } -func (cli *fakeClient) ImageRemove(_ context.Context, image string, +func (cli *fakeClient) ImageRemove(_ context.Context, img string, options types.ImageRemoveOptions, -) ([]types.ImageDeleteResponseItem, error) { +) ([]image.DeleteResponse, error) { if cli.imageRemoveFunc != nil { - return cli.imageRemoveFunc(image, options) + return cli.imageRemoveFunc(img, options) } - return []types.ImageDeleteResponseItem{}, nil + return []image.DeleteResponse{}, nil } func (cli *fakeClient) ImagePush(_ context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) { @@ -88,11 +88,11 @@ func (cli *fakeClient) ImageLoad(_ context.Context, input io.Reader, quiet bool) return types.ImageLoadResponse{}, nil } -func (cli *fakeClient) ImageList(_ context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) { +func (cli *fakeClient) ImageList(_ context.Context, options types.ImageListOptions) ([]image.Summary, error) { if cli.imageListFunc != nil { return cli.imageListFunc(options) } - return []types.ImageSummary{}, nil + return []image.Summary{}, nil } func (cli *fakeClient) ImageInspectWithRaw(_ context.Context, image string) (types.ImageInspect, []byte, error) { diff --git a/cli/command/image/list_test.go b/cli/command/image/list_test.go index fb2227b807ad..11c8b479431f 100644 --- a/cli/command/image/list_test.go +++ b/cli/command/image/list_test.go @@ -8,6 +8,7 @@ import ( "github.com/docker/cli/cli/config/configfile" "github.com/docker/cli/internal/test" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" "github.com/pkg/errors" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -19,7 +20,7 @@ func TestNewImagesCommandErrors(t *testing.T) { name string args []string expectedError string - imageListFunc func(options types.ImageListOptions) ([]types.ImageSummary, error) + imageListFunc func(options types.ImageListOptions) ([]image.Summary, error) }{ { name: "wrong-args", @@ -29,8 +30,8 @@ func TestNewImagesCommandErrors(t *testing.T) { { name: "failed-list", expectedError: "something went wrong", - imageListFunc: func(options types.ImageListOptions) ([]types.ImageSummary, error) { - return []types.ImageSummary{}, errors.Errorf("something went wrong") + imageListFunc: func(options types.ImageListOptions) ([]image.Summary, error) { + return []image.Summary{}, errors.Errorf("something went wrong") }, }, } @@ -47,7 +48,7 @@ func TestNewImagesCommandSuccess(t *testing.T) { name string args []string imageFormat string - imageListFunc func(options types.ImageListOptions) ([]types.ImageSummary, error) + imageListFunc func(options types.ImageListOptions) ([]image.Summary, error) }{ { name: "simple", @@ -64,17 +65,17 @@ func TestNewImagesCommandSuccess(t *testing.T) { { name: "match-name", args: []string{"image"}, - imageListFunc: func(options types.ImageListOptions) ([]types.ImageSummary, error) { + imageListFunc: func(options types.ImageListOptions) ([]image.Summary, error) { assert.Check(t, is.Equal("image", options.Filters.Get("reference")[0])) - return []types.ImageSummary{}, nil + return []image.Summary{}, nil }, }, { name: "filters", args: []string{"--filter", "name=value"}, - imageListFunc: func(options types.ImageListOptions) ([]types.ImageSummary, error) { + imageListFunc: func(options types.ImageListOptions) ([]image.Summary, error) { assert.Check(t, is.Equal("value", options.Filters.Get("name")[0])) - return []types.ImageSummary{}, nil + return []image.Summary{}, nil }, }, } diff --git a/cli/command/image/prune_test.go b/cli/command/image/prune_test.go index 8f501ac317d1..a60c283c688c 100644 --- a/cli/command/image/prune_test.go +++ b/cli/command/image/prune_test.go @@ -8,6 +8,7 @@ import ( "github.com/docker/cli/internal/test" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/image" "github.com/pkg/errors" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -65,7 +66,7 @@ func TestNewPruneCommandSuccess(t *testing.T) { imagesPruneFunc: func(pruneFilter filters.Args) (types.ImagesPruneReport, error) { assert.Check(t, is.Equal("true", pruneFilter.Get("dangling")[0])) return types.ImagesPruneReport{ - ImagesDeleted: []types.ImageDeleteResponseItem{{Deleted: "image1"}}, + ImagesDeleted: []image.DeleteResponse{{Deleted: "image1"}}, SpaceReclaimed: 1, }, nil }, @@ -84,7 +85,7 @@ func TestNewPruneCommandSuccess(t *testing.T) { imagesPruneFunc: func(pruneFilter filters.Args) (types.ImagesPruneReport, error) { assert.Check(t, is.Equal("true", pruneFilter.Get("dangling")[0])) return types.ImagesPruneReport{ - ImagesDeleted: []types.ImageDeleteResponseItem{{Untagged: "image1"}}, + ImagesDeleted: []image.DeleteResponse{{Untagged: "image1"}}, SpaceReclaimed: 2, }, nil }, diff --git a/cli/command/image/remove_test.go b/cli/command/image/remove_test.go index 00a8c6104751..566053b49d8c 100644 --- a/cli/command/image/remove_test.go +++ b/cli/command/image/remove_test.go @@ -7,6 +7,7 @@ import ( "github.com/docker/cli/internal/test" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" "github.com/pkg/errors" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -35,7 +36,7 @@ func TestNewRemoveCommandErrors(t *testing.T) { name string args []string expectedError string - imageRemoveFunc func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) + imageRemoveFunc func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) }{ { name: "wrong args", @@ -45,19 +46,19 @@ func TestNewRemoveCommandErrors(t *testing.T) { name: "ImageRemove fail with force option", args: []string{"-f", "image1"}, expectedError: "error removing image", - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { - assert.Check(t, is.Equal("image1", image)) - return []types.ImageDeleteResponseItem{}, errors.Errorf("error removing image") + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { + assert.Check(t, is.Equal("image1", img)) + return []image.DeleteResponse{}, errors.Errorf("error removing image") }, }, { name: "ImageRemove fail", args: []string{"arg1"}, expectedError: "error removing image", - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { assert.Check(t, !options.Force) assert.Check(t, options.PruneChildren) - return []types.ImageDeleteResponseItem{}, errors.Errorf("error removing image") + return []image.DeleteResponse{}, errors.Errorf("error removing image") }, }, } @@ -77,24 +78,24 @@ func TestNewRemoveCommandSuccess(t *testing.T) { testCases := []struct { name string args []string - imageRemoveFunc func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) + imageRemoveFunc func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) expectedStderr string }{ { name: "Image Deleted", args: []string{"image1"}, - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { - assert.Check(t, is.Equal("image1", image)) - return []types.ImageDeleteResponseItem{{Deleted: image}}, nil + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { + assert.Check(t, is.Equal("image1", img)) + return []image.DeleteResponse{{Deleted: img}}, nil }, }, { name: "Image not found with force option", args: []string{"-f", "image1"}, - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { - assert.Check(t, is.Equal("image1", image)) + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { + assert.Check(t, is.Equal("image1", img)) assert.Check(t, is.Equal(true, options.Force)) - return []types.ImageDeleteResponseItem{}, notFound{"image1"} + return []image.DeleteResponse{}, notFound{"image1"} }, expectedStderr: "Error: No such image: image1\n", }, @@ -102,19 +103,19 @@ func TestNewRemoveCommandSuccess(t *testing.T) { { name: "Image Untagged", args: []string{"image1"}, - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { - assert.Check(t, is.Equal("image1", image)) - return []types.ImageDeleteResponseItem{{Untagged: image}}, nil + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { + assert.Check(t, is.Equal("image1", img)) + return []image.DeleteResponse{{Untagged: img}}, nil }, }, { name: "Image Deleted and Untagged", args: []string{"image1", "image2"}, - imageRemoveFunc: func(image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { - if image == "image1" { - return []types.ImageDeleteResponseItem{{Untagged: image}}, nil + imageRemoveFunc: func(img string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { + if img == "image1" { + return []image.DeleteResponse{{Untagged: img}}, nil } - return []types.ImageDeleteResponseItem{{Deleted: image}}, nil + return []image.DeleteResponse{{Deleted: img}}, nil }, }, } diff --git a/cli/command/service/client_test.go b/cli/command/service/client_test.go index eaa1cb489b11..644f0dd5cd97 100644 --- a/cli/command/service/client_test.go +++ b/cli/command/service/client_test.go @@ -13,7 +13,7 @@ import ( type fakeClient struct { client.Client serviceInspectWithRawFunc func(ctx context.Context, serviceID string, options types.ServiceInspectOptions) (swarm.Service, []byte, error) - serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) serviceListFunc func(context.Context, types.ServiceListOptions) ([]swarm.Service, error) taskListFunc func(context.Context, types.TaskListOptions) ([]swarm.Task, error) infoFunc func(ctx context.Context) (system.Info, error) @@ -51,12 +51,12 @@ func (f *fakeClient) ServiceList(ctx context.Context, options types.ServiceListO return nil, nil } -func (f *fakeClient) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { +func (f *fakeClient) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { if f.serviceUpdateFunc != nil { return f.serviceUpdateFunc(ctx, serviceID, version, service, options) } - return types.ServiceUpdateResponse{}, nil + return swarm.ServiceUpdateResponse{}, nil } func (f *fakeClient) Info(ctx context.Context) (system.Info, error) { diff --git a/cli/command/service/logs.go b/cli/command/service/logs.go index dd75c9d5d022..aef5f71d1a18 100644 --- a/cli/command/service/logs.go +++ b/cli/command/service/logs.go @@ -14,6 +14,7 @@ import ( "github.com/docker/cli/cli/command/idresolver" "github.com/docker/cli/service/logs" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" "github.com/docker/docker/errdefs" @@ -74,19 +75,7 @@ func newLogsCommand(dockerCli command.Cli) *cobra.Command { func runLogs(dockerCli command.Cli, opts *logsOptions) error { ctx := context.Background() - options := types.ContainerLogsOptions{ - ShowStdout: true, - ShowStderr: true, - Since: opts.since, - Timestamps: opts.timestamps, - Follow: opts.follow, - Tail: opts.tail, - // get the details if we request it OR if we're not doing raw mode - // (we need them for the context to pretty print) - Details: opts.details || !opts.raw, - } - - cli := dockerCli.Client() + apiClient := dockerCli.Client() var ( maxLength = 1 @@ -94,16 +83,16 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { tty bool // logfunc is used to delay the call to logs so that we can do some // processing before we actually get the logs - logfunc func(context.Context, string, types.ContainerLogsOptions) (io.ReadCloser, error) + logfunc func(context.Context, string, container.LogsOptions) (io.ReadCloser, error) ) - service, _, err := cli.ServiceInspectWithRaw(ctx, opts.target, types.ServiceInspectOptions{}) + service, _, err := apiClient.ServiceInspectWithRaw(ctx, opts.target, types.ServiceInspectOptions{}) if err != nil { // if it's any error other than service not found, it's Real if !errdefs.IsNotFound(err) { return err } - task, _, err := cli.TaskInspectWithRaw(ctx, opts.target) + task, _, err := apiClient.TaskInspectWithRaw(ctx, opts.target) if err != nil { if errdefs.IsNotFound(err) { // if the task isn't found, rewrite the error to be clear @@ -117,10 +106,10 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { maxLength = getMaxLength(task.Slot) // use the TaskLogs api function - logfunc = cli.TaskLogs + logfunc = apiClient.TaskLogs } else { // use ServiceLogs api function - logfunc = cli.ServiceLogs + logfunc = apiClient.ServiceLogs tty = service.Spec.TaskTemplate.ContainerSpec.TTY if service.Spec.Mode.Replicated != nil && service.Spec.Mode.Replicated.Replicas != nil { // if replicas are initialized, figure out if we need to pad them @@ -138,7 +127,17 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { } // now get the logs - responseBody, err = logfunc(ctx, opts.target, options) + responseBody, err = logfunc(ctx, opts.target, container.LogsOptions{ + ShowStdout: true, + ShowStderr: true, + Since: opts.since, + Timestamps: opts.timestamps, + Follow: opts.follow, + Tail: opts.tail, + // get the details if we request it OR if we're not doing raw mode + // (we need them for the context to pretty print) + Details: opts.details || !opts.raw, + }) if err != nil { return err } @@ -156,7 +155,7 @@ func runLogs(dockerCli command.Cli, opts *logsOptions) error { stdout = dockerCli.Out() stderr = dockerCli.Err() if !opts.raw { - taskFormatter := newTaskFormatter(cli, opts, maxLength) + taskFormatter := newTaskFormatter(apiClient, opts, maxLength) stdout = &logWriter{ctx: ctx, opts: opts, f: taskFormatter, w: stdout} stderr = &logWriter{ctx: ctx, opts: opts, f: taskFormatter, w: stderr} diff --git a/cli/command/service/rollback_test.go b/cli/command/service/rollback_test.go index e589946b0699..9c5b97bc7674 100644 --- a/cli/command/service/rollback_test.go +++ b/cli/command/service/rollback_test.go @@ -18,7 +18,7 @@ func TestRollback(t *testing.T) { testCases := []struct { name string args []string - serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) expectedDockerCliErr string }{ { @@ -28,8 +28,8 @@ func TestRollback(t *testing.T) { { name: "rollback-service-with-warnings", args: []string{"service-id"}, - serviceUpdateFunc: func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { - response := types.ServiceUpdateResponse{} + serviceUpdateFunc: func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { + response := swarm.ServiceUpdateResponse{} response.Warnings = []string{ "- warning 1", @@ -60,7 +60,7 @@ func TestRollbackWithErrors(t *testing.T) { name string args []string serviceInspectWithRawFunc func(ctx context.Context, serviceID string, options types.ServiceInspectOptions) (swarm.Service, []byte, error) - serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + serviceUpdateFunc func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) expectedError string }{ { @@ -83,8 +83,8 @@ func TestRollbackWithErrors(t *testing.T) { { name: "service-update-failed", args: []string{"service-id"}, - serviceUpdateFunc: func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { - return types.ServiceUpdateResponse{}, fmt.Errorf("no such services: %s", serviceID) + serviceUpdateFunc: func(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { + return swarm.ServiceUpdateResponse{}, fmt.Errorf("no such services: %s", serviceID) }, expectedError: "no such services: service-id", }, diff --git a/cli/command/stack/client_test.go b/cli/command/stack/client_test.go index 6a2d0a900ac9..c3d5021b3d9e 100644 --- a/cli/command/stack/client_test.go +++ b/cli/command/stack/client_test.go @@ -35,7 +35,7 @@ type fakeClient struct { taskListFunc func(options types.TaskListOptions) ([]swarm.Task, error) nodeInspectWithRaw func(ref string) (swarm.Node, []byte, error) - serviceUpdateFunc func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + serviceUpdateFunc func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) serviceRemoveFunc func(serviceID string) error networkRemoveFunc func(networkID string) error @@ -135,12 +135,12 @@ func (cli *fakeClient) NodeInspectWithRaw(_ context.Context, ref string) (swarm. return swarm.Node{}, nil, nil } -func (cli *fakeClient) ServiceUpdate(_ context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { +func (cli *fakeClient) ServiceUpdate(_ context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { if cli.serviceUpdateFunc != nil { return cli.serviceUpdateFunc(serviceID, version, service, options) } - return types.ServiceUpdateResponse{}, nil + return swarm.ServiceUpdateResponse{}, nil } func (cli *fakeClient) ServiceRemove(_ context.Context, serviceID string) error { diff --git a/cli/command/stack/swarm/client_test.go b/cli/command/stack/swarm/client_test.go index c0fd6a83d08a..db72a0ffa310 100644 --- a/cli/command/stack/swarm/client_test.go +++ b/cli/command/stack/swarm/client_test.go @@ -35,7 +35,7 @@ type fakeClient struct { taskListFunc func(options types.TaskListOptions) ([]swarm.Task, error) nodeInspectWithRaw func(ref string) (swarm.Node, []byte, error) - serviceUpdateFunc func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + serviceUpdateFunc func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) serviceRemoveFunc func(serviceID string) error networkRemoveFunc func(networkID string) error @@ -135,12 +135,12 @@ func (cli *fakeClient) NodeInspectWithRaw(_ context.Context, ref string) (swarm. return swarm.Node{}, nil, nil } -func (cli *fakeClient) ServiceUpdate(_ context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { +func (cli *fakeClient) ServiceUpdate(_ context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { if cli.serviceUpdateFunc != nil { return cli.serviceUpdateFunc(serviceID, version, service, options) } - return types.ServiceUpdateResponse{}, nil + return swarm.ServiceUpdateResponse{}, nil } func (cli *fakeClient) ServiceRemove(_ context.Context, serviceID string) error { diff --git a/cli/command/stack/swarm/deploy_test.go b/cli/command/stack/swarm/deploy_test.go index cf0bcba65148..5a29442eaaac 100644 --- a/cli/command/stack/swarm/deploy_test.go +++ b/cli/command/stack/swarm/deploy_test.go @@ -56,10 +56,10 @@ func TestServiceUpdateResolveImageChanged(t *testing.T) { }, }, nil }, - serviceUpdateFunc: func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { + serviceUpdateFunc: func(serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { receivedOptions = options receivedService = service - return types.ServiceUpdateResponse{}, nil + return swarm.ServiceUpdateResponse{}, nil }, }) diff --git a/vendor.mod b/vendor.mod index cf39b9925684..ef29ed77171d 100644 --- a/vendor.mod +++ b/vendor.mod @@ -13,7 +13,7 @@ require ( github.com/creack/pty v1.1.18 github.com/distribution/reference v0.5.0 github.com/docker/distribution v2.8.3+incompatible - github.com/docker/docker v24.0.0-rc.2.0.20230921123131-d3afa80b96bf+incompatible // master (v25.0.0-dev) + github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible // master (v25.0.0-dev) github.com/docker/docker-credential-helpers v0.8.0 github.com/docker/go-connections v0.4.0 github.com/docker/go-units v0.5.0 diff --git a/vendor.sum b/vendor.sum index 4ebe2d0392d3..a0c6b6b2f873 100644 --- a/vendor.sum +++ b/vendor.sum @@ -56,8 +56,8 @@ github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5 github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v24.0.0-rc.2.0.20230921123131-d3afa80b96bf+incompatible h1:4TeclqMx5eFwUUQiHqXCB3fMBPxTWVdrILSKISy3IKc= -github.com/docker/docker v24.0.0-rc.2.0.20230921123131-d3afa80b96bf+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible h1:dPyJJJlyetVDyMqY664Mopg71y+2yY5RQ4VN90ZChds= +github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= diff --git a/vendor/github.com/docker/docker/api/swagger.yaml b/vendor/github.com/docker/docker/api/swagger.yaml index 0ceef48b089d..3c3d83fb9abc 100644 --- a/vendor/github.com/docker/docker/api/swagger.yaml +++ b/vendor/github.com/docker/docker/api/swagger.yaml @@ -1840,6 +1840,7 @@ definitions: x-nullable: true ImageSummary: type: "object" + x-go-name: "Summary" required: - Id - ParentId @@ -3553,6 +3554,32 @@ definitions: Level: type: "string" description: "SELinux level label" + Seccomp: + type: "object" + description: "Options for configuring seccomp on the container" + properties: + Mode: + type: "string" + enum: + - "default" + - "unconfined" + - "custom" + Profile: + description: "The custom seccomp profile as a json object" + type: "string" + AppArmor: + type: "object" + description: "Options for configuring AppArmor on the container" + properties: + Mode: + type: "string" + enum: + - "default" + - "disabled" + NoNewPrivileges: + type: "boolean" + description: "Configuration of the no_new_privs bit in the container" + TTY: description: "Whether a pseudo-TTY should be allocated." type: "boolean" @@ -4451,6 +4478,7 @@ definitions: ImageDeleteResponseItem: type: "object" + x-go-name: "DeleteResponse" properties: Untagged: description: "The image ID of an image that was untagged" @@ -4459,6 +4487,29 @@ definitions: description: "The image ID of an image that was deleted" type: "string" + ServiceCreateResponse: + type: "object" + description: | + contains the information returned to a client on the + creation of a new service. + properties: + ID: + description: "The ID of the created service." + type: "string" + x-nullable: false + example: "ak7w3gjqoa3kuz8xcpnyy0pvl" + Warnings: + description: | + Optional warning message. + + FIXME(thaJeztah): this should have "omitempty" in the generated type. + type: "array" + x-nullable: true + items: + type: "string" + example: + - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + ServiceUpdateResponse: type: "object" properties: @@ -4468,7 +4519,8 @@ definitions: items: type: "string" example: - Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + Warnings: + - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" ContainerSummary: type: "object" @@ -11071,18 +11123,7 @@ paths: 201: description: "no error" schema: - type: "object" - title: "ServiceCreateResponse" - properties: - ID: - description: "The ID of the created service." - type: "string" - Warning: - description: "Optional warning message" - type: "string" - example: - ID: "ak7w3gjqoa3kuz8xcpnyy0pvl" - Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + $ref: "#/definitions/ServiceCreateResponse" 400: description: "bad parameter" schema: diff --git a/vendor/github.com/docker/docker/api/types/client.go b/vendor/github.com/docker/docker/api/types/client.go index 80691034e8da..24b00a2759d9 100644 --- a/vendor/github.com/docker/docker/api/types/client.go +++ b/vendor/github.com/docker/docker/api/types/client.go @@ -11,26 +11,6 @@ import ( units "github.com/docker/go-units" ) -// ContainerAttachOptions holds parameters to attach to a container. -type ContainerAttachOptions struct { - Stream bool - Stdin bool - Stdout bool - Stderr bool - DetachKeys string - Logs bool -} - -// ContainerCommitOptions holds parameters to commit changes into a container. -type ContainerCommitOptions struct { - Reference string - Comment string - Author string - Changes []string - Pause bool - Config *container.Config -} - // ContainerExecInspect holds information returned by exec inspect. type ContainerExecInspect struct { ExecID string `json:"ID"` @@ -40,42 +20,6 @@ type ContainerExecInspect struct { Pid int } -// ContainerListOptions holds parameters to list containers with. -type ContainerListOptions struct { - Size bool - All bool - Latest bool - Since string - Before string - Limit int - Filters filters.Args -} - -// ContainerLogsOptions holds parameters to filter logs with. -type ContainerLogsOptions struct { - ShowStdout bool - ShowStderr bool - Since string - Until string - Timestamps bool - Follow bool - Tail string - Details bool -} - -// ContainerRemoveOptions holds parameters to remove containers. -type ContainerRemoveOptions struct { - RemoveVolumes bool - RemoveLinks bool - Force bool -} - -// ContainerStartOptions holds parameters to start containers. -type ContainerStartOptions struct { - CheckpointID string - CheckpointDir string -} - // CopyToContainerOptions holds information // about files to copy into a container type CopyToContainerOptions struct { @@ -289,14 +233,6 @@ type ImageSearchOptions struct { Limit int } -// ResizeOptions holds parameters to resize a tty. -// It can be used to resize container ttys and -// exec process ttys too. -type ResizeOptions struct { - Height uint - Width uint -} - // NodeListOptions holds parameters to list nodes with. type NodeListOptions struct { Filters filters.Args @@ -322,15 +258,6 @@ type ServiceCreateOptions struct { QueryRegistry bool } -// ServiceCreateResponse contains the information returned to a client -// on the creation of a new service. -type ServiceCreateResponse struct { - // ID is the ID of the created service. - ID string - // Warnings is a set of non-fatal warning messages to pass on to the user. - Warnings []string `json:",omitempty"` -} - // Values for RegistryAuthFrom in ServiceUpdateOptions const ( RegistryAuthFromSpec = "spec" diff --git a/vendor/github.com/docker/docker/api/types/container/options.go b/vendor/github.com/docker/docker/api/types/container/options.go new file mode 100644 index 000000000000..7a2300576923 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/options.go @@ -0,0 +1,67 @@ +package container + +import "github.com/docker/docker/api/types/filters" + +// ResizeOptions holds parameters to resize a TTY. +// It can be used to resize container TTYs and +// exec process TTYs too. +type ResizeOptions struct { + Height uint + Width uint +} + +// AttachOptions holds parameters to attach to a container. +type AttachOptions struct { + Stream bool + Stdin bool + Stdout bool + Stderr bool + DetachKeys string + Logs bool +} + +// CommitOptions holds parameters to commit changes into a container. +type CommitOptions struct { + Reference string + Comment string + Author string + Changes []string + Pause bool + Config *Config +} + +// RemoveOptions holds parameters to remove containers. +type RemoveOptions struct { + RemoveVolumes bool + RemoveLinks bool + Force bool +} + +// StartOptions holds parameters to start containers. +type StartOptions struct { + CheckpointID string + CheckpointDir string +} + +// ListOptions holds parameters to list containers with. +type ListOptions struct { + Size bool + All bool + Latest bool + Since string + Before string + Limit int + Filters filters.Args +} + +// LogsOptions holds parameters to filter logs with. +type LogsOptions struct { + ShowStdout bool + ShowStderr bool + Since string + Until string + Timestamps bool + Follow bool + Tail string + Details bool +} diff --git a/vendor/github.com/docker/docker/api/types/image_delete_response_item.go b/vendor/github.com/docker/docker/api/types/image/delete_response.go similarity index 68% rename from vendor/github.com/docker/docker/api/types/image_delete_response_item.go rename to vendor/github.com/docker/docker/api/types/image/delete_response.go index b9a65a0d8e86..998620dc6a25 100644 --- a/vendor/github.com/docker/docker/api/types/image_delete_response_item.go +++ b/vendor/github.com/docker/docker/api/types/image/delete_response.go @@ -1,11 +1,11 @@ -package types +package image // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command -// ImageDeleteResponseItem image delete response item -// swagger:model ImageDeleteResponseItem -type ImageDeleteResponseItem struct { +// DeleteResponse delete response +// swagger:model DeleteResponse +type DeleteResponse struct { // The image ID of an image that was deleted Deleted string `json:"Deleted,omitempty"` diff --git a/vendor/github.com/docker/docker/api/types/image/image.go b/vendor/github.com/docker/docker/api/types/image/image.go new file mode 100644 index 000000000000..167df28c7b99 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/image/image.go @@ -0,0 +1,9 @@ +package image + +import "time" + +// Metadata contains engine-local data about the image. +type Metadata struct { + // LastTagTime is the date and time at which the image was last tagged. + LastTagTime time.Time `json:",omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/image_summary.go b/vendor/github.com/docker/docker/api/types/image/summary.go similarity index 96% rename from vendor/github.com/docker/docker/api/types/image_summary.go rename to vendor/github.com/docker/docker/api/types/image/summary.go index 076848ad5f05..f1e3e2ef018f 100644 --- a/vendor/github.com/docker/docker/api/types/image_summary.go +++ b/vendor/github.com/docker/docker/api/types/image/summary.go @@ -1,11 +1,11 @@ -package types +package image // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command -// ImageSummary image summary -// swagger:model ImageSummary -type ImageSummary struct { +// Summary summary +// swagger:model Summary +type Summary struct { // Number of containers using this image. Includes both stopped and running // containers. diff --git a/vendor/github.com/docker/docker/api/types/swarm/container.go b/vendor/github.com/docker/docker/api/types/swarm/container.go index af5e1c0bc279..65f61d2d209c 100644 --- a/vendor/github.com/docker/docker/api/types/swarm/container.go +++ b/vendor/github.com/docker/docker/api/types/swarm/container.go @@ -32,6 +32,42 @@ type SELinuxContext struct { Level string } +// SeccompMode is the type used for the enumeration of possible seccomp modes +// in SeccompOpts +type SeccompMode string + +const ( + SeccompModeDefault SeccompMode = "default" + SeccompModeUnconfined SeccompMode = "unconfined" + SeccompModeCustom SeccompMode = "custom" +) + +// SeccompOpts defines the options for configuring seccomp on a swarm-managed +// container. +type SeccompOpts struct { + // Mode is the SeccompMode used for the container. + Mode SeccompMode `json:",omitempty"` + // Profile is the custom seccomp profile as a json object to be used with + // the container. Mode should be set to SeccompModeCustom when using a + // custom profile in this manner. + Profile []byte `json:",omitempty"` +} + +// AppArmorMode is type used for the enumeration of possible AppArmor modes in +// AppArmorOpts +type AppArmorMode string + +const ( + AppArmorModeDefault AppArmorMode = "default" + AppArmorModeDisabled AppArmorMode = "disabled" +) + +// AppArmorOpts defines the options for configuring AppArmor on a swarm-managed +// container. Currently, custom AppArmor profiles are not supported. +type AppArmorOpts struct { + Mode AppArmorMode `json:",omitempty"` +} + // CredentialSpec for managed service account (Windows only) type CredentialSpec struct { Config string @@ -41,8 +77,11 @@ type CredentialSpec struct { // Privileges defines the security options for the container. type Privileges struct { - CredentialSpec *CredentialSpec - SELinuxContext *SELinuxContext + CredentialSpec *CredentialSpec + SELinuxContext *SELinuxContext + Seccomp *SeccompOpts `json:",omitempty"` + AppArmor *AppArmorOpts `json:",omitempty"` + NoNewPrivileges bool } // ContainerSpec represents the spec of a container. diff --git a/vendor/github.com/docker/docker/api/types/swarm/service_create_response.go b/vendor/github.com/docker/docker/api/types/swarm/service_create_response.go new file mode 100644 index 000000000000..9a268ff1b93a --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/service_create_response.go @@ -0,0 +1,20 @@ +package swarm + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +// ServiceCreateResponse contains the information returned to a client on the +// creation of a new service. +// +// swagger:model ServiceCreateResponse +type ServiceCreateResponse struct { + + // The ID of the created service. + ID string `json:"ID,omitempty"` + + // Optional warning message. + // + // FIXME(thaJeztah): this should have "omitempty" in the generated type. + // + Warnings []string `json:"Warnings"` +} diff --git a/vendor/github.com/docker/docker/api/types/service_update_response.go b/vendor/github.com/docker/docker/api/types/swarm/service_update_response.go similarity index 95% rename from vendor/github.com/docker/docker/api/types/service_update_response.go rename to vendor/github.com/docker/docker/api/types/swarm/service_update_response.go index 74ea64b1bb67..0417467dae39 100644 --- a/vendor/github.com/docker/docker/api/types/service_update_response.go +++ b/vendor/github.com/docker/docker/api/types/swarm/service_update_response.go @@ -1,4 +1,4 @@ -package types +package swarm // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/vendor/github.com/docker/docker/api/types/types.go b/vendor/github.com/docker/docker/api/types/types.go index 84a85df7865f..a28224c19103 100644 --- a/vendor/github.com/docker/docker/api/types/types.go +++ b/vendor/github.com/docker/docker/api/types/types.go @@ -7,6 +7,7 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/api/types/mount" "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/swarm" @@ -128,13 +129,7 @@ type ImageInspect struct { // Metadata of the image in the local cache. // // This information is local to the daemon, and not part of the image itself. - Metadata ImageMetadata -} - -// ImageMetadata contains engine-local data about the image -type ImageMetadata struct { - // LastTagTime is the date and time at which the image was last tagged. - LastTagTime time.Time `json:",omitempty"` + Metadata image.Metadata } // Container contains response of Engine API: @@ -514,7 +509,7 @@ type DiskUsageOptions struct { // GET "/system/df" type DiskUsage struct { LayersSize int64 - Images []*ImageSummary + Images []*image.Summary Containers []*Container Volumes []*volume.Volume BuildCache []*BuildCache @@ -538,7 +533,7 @@ type VolumesPruneReport struct { // ImagesPruneReport contains the response for Engine API: // POST "/images/prune" type ImagesPruneReport struct { - ImagesDeleted []ImageDeleteResponseItem + ImagesDeleted []image.DeleteResponse SpaceReclaimed uint64 } diff --git a/vendor/github.com/docker/docker/api/types/types_deprecated.go b/vendor/github.com/docker/docker/api/types/types_deprecated.go index 3d0174b756d8..e332a7bb6d9f 100644 --- a/vendor/github.com/docker/docker/api/types/types_deprecated.go +++ b/vendor/github.com/docker/docker/api/types/types_deprecated.go @@ -2,6 +2,9 @@ package types import ( "github.com/docker/docker/api/types/checkpoint" + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/image" + "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/system" ) @@ -63,6 +66,69 @@ type SecurityOpt = system.SecurityOpt // Deprecated: use [system.KeyValue]. type KeyValue = system.KeyValue +// ImageDeleteResponseItem image delete response item. +// +// Deprecated: use [image.DeleteResponse]. +type ImageDeleteResponseItem = image.DeleteResponse + +// ImageSummary image summary. +// +// Deprecated: use [image.Summary]. +type ImageSummary = image.Summary + +// ImageMetadata contains engine-local data about the image. +// +// Deprecated: use [image.Metadata]. +type ImageMetadata = image.Metadata + +// ServiceCreateResponse contains the information returned to a client +// on the creation of a new service. +// +// Deprecated: use [swarm.ServiceCreateResponse]. +type ServiceCreateResponse = swarm.ServiceCreateResponse + +// ServiceUpdateResponse service update response. +// +// Deprecated: use [swarm.ServiceUpdateResponse]. +type ServiceUpdateResponse = swarm.ServiceUpdateResponse + +// ContainerStartOptions holds parameters to start containers. +// +// Deprecated: use [container.StartOptions]. +type ContainerStartOptions = container.StartOptions + +// ResizeOptions holds parameters to resize a TTY. +// It can be used to resize container TTYs and +// exec process TTYs too. +// +// Deprecated: use [container.ResizeOptions]. +type ResizeOptions = container.ResizeOptions + +// ContainerAttachOptions holds parameters to attach to a container. +// +// Deprecated: use [container.AttachOptions]. +type ContainerAttachOptions = container.AttachOptions + +// ContainerCommitOptions holds parameters to commit changes into a container. +// +// Deprecated: use [container.CommitOptions]. +type ContainerCommitOptions = container.CommitOptions + +// ContainerListOptions holds parameters to list containers with. +// +// Deprecated: use [container.ListOptions]. +type ContainerListOptions = container.ListOptions + +// ContainerLogsOptions holds parameters to filter logs with. +// +// Deprecated: use [container.LogsOptions]. +type ContainerLogsOptions = container.LogsOptions + +// ContainerRemoveOptions holds parameters to remove containers. +// +// Deprecated: use [container.RemoveOptions]. +type ContainerRemoveOptions = container.RemoveOptions + // DecodeSecurityOptions decodes a security options string slice to a type safe // [system.SecurityOpt]. // diff --git a/vendor/github.com/docker/docker/client/client.go b/vendor/github.com/docker/docker/client/client.go index 7eab41185d06..6fb3f3eb04bf 100644 --- a/vendor/github.com/docker/docker/client/client.go +++ b/vendor/github.com/docker/docker/client/client.go @@ -19,7 +19,7 @@ For example, to list running containers (the equivalent of "docker ps"): "context" "fmt" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" ) @@ -29,13 +29,13 @@ For example, to list running containers (the equivalent of "docker ps"): panic(err) } - containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) + containers, err := cli.ContainerList(context.Background(), container.ListOptions{}) if err != nil { panic(err) } - for _, container := range containers { - fmt.Printf("%s %s\n", container.ID[:10], container.Image) + for _, ctr := range containers { + fmt.Printf("%s %s\n", ctr.ID, ctr.Image) } } */ diff --git a/vendor/github.com/docker/docker/client/container_attach.go b/vendor/github.com/docker/docker/client/container_attach.go index a3a009050db9..6a32e5f664b0 100644 --- a/vendor/github.com/docker/docker/client/container_attach.go +++ b/vendor/github.com/docker/docker/client/container_attach.go @@ -6,6 +6,7 @@ import ( "net/url" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerAttach attaches a connection to a container in the server. @@ -32,7 +33,7 @@ import ( // // You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this // stream. -func (cli *Client) ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error) { +func (cli *Client) ContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error) { query := url.Values{} if options.Stream { query.Set("stream", "1") diff --git a/vendor/github.com/docker/docker/client/container_commit.go b/vendor/github.com/docker/docker/client/container_commit.go index d3e597bd7c18..26b3f09158ff 100644 --- a/vendor/github.com/docker/docker/client/container_commit.go +++ b/vendor/github.com/docker/docker/client/container_commit.go @@ -8,10 +8,11 @@ import ( "github.com/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerCommit applies changes to a container and creates a new tagged image. -func (cli *Client) ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error) { +func (cli *Client) ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (types.IDResponse, error) { var repository, tag string if options.Reference != "" { ref, err := reference.ParseNormalizedNamed(options.Reference) diff --git a/vendor/github.com/docker/docker/client/container_list.go b/vendor/github.com/docker/docker/client/container_list.go index 127a57cfd89a..782e1b3c62e3 100644 --- a/vendor/github.com/docker/docker/client/container_list.go +++ b/vendor/github.com/docker/docker/client/container_list.go @@ -7,11 +7,12 @@ import ( "strconv" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" ) // ContainerList returns the list of containers in the docker host. -func (cli *Client) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) { +func (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) { query := url.Values{} if options.All { diff --git a/vendor/github.com/docker/docker/client/container_logs.go b/vendor/github.com/docker/docker/client/container_logs.go index 9bdf2b0fa602..61197d84075c 100644 --- a/vendor/github.com/docker/docker/client/container_logs.go +++ b/vendor/github.com/docker/docker/client/container_logs.go @@ -6,7 +6,7 @@ import ( "net/url" "time" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" timetypes "github.com/docker/docker/api/types/time" "github.com/pkg/errors" ) @@ -33,7 +33,7 @@ import ( // // You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this // stream. -func (cli *Client) ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) { +func (cli *Client) ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) { query := url.Values{} if options.ShowStdout { query.Set("stdout", "1") diff --git a/vendor/github.com/docker/docker/client/container_remove.go b/vendor/github.com/docker/docker/client/container_remove.go index c21de609b0b7..39f7b106a10e 100644 --- a/vendor/github.com/docker/docker/client/container_remove.go +++ b/vendor/github.com/docker/docker/client/container_remove.go @@ -4,11 +4,11 @@ import ( "context" "net/url" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerRemove kills and removes a container from the docker host. -func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options types.ContainerRemoveOptions) error { +func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error { query := url.Values{} if options.RemoveVolumes { query.Set("v", "1") diff --git a/vendor/github.com/docker/docker/client/container_resize.go b/vendor/github.com/docker/docker/client/container_resize.go index a9d4c0c79a0d..5cfd01d4798e 100644 --- a/vendor/github.com/docker/docker/client/container_resize.go +++ b/vendor/github.com/docker/docker/client/container_resize.go @@ -5,16 +5,16 @@ import ( "net/url" "strconv" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerResize changes the size of the tty for a container. -func (cli *Client) ContainerResize(ctx context.Context, containerID string, options types.ResizeOptions) error { +func (cli *Client) ContainerResize(ctx context.Context, containerID string, options container.ResizeOptions) error { return cli.resize(ctx, "/containers/"+containerID, options.Height, options.Width) } // ContainerExecResize changes the size of the tty for an exec process running inside a container. -func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error { +func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error { return cli.resize(ctx, "/exec/"+execID, options.Height, options.Width) } diff --git a/vendor/github.com/docker/docker/client/container_start.go b/vendor/github.com/docker/docker/client/container_start.go index c2e0b15dca8b..33ba85f24827 100644 --- a/vendor/github.com/docker/docker/client/container_start.go +++ b/vendor/github.com/docker/docker/client/container_start.go @@ -4,11 +4,11 @@ import ( "context" "net/url" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerStart sends a request to the docker daemon to start a container. -func (cli *Client) ContainerStart(ctx context.Context, containerID string, options types.ContainerStartOptions) error { +func (cli *Client) ContainerStart(ctx context.Context, containerID string, options container.StartOptions) error { query := url.Values{} if len(options.CheckpointID) != 0 { query.Set("checkpoint", options.CheckpointID) diff --git a/vendor/github.com/docker/docker/client/image_list.go b/vendor/github.com/docker/docker/client/image_list.go index 986b961a452a..f3f2280e3249 100644 --- a/vendor/github.com/docker/docker/client/image_list.go +++ b/vendor/github.com/docker/docker/client/image_list.go @@ -7,11 +7,12 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/api/types/versions" ) // ImageList returns a list of images in the docker host. -func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) { +func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]image.Summary, error) { // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. // @@ -19,7 +20,7 @@ func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions // the API request is made. cli.checkVersion(ctx) - var images []types.ImageSummary + var images []image.Summary query := url.Values{} optionFilters := options.Filters diff --git a/vendor/github.com/docker/docker/client/image_remove.go b/vendor/github.com/docker/docker/client/image_remove.go index 6a9fb3f41f53..b936d20830de 100644 --- a/vendor/github.com/docker/docker/client/image_remove.go +++ b/vendor/github.com/docker/docker/client/image_remove.go @@ -6,10 +6,11 @@ import ( "net/url" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" ) // ImageRemove removes an image from the docker host. -func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { +func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) { query := url.Values{} if options.Force { @@ -19,7 +20,7 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options type query.Set("noprune", "1") } - var dels []types.ImageDeleteResponseItem + var dels []image.DeleteResponse resp, err := cli.delete(ctx, "/images/"+imageID, query, nil) defer ensureReaderClosed(resp) if err != nil { diff --git a/vendor/github.com/docker/docker/client/interface.go b/vendor/github.com/docker/docker/client/interface.go index b2e5d36486a9..302f5fb13e02 100644 --- a/vendor/github.com/docker/docker/client/interface.go +++ b/vendor/github.com/docker/docker/client/interface.go @@ -46,30 +46,30 @@ type CommonAPIClient interface { // ContainerAPIClient defines API client methods for the containers type ContainerAPIClient interface { - ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error) - ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error) + ContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error) + ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (types.IDResponse, error) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error) ContainerDiff(ctx context.Context, container string) ([]container.FilesystemChange, error) ContainerExecAttach(ctx context.Context, execID string, config types.ExecStartCheck) (types.HijackedResponse, error) ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error) ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error) - ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error + ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error ContainerExport(ctx context.Context, container string) (io.ReadCloser, error) ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error) ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error) ContainerKill(ctx context.Context, container, signal string) error - ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) - ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) + ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) + ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) ContainerPause(ctx context.Context, container string) error - ContainerRemove(ctx context.Context, container string, options types.ContainerRemoveOptions) error + ContainerRemove(ctx context.Context, container string, options container.RemoveOptions) error ContainerRename(ctx context.Context, container, newContainerName string) error - ContainerResize(ctx context.Context, container string, options types.ResizeOptions) error + ContainerResize(ctx context.Context, container string, options container.ResizeOptions) error ContainerRestart(ctx context.Context, container string, options container.StopOptions) error ContainerStatPath(ctx context.Context, container, path string) (types.ContainerPathStat, error) ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error) ContainerStatsOneShot(ctx context.Context, container string) (types.ContainerStats, error) - ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error + ContainerStart(ctx context.Context, container string, options container.StartOptions) error ContainerStop(ctx context.Context, container string, options container.StopOptions) error ContainerTop(ctx context.Context, container string, arguments []string) (container.ContainerTopOKBody, error) ContainerUnpause(ctx context.Context, container string) error @@ -94,11 +94,11 @@ type ImageAPIClient interface { ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error) - ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) + ImageList(ctx context.Context, options types.ImageListOptions) ([]image.Summary, error) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error) ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) - ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) + ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]image.DeleteResponse, error) ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error) ImageSave(ctx context.Context, images []string) (io.ReadCloser, error) ImageTag(ctx context.Context, image, ref string) error @@ -141,13 +141,13 @@ type PluginAPIClient interface { // ServiceAPIClient defines API client methods for the services type ServiceAPIClient interface { - ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error) + ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (swarm.ServiceCreateResponse, error) ServiceInspectWithRaw(ctx context.Context, serviceID string, options types.ServiceInspectOptions) (swarm.Service, []byte, error) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) ServiceRemove(ctx context.Context, serviceID string) error - ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) - ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error) - TaskLogs(ctx context.Context, taskID string, options types.ContainerLogsOptions) (io.ReadCloser, error) + ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) + ServiceLogs(ctx context.Context, serviceID string, options container.LogsOptions) (io.ReadCloser, error) + TaskLogs(ctx context.Context, taskID string, options container.LogsOptions) (io.ReadCloser, error) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error) } diff --git a/vendor/github.com/docker/docker/client/service_create.go b/vendor/github.com/docker/docker/client/service_create.go index 7f54e83487a0..2ebb5ee3a580 100644 --- a/vendor/github.com/docker/docker/client/service_create.go +++ b/vendor/github.com/docker/docker/client/service_create.go @@ -17,8 +17,8 @@ import ( ) // ServiceCreate creates a new service. -func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error) { - var response types.ServiceCreateResponse +func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (swarm.ServiceCreateResponse, error) { + var response swarm.ServiceCreateResponse // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. diff --git a/vendor/github.com/docker/docker/client/service_logs.go b/vendor/github.com/docker/docker/client/service_logs.go index 906fd4059e6a..e9e30a2ab495 100644 --- a/vendor/github.com/docker/docker/client/service_logs.go +++ b/vendor/github.com/docker/docker/client/service_logs.go @@ -6,14 +6,14 @@ import ( "net/url" "time" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" timetypes "github.com/docker/docker/api/types/time" "github.com/pkg/errors" ) // ServiceLogs returns the logs generated by a service in an io.ReadCloser. // It's up to the caller to close the stream. -func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error) { +func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options container.LogsOptions) (io.ReadCloser, error) { query := url.Values{} if options.ShowStdout { query.Set("stdout", "1") diff --git a/vendor/github.com/docker/docker/client/service_update.go b/vendor/github.com/docker/docker/client/service_update.go index f8168dd5faa5..e05eebf56657 100644 --- a/vendor/github.com/docker/docker/client/service_update.go +++ b/vendor/github.com/docker/docker/client/service_update.go @@ -15,7 +15,7 @@ import ( // ServiceUpdate updates a Service. The version number is required to avoid conflicting writes. // It should be the value as set *before* the update. You can find this value in the Meta field // of swarm.Service, which can be found using ServiceInspectWithRaw. -func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) { +func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. // @@ -25,7 +25,7 @@ func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version var ( query = url.Values{} - response = types.ServiceUpdateResponse{} + response = swarm.ServiceUpdateResponse{} ) if options.RegistryAuthFrom != "" { diff --git a/vendor/github.com/docker/docker/client/task_logs.go b/vendor/github.com/docker/docker/client/task_logs.go index 6222fab577d1..b8c20e71dab8 100644 --- a/vendor/github.com/docker/docker/client/task_logs.go +++ b/vendor/github.com/docker/docker/client/task_logs.go @@ -6,13 +6,13 @@ import ( "net/url" "time" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" timetypes "github.com/docker/docker/api/types/time" ) // TaskLogs returns the logs generated by a task in an io.ReadCloser. // It's up to the caller to close the stream. -func (cli *Client) TaskLogs(ctx context.Context, taskID string, options types.ContainerLogsOptions) (io.ReadCloser, error) { +func (cli *Client) TaskLogs(ctx context.Context, taskID string, options container.LogsOptions) (io.ReadCloser, error) { query := url.Values{} if options.ShowStdout { query.Set("stdout", "1") diff --git a/vendor/github.com/docker/docker/pkg/archive/archive.go b/vendor/github.com/docker/docker/pkg/archive/archive.go index 3198b60ca82e..fb42864b6b20 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive.go @@ -20,8 +20,8 @@ import ( "syscall" "time" - "github.com/containerd/containerd/log" "github.com/containerd/containerd/pkg/userns" + "github.com/containerd/log" "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/ioutils" "github.com/docker/docker/pkg/pools" diff --git a/vendor/github.com/docker/docker/pkg/archive/changes.go b/vendor/github.com/docker/docker/pkg/archive/changes.go index 6faed1367212..f9f16c925906 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes.go @@ -13,7 +13,7 @@ import ( "syscall" "time" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/pools" "github.com/docker/docker/pkg/system" diff --git a/vendor/github.com/docker/docker/pkg/archive/copy.go b/vendor/github.com/docker/docker/pkg/archive/copy.go index 7a5a16c821dc..01eadc30d99a 100644 --- a/vendor/github.com/docker/docker/pkg/archive/copy.go +++ b/vendor/github.com/docker/docker/pkg/archive/copy.go @@ -9,7 +9,7 @@ import ( "path/filepath" "strings" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/docker/pkg/system" ) diff --git a/vendor/github.com/docker/docker/pkg/archive/diff.go b/vendor/github.com/docker/docker/pkg/archive/diff.go index 56d07f1dcf63..318f59421202 100644 --- a/vendor/github.com/docker/docker/pkg/archive/diff.go +++ b/vendor/github.com/docker/docker/pkg/archive/diff.go @@ -10,7 +10,7 @@ import ( "runtime" "strings" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/docker/pkg/pools" "github.com/docker/docker/pkg/system" ) diff --git a/vendor/github.com/docker/docker/registry/auth.go b/vendor/github.com/docker/docker/registry/auth.go index bf1cc65f7819..f685892c1fde 100644 --- a/vendor/github.com/docker/docker/registry/auth.go +++ b/vendor/github.com/docker/docker/registry/auth.go @@ -7,7 +7,7 @@ import ( "strings" "time" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/distribution/registry/client/auth" "github.com/docker/distribution/registry/client/auth/challenge" "github.com/docker/distribution/registry/client/transport" diff --git a/vendor/github.com/docker/docker/registry/config.go b/vendor/github.com/docker/docker/registry/config.go index 347e7128c48a..84b0a63ad25b 100644 --- a/vendor/github.com/docker/docker/registry/config.go +++ b/vendor/github.com/docker/docker/registry/config.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/distribution/reference" "github.com/docker/docker/api/types/registry" ) @@ -330,8 +330,8 @@ func ValidateMirror(val string) (string, error) { if uri.Scheme != "http" && uri.Scheme != "https" { return "", invalidParamf("invalid mirror: unsupported scheme %q in %q", uri.Scheme, uri) } - if (uri.Path != "" && uri.Path != "/") || uri.RawQuery != "" || uri.Fragment != "" { - return "", invalidParamf("invalid mirror: path, query, or fragment at end of the URI %q", uri) + if uri.RawQuery != "" || uri.Fragment != "" { + return "", invalidParamf("invalid mirror: query or fragment at end of the URI %q", uri) } if uri.User != nil { // strip password from output diff --git a/vendor/github.com/docker/docker/registry/registry.go b/vendor/github.com/docker/docker/registry/registry.go index 9b42d9fe9572..7866dcd0d8fb 100644 --- a/vendor/github.com/docker/docker/registry/registry.go +++ b/vendor/github.com/docker/docker/registry/registry.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/distribution/registry/client/transport" "github.com/docker/go-connections/tlsconfig" ) diff --git a/vendor/github.com/docker/docker/registry/search.go b/vendor/github.com/docker/docker/registry/search.go index 8324203fc4f0..75a544410997 100644 --- a/vendor/github.com/docker/docker/registry/search.go +++ b/vendor/github.com/docker/docker/registry/search.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/distribution/registry/client/auth" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/registry" diff --git a/vendor/github.com/docker/docker/registry/search_endpoint_v1.go b/vendor/github.com/docker/docker/registry/search_endpoint_v1.go index 015f8eb0c667..f6c369a93bbf 100644 --- a/vendor/github.com/docker/docker/registry/search_endpoint_v1.go +++ b/vendor/github.com/docker/docker/registry/search_endpoint_v1.go @@ -8,7 +8,7 @@ import ( "net/url" "strings" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/distribution/registry/client/transport" "github.com/docker/docker/api/types/registry" ) diff --git a/vendor/github.com/docker/docker/registry/search_session.go b/vendor/github.com/docker/docker/registry/search_session.go index 4b051ed4be55..c334143c6b15 100644 --- a/vendor/github.com/docker/docker/registry/search_session.go +++ b/vendor/github.com/docker/docker/registry/search_session.go @@ -12,7 +12,7 @@ import ( "strings" "sync" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/docker/docker/api/types/registry" "github.com/docker/docker/errdefs" "github.com/docker/docker/pkg/ioutils" diff --git a/vendor/github.com/docker/docker/registry/service.go b/vendor/github.com/docker/docker/registry/service.go index f60b48f5f206..6881c1105769 100644 --- a/vendor/github.com/docker/docker/registry/service.go +++ b/vendor/github.com/docker/docker/registry/service.go @@ -7,7 +7,7 @@ import ( "strings" "sync" - "github.com/containerd/containerd/log" + "github.com/containerd/log" "github.com/distribution/reference" "github.com/docker/docker/api/types/registry" "github.com/docker/docker/errdefs" diff --git a/vendor/modules.txt b/vendor/modules.txt index fb7c8a1dab93..c2d2e08708c8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -56,7 +56,7 @@ github.com/docker/distribution/registry/client/transport github.com/docker/distribution/registry/storage/cache github.com/docker/distribution/registry/storage/cache/memory github.com/docker/distribution/uuid -# github.com/docker/docker v24.0.0-rc.2.0.20230921123131-d3afa80b96bf+incompatible +# github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible ## explicit github.com/docker/docker/api github.com/docker/docker/api/types