diff --git a/api/server/router/container/backend.go b/api/server/router/container/backend.go index bb31947ff0..edb2c73f41 100644 --- a/api/server/router/container/backend.go +++ b/api/server/router/container/backend.go @@ -62,7 +62,7 @@ type attachBackend interface { // systemBackend includes functions to implement to provide system wide containers functionality type systemBackend interface { - ContainersPrune(ctx context.Context, pruneFilters filters.Args) (*types.ContainersPruneReport, error) + ContainersPrune(ctx context.Context, pruneFilters filters.Args) (*container.PruneReport, error) } type commitBackend interface { diff --git a/api/types/container/container.go b/api/types/container/container.go new file mode 100644 index 0000000000..51cd739147 --- /dev/null +++ b/api/types/container/container.go @@ -0,0 +1,8 @@ +package container + +// PruneReport contains the response for Engine API: +// POST "/containers/prune" +type PruneReport struct { + ContainersDeleted []string + SpaceReclaimed uint64 +} diff --git a/api/types/types.go b/api/types/types.go index f677a64f3b..009eab53c1 100644 --- a/api/types/types.go +++ b/api/types/types.go @@ -439,13 +439,6 @@ type DiskUsage struct { BuilderSize int64 `json:",omitempty"` // Deprecated: deprecated in API 1.38, and no longer used since API 1.40. } -// ContainersPruneReport contains the response for Engine API: -// POST "/containers/prune" -type ContainersPruneReport struct { - ContainersDeleted []string - SpaceReclaimed uint64 -} - // VolumesPruneReport contains the response for Engine API: // POST "/volumes/prune" type VolumesPruneReport struct { diff --git a/api/types/types_deprecated.go b/api/types/types_deprecated.go index 430e8edacc..3d555a03b8 100644 --- a/api/types/types_deprecated.go +++ b/api/types/types_deprecated.go @@ -72,3 +72,9 @@ type ExecStartCheck = container.ExecStartOptions // // Deprecated: use [container.ExecInspect]. type ContainerExecInspect = container.ExecInspect + +// ContainersPruneReport contains the response for Engine API: +// POST "/containers/prune" +// +// Deprecated: use [container.PruneReport]. +type ContainersPruneReport = container.PruneReport diff --git a/client/container_prune.go b/client/container_prune.go index ca50923844..29c922da77 100644 --- a/client/container_prune.go +++ b/client/container_prune.go @@ -5,13 +5,13 @@ import ( "encoding/json" "fmt" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" ) // ContainersPrune requests the daemon to delete unused data -func (cli *Client) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error) { - var report types.ContainersPruneReport +func (cli *Client) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error) { + var report container.PruneReport if err := cli.NewVersionError(ctx, "1.25", "container prune"); err != nil { return report, err diff --git a/client/container_prune_test.go b/client/container_prune_test.go index bd770b510b..b6f3eddbf6 100644 --- a/client/container_prune_test.go +++ b/client/container_prune_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/errdefs" "gotest.tools/v3/assert" @@ -93,7 +93,7 @@ func TestContainersPrune(t *testing.T) { actual := query.Get(key) assert.Check(t, is.Equal(expected, actual)) } - content, err := json.Marshal(types.ContainersPruneReport{ + content, err := json.Marshal(container.PruneReport{ ContainersDeleted: []string{"container_id1", "container_id2"}, SpaceReclaimed: 9999, }) diff --git a/client/interface.go b/client/interface.go index 93f2399078..6b37449bc7 100644 --- a/client/interface.go +++ b/client/interface.go @@ -77,7 +77,7 @@ type ContainerAPIClient interface { ContainerWait(ctx context.Context, container string, condition container.WaitCondition) (<-chan container.WaitResponse, <-chan error) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error - ContainersPrune(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error) + ContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error) } // DistributionAPIClient defines API client methods for the registry diff --git a/daemon/prune.go b/daemon/prune.go index d0493984b4..30123f2aaa 100644 --- a/daemon/prune.go +++ b/daemon/prune.go @@ -8,8 +8,8 @@ import ( "time" "github.com/containerd/log" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/backend" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/events" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/network" @@ -39,13 +39,13 @@ var ( ) // ContainersPrune removes unused containers -func (daemon *Daemon) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (*types.ContainersPruneReport, error) { +func (daemon *Daemon) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (*container.PruneReport, error) { if !atomic.CompareAndSwapInt32(&daemon.pruneRunning, 0, 1) { return nil, errPruneRunning } defer atomic.StoreInt32(&daemon.pruneRunning, 0) - rep := &types.ContainersPruneReport{} + rep := &container.PruneReport{} // make sure that only accepted filters have been received err := pruneFilters.Validate(containersAcceptedFilters)