image_list.go 911 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package lib
  2. import (
  3. "encoding/json"
  4. "net/url"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/pkg/parsers/filters"
  7. )
  8. // ImageList returns a list of images in the docker host.
  9. func (cli *Client) ImageList(options types.ImageListOptions) ([]types.Image, error) {
  10. var images []types.Image
  11. query := url.Values{}
  12. if options.Filters.Len() > 0 {
  13. filterJSON, err := filters.ToParam(options.Filters)
  14. if err != nil {
  15. return images, err
  16. }
  17. query.Set("filters", filterJSON)
  18. }
  19. if options.MatchName != "" {
  20. // FIXME rename this parameter, to not be confused with the filters flag
  21. query.Set("filter", options.MatchName)
  22. }
  23. if options.All {
  24. query.Set("all", "1")
  25. }
  26. serverResp, err := cli.GET("/images/json?", query, nil)
  27. if err != nil {
  28. return images, err
  29. }
  30. defer ensureReaderClosed(serverResp)
  31. err = json.NewDecoder(serverResp.body).Decode(&images)
  32. return images, err
  33. }