diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-01-28 08:21:18 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-28 08:21:18 -0800 |
commit | a8bd3473e0bb648be88b6d9b84f18fc097de70ee (patch) | |
tree | 08f7cd1282654c0a82d16d8db5de41d2f6f4bcd5 /pkg/bindings/images/search.go | |
parent | d07c26310697d8874219731c6c42f6d0d0330e87 (diff) | |
parent | 54587335bee45bdd5e4b975b4760b2898a138f2a (diff) | |
download | podman-a8bd3473e0bb648be88b6d9b84f18fc097de70ee.tar.gz podman-a8bd3473e0bb648be88b6d9b84f18fc097de70ee.tar.bz2 podman-a8bd3473e0bb648be88b6d9b84f18fc097de70ee.zip |
Merge pull request #4980 from baude/bindingdocs
[CI:DOCS]Binding overhauls
Diffstat (limited to 'pkg/bindings/images/search.go')
-rw-r--r-- | pkg/bindings/images/search.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkg/bindings/images/search.go b/pkg/bindings/images/search.go new file mode 100644 index 000000000..d98ddf18d --- /dev/null +++ b/pkg/bindings/images/search.go @@ -0,0 +1,40 @@ +package images + +import ( + "context" + "net/http" + "strconv" + + "github.com/containers/libpod/libpod/image" + "github.com/containers/libpod/pkg/bindings" +) + +// Search looks for the given image (term) in container image registries. The optional limit parameter sets +// a maximum number of results returned. The optional filters parameter allow for more specific image +// searches. +func Search(ctx context.Context, term string, limit *int, filters map[string][]string) ([]image.SearchResult, error) { + var ( + searchResults []image.SearchResult + ) + conn, err := bindings.GetConnectionFromContext(ctx) + if err != nil { + return nil, err + } + params := make(map[string]string) + params["term"] = term + if limit != nil { + params["limit"] = strconv.Itoa(*limit) + } + if filters != nil { + stringFilter, err := bindings.FiltersToHTML(filters) + if err != nil { + return nil, err + } + params["filters"] = stringFilter + } + response, err := conn.DoRequest(nil, http.MethodGet, "/images/search", params) + if err != nil { + return searchResults, nil + } + return searchResults, response.Process(&searchResults) +} |