client: rename ImageRemoveResult.Deleted to ImageRemoveResult.Items

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2025-10-24 11:41:50 +02:00
parent 8222a3f1d9
commit c246639baa
10 changed files with 19 additions and 17 deletions

View File

@@ -35,5 +35,5 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options Imag
var dels []image.DeleteResponse
err = json.NewDecoder(resp.Body).Decode(&dels)
return ImageRemoveResult{Deleted: dels}, err
return ImageRemoveResult{Items: dels}, err
}

View File

@@ -14,5 +14,5 @@ type ImageRemoveOptions struct {
// ImageRemoveResult holds the delete responses returned by the daemon.
type ImageRemoveResult struct {
Deleted []image.DeleteResponse
Items []image.DeleteResponse
}

View File

@@ -91,8 +91,8 @@ func TestImageRemove(t *testing.T) {
opts.Platforms = []ocispec.Platform{*removeCase.platform}
}
imageDeletes, err := client.ImageRemove(context.Background(), "image_id", opts)
res, err := client.ImageRemove(context.Background(), "image_id", opts)
assert.NilError(t, err)
assert.Check(t, is.Len(imageDeletes.Deleted, 2))
assert.Check(t, is.Len(res.Items, 2))
}
}

View File

@@ -802,7 +802,7 @@ func TestBuildHistoryDoesNotPreventRemoval(t *testing.T) {
res, err := apiClient.ImageRemove(ctx, "history-a", client.ImageRemoveOptions{})
assert.NilError(t, err)
assert.Check(t, slices.ContainsFunc(res.Deleted, func(r image.DeleteResponse) bool {
assert.Check(t, slices.ContainsFunc(res.Items, func(r image.DeleteResponse) bool {
return r.Deleted != ""
}))
}

View File

@@ -78,7 +78,7 @@ func TestAPIImageHistoryCrossPlatform(t *testing.T) {
imgID := build.GetImageIDFromBody(t, resp.Body)
t.Cleanup(func() {
apiClient.ImageRemove(ctx, imgID, client.ImageRemoveOptions{Force: true})
_, _ = apiClient.ImageRemove(ctx, imgID, client.ImageRemoveOptions{Force: true})
})
testCases := []struct {

View File

@@ -147,20 +147,20 @@ func TestRemoveWithPlatform(t *testing.T) {
Force: true,
})
assert.NilError(t, err)
assert.Check(t, is.Len(res.Deleted, 1))
for _, r := range res.Deleted {
assert.Check(t, is.Len(res.Items, 1))
for _, r := range res.Items {
assert.Check(t, is.Equal(r.Untagged, ""), "No image should be untagged")
}
checkPlatformDeleted(t, imageIdx, res.Deleted, tc.deleted)
checkPlatformDeleted(t, imageIdx, res.Items, tc.deleted)
}
// Delete the rest
resp, err := apiClient.ImageRemove(ctx, imgName, client.ImageRemoveOptions{})
assert.NilError(t, err)
assert.Check(t, is.Len(resp.Deleted, 2))
assert.Check(t, is.Equal(resp.Deleted[0].Untagged, imgName))
assert.Check(t, is.Equal(resp.Deleted[1].Deleted, imageIdx.Manifests[0].Digest.String()))
assert.Check(t, is.Len(resp.Items, 2))
assert.Check(t, is.Equal(resp.Items[0].Untagged, imgName))
assert.Check(t, is.Equal(resp.Items[1].Deleted, imageIdx.Manifests[0].Digest.String()))
// TODO(vvoland): Should it also include platform-specific manifests? https://github.com/moby/moby/pull/49982
}

View File

@@ -19,13 +19,13 @@ import (
// Do builds an image from the given context and returns the image ID.
func Do(ctx context.Context, t *testing.T, apiClient client.APIClient, buildCtx *fakecontext.Fake) string {
resp, err := apiClient.ImageBuild(ctx, buildCtx.AsTarReader(t), client.ImageBuildOptions{})
assert.NilError(t, err)
if resp.Body != nil {
defer resp.Body.Close()
}
assert.NilError(t, err)
img := GetImageIDFromBody(t, resp.Body)
t.Cleanup(func() {
apiClient.ImageRemove(ctx, img, client.ImageRemoveOptions{Force: true})
_, _ = apiClient.ImageRemove(ctx, img, client.ImageRemoveOptions{Force: true})
})
return img
}

View File

@@ -151,7 +151,9 @@ func TestRunMountImage(t *testing.T) {
t.Run(tc.name, func(t *testing.T) {
testImage := setupTestImage(t, ctx, apiClient, tc.name)
if testImage != "" {
defer apiClient.ImageRemove(ctx, testImage, client.ImageRemoveOptions{Force: true})
defer func() {
_, _ = apiClient.ImageRemove(ctx, testImage, client.ImageRemoveOptions{Force: true})
}()
}
cfg := containertypes.Config{

View File

@@ -35,5 +35,5 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options Imag
var dels []image.DeleteResponse
err = json.NewDecoder(resp.Body).Decode(&dels)
return ImageRemoveResult{Deleted: dels}, err
return ImageRemoveResult{Items: dels}, err
}

View File

@@ -14,5 +14,5 @@ type ImageRemoveOptions struct {
// ImageRemoveResult holds the delete responses returned by the daemon.
type ImageRemoveResult struct {
Deleted []image.DeleteResponse
Items []image.DeleteResponse
}