client: refactor ContainerList to wrap result

Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
This commit is contained in:
Austin Vazquez
2025-10-28 18:37:40 -05:00
parent 4ce86e2c9b
commit c5ddef1122
17 changed files with 68 additions and 60 deletions

View File

@@ -62,7 +62,7 @@ type ContainerAPIClient interface {
ContainerExport(ctx context.Context, container string) (io.ReadCloser, error)
ContainerInspect(ctx context.Context, container string, options ContainerInspectOptions) (ContainerInspectResult, error)
ContainerKill(ctx context.Context, container string, options ContainerKillOptions) (ContainerKillResult, error)
ContainerList(ctx context.Context, options ContainerListOptions) ([]container.Summary, error)
ContainerList(ctx context.Context, options ContainerListOptions) (ContainerListResult, error)
ContainerLogs(ctx context.Context, container string, options ContainerLogsOptions) (io.ReadCloser, error)
ContainerPause(ctx context.Context, container string, options ContainerPauseOptions) (ContainerPauseResult, error)
ContainerRemove(ctx context.Context, container string, options ContainerRemoveOptions) (ContainerRemoveResult, error)

View File

@@ -20,8 +20,12 @@ type ContainerListOptions struct {
Filters Filters
}
type ContainerListResult struct {
Items []container.Summary
}
// ContainerList returns the list of containers in the docker host.
func (cli *Client) ContainerList(ctx context.Context, options ContainerListOptions) ([]container.Summary, error) {
func (cli *Client) ContainerList(ctx context.Context, options ContainerListOptions) (ContainerListResult, error) {
query := url.Values{}
if options.All {
@@ -49,10 +53,10 @@ func (cli *Client) ContainerList(ctx context.Context, options ContainerListOptio
resp, err := cli.get(ctx, "/containers/json", query, nil)
defer ensureReaderClosed(resp)
if err != nil {
return nil, err
return ContainerListResult{}, err
}
var containers []container.Summary
err = json.NewDecoder(resp.Body).Decode(&containers)
return containers, err
return ContainerListResult{Items: containers}, err
}

View File

@@ -65,7 +65,7 @@ func TestContainerList(t *testing.T) {
)
assert.NilError(t, err)
containers, err := client.ContainerList(context.Background(), ContainerListOptions{
list, err := client.ContainerList(context.Background(), ContainerListOptions{
Size: true,
All: true,
Since: "container",
@@ -75,5 +75,5 @@ func TestContainerList(t *testing.T) {
Add("before", "container"),
})
assert.NilError(t, err)
assert.Check(t, is.Len(containers, 2))
assert.Check(t, is.Len(list.Items, 2))
}