mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	cli: fix images filter when use multi reference filter
Signed-off-by: zhangyue <zy675793960@yeah.net>
This commit is contained in:
		
							parent
							
								
									68cbc3712c
								
							
						
					
					
						commit
						5007c36d71
					
				
					 2 changed files with 53 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										50
									
								
								integration/image/list_test.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								integration/image/list_test.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue