diff options
author | Jakub Guzik <jakubmguzik@gmail.com> | 2021-09-02 23:01:37 +0200 |
---|---|---|
committer | Jakub Guzik <jakubmguzik@gmail.com> | 2021-09-03 10:29:31 +0200 |
commit | d346e6e734dbaac911de0d774a5d8703e2abc83d (patch) | |
tree | 0bd5ac510effcc97b70341b6a719cbfcfbc058bc /pkg/domain/utils | |
parent | 469900406ac51332785455bc8668bd1c053badd6 (diff) | |
download | podman-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.go | 24 |
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 +} |