diff options
author | Jakub Guzik <jakubmguzik@gmail.com> | 2021-03-23 00:13:44 +0100 |
---|---|---|
committer | Jakub Guzik <jakubmguzik@gmail.com> | 2021-03-24 00:40:30 +0100 |
commit | 5eab1b07428e4078bd15ca5b69f28f2733850cdd (patch) | |
tree | acc9b0a1f3b726cc117170bbca5ce60e27aa9083 /libpod/network | |
parent | 4d3e71ad28f75b51dc5fa7a29775ce30c9d5c437 (diff) | |
download | podman-5eab1b07428e4078bd15ca5b69f28f2733850cdd.tar.gz podman-5eab1b07428e4078bd15ca5b69f28f2733850cdd.tar.bz2 podman-5eab1b07428e4078bd15ca5b69f28f2733850cdd.zip |
Unification of label filter across list/prune endpoints
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
Diffstat (limited to 'libpod/network')
-rw-r--r-- | libpod/network/netconflist.go | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/libpod/network/netconflist.go b/libpod/network/netconflist.go index b358bc530..179620a0d 100644 --- a/libpod/network/netconflist.go +++ b/libpod/network/netconflist.go @@ -225,7 +225,7 @@ func IfPassesFilter(netconf *libcni.NetworkConfigList, filters map[string][]stri case "label": // matches all labels - result = matchPruneLabelFilters(netconf, filterValues) + result = util.MatchLabelFilters(filterValues, GetNetworkLabels(netconf)) case "driver": // matches only for the DefaultNetworkDriver @@ -260,7 +260,7 @@ func IfPassesPruneFilter(config *config.Config, netconf *libcni.NetworkConfigLis for key, filterValues := range f { switch strings.ToLower(key) { case "label": - return matchPruneLabelFilters(netconf, filterValues), nil + return util.MatchLabelFilters(filterValues, GetNetworkLabels(netconf)), nil case "until": until, err := util.ComputeUntilTimestamp(key, filterValues) if err != nil { @@ -280,29 +280,6 @@ func IfPassesPruneFilter(config *config.Config, netconf *libcni.NetworkConfigLis return false, nil } -func matchPruneLabelFilters(netconf *libcni.NetworkConfigList, filterValues []string) bool { - labels := GetNetworkLabels(netconf) - result := true -outer: - for _, filterValue := range filterValues { - filterArray := strings.SplitN(filterValue, "=", 2) - filterKey := filterArray[0] - if len(filterArray) > 1 { - filterValue = filterArray[1] - } else { - filterValue = "" - } - for labelKey, labelValue := range labels { - if labelKey == filterKey && (filterValue == "" || labelValue == filterValue) { - result = true - continue outer - } - } - result = false - } - return result -} - func getCreatedTimestamp(config *config.Config, netconf *libcni.NetworkConfigList) (*time.Time, error) { networkConfigPath, err := GetCNIConfigPathByNameOrID(config, netconf.Name) if err != nil { |