github.com/endophage/docker@v1.4.2-0.20161027011718-242853499895/client/image_list.go (about) 1 package client 2 3 import ( 4 "encoding/json" 5 "net/url" 6 7 "github.com/docker/docker/api/types" 8 "github.com/docker/docker/api/types/filters" 9 "golang.org/x/net/context" 10 ) 11 12 // ImageList returns a list of images in the docker host. 13 func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) { 14 var images []types.ImageSummary 15 query := url.Values{} 16 17 if options.Filters.Len() > 0 { 18 filterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters) 19 if err != nil { 20 return images, err 21 } 22 query.Set("filters", filterJSON) 23 } 24 if options.MatchName != "" { 25 // FIXME rename this parameter, to not be confused with the filters flag 26 query.Set("filter", options.MatchName) 27 } 28 if options.All { 29 query.Set("all", "1") 30 } 31 32 serverResp, err := cli.get(ctx, "/images/json", query, nil) 33 if err != nil { 34 return images, err 35 } 36 37 err = json.NewDecoder(serverResp.body).Decode(&images) 38 ensureReaderClosed(serverResp) 39 return images, err 40 }