summaryrefslogtreecommitdiff
path: root/pkg/bindings/images/search.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-01-28 08:21:18 -0800
committerGitHub <noreply@github.com>2020-01-28 08:21:18 -0800
commita8bd3473e0bb648be88b6d9b84f18fc097de70ee (patch)
tree08f7cd1282654c0a82d16d8db5de41d2f6f4bcd5 /pkg/bindings/images/search.go
parentd07c26310697d8874219731c6c42f6d0d0330e87 (diff)
parent54587335bee45bdd5e4b975b4760b2898a138f2a (diff)
downloadpodman-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.go40
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)
+}