summaryrefslogtreecommitdiff
path: root/pkg/domain/utils
diff options
context:
space:
mode:
authorJakub Guzik <jakubmguzik@gmail.com>2021-09-02 23:01:37 +0200
committerJakub Guzik <jakubmguzik@gmail.com>2021-09-03 10:29:31 +0200
commitd346e6e734dbaac911de0d774a5d8703e2abc83d (patch)
tree0bd5ac510effcc97b70341b6a719cbfcfbc058bc /pkg/domain/utils
parent469900406ac51332785455bc8668bd1c053badd6 (diff)
downloadpodman-d346e6e734dbaac911de0d774a5d8703e2abc83d.tar.gz
podman-d346e6e734dbaac911de0d774a5d8703e2abc83d.tar.bz2
podman-d346e6e734dbaac911de0d774a5d8703e2abc83d.zip
Add filtering functionality to http api secrets list
Filtering is missing in both compat API and libpod API, while docker has filtering functinality. This commit enables filtering option using name and id in both libpod and http API. Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
Diffstat (limited to 'pkg/domain/utils')
-rw-r--r--pkg/domain/utils/secrets_filters.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/pkg/domain/utils/secrets_filters.go b/pkg/domain/utils/secrets_filters.go
new file mode 100644
index 000000000..3ff7c7530
--- /dev/null
+++ b/pkg/domain/utils/secrets_filters.go
@@ -0,0 +1,24 @@
+package utils
+
+import (
+ "strings"
+
+ "github.com/containers/common/pkg/secrets"
+ "github.com/containers/podman/v3/pkg/util"
+ "github.com/pkg/errors"
+)
+
+func IfPassesSecretsFilter(s secrets.Secret, filters map[string][]string) (bool, error) {
+ result := true
+ for key, filterValues := range filters {
+ switch strings.ToLower(key) {
+ case "name":
+ result = util.StringMatchRegexSlice(s.Name, filterValues)
+ case "id":
+ result = util.StringMatchRegexSlice(s.ID, filterValues)
+ default:
+ return false, errors.Errorf("invalid filter %q", key)
+ }
+ }
+ return result, nil
+}