зеркало из https://github.com/microsoft/docker.git
Merge pull request #38171 from ZYecho/fix-multi-images-filter
cli: fix images filter when use multi reference filter
This commit is contained in:
Коммит
618741ba87
|
@ -152,6 +152,9 @@ func (i *ImageService) Images(imageFilters filters.Args, all bool, withExtraAttr
|
|||
if matchErr != nil {
|
||||
return nil, matchErr
|
||||
}
|
||||
if found {
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
continue
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package image // import "github.com/docker/docker/integration/image"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
"github.com/docker/docker/internal/test/request"
|
||||
"gotest.tools/assert"
|
||||
is "gotest.tools/assert/cmp"
|
||||
)
|
||||
|
||||
// Regression : #38171
|
||||
func TestImagesFilterMultiReference(t *testing.T) {
|
||||
defer setupTest(t)()
|
||||
client := request.NewAPIClient(t)
|
||||
ctx := context.Background()
|
||||
|
||||
name := "images_filter_multi_reference"
|
||||
repoTags := []string{
|
||||
name + ":v1",
|
||||
name + ":v2",
|
||||
name + ":v3",
|
||||
name + ":v4",
|
||||
}
|
||||
|
||||
for _, repoTag := range repoTags {
|
||||
err := client.ImageTag(ctx, "busybox:latest", repoTag)
|
||||
assert.NilError(t, err)
|
||||
}
|
||||
|
||||
filter := filters.NewArgs()
|
||||
filter.Add("reference", repoTags[0])
|
||||
filter.Add("reference", repoTags[1])
|
||||
filter.Add("reference", repoTags[2])
|
||||
options := types.ImageListOptions{
|
||||
All: false,
|
||||
Filters: filter,
|
||||
}
|
||||
images, err := client.ImageList(ctx, options)
|
||||
assert.NilError(t, err)
|
||||
|
||||
assert.Check(t, is.Equal(len(images[0].RepoTags), 3))
|
||||
for _, repoTag := range images[0].RepoTags {
|
||||
if repoTag != repoTags[0] && repoTag != repoTags[1] && repoTag != repoTags[2] {
|
||||
t.Errorf("list images doesn't match any repoTag we expected, repoTag: %s", repoTag)
|
||||
}
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче