mirror of
https://github.com/containers/podman
synced 2024-10-21 17:53:44 +00:00
imagefilter dangling handling corrected
imagefilter dangling=<value> shall not be ignored. this PR handles the value and returns images accordingly. Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
This commit is contained in:
parent
60ef8f8da9
commit
034cc8a5ae
|
@ -37,9 +37,12 @@ func CreatedAfterFilter(createTime time.Time) ResultFilter {
|
|||
}
|
||||
|
||||
// DanglingFilter allows you to filter images for dangling images
|
||||
func DanglingFilter() ResultFilter {
|
||||
func DanglingFilter(danglingImages bool) ResultFilter {
|
||||
return func(i *adapter.ContainerImage) bool {
|
||||
return i.Dangling()
|
||||
if danglingImages {
|
||||
return i.Dangling()
|
||||
}
|
||||
return !i.Dangling()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode"
|
||||
|
@ -359,6 +360,9 @@ func CreateFilterFuncs(ctx context.Context, r *adapter.LocalRuntime, filters []s
|
|||
var filterFuncs []imagefilters.ResultFilter
|
||||
for _, filter := range filters {
|
||||
splitFilter := strings.Split(filter, "=")
|
||||
if len(splitFilter) != 2 {
|
||||
return nil, errors.Errorf("invalid filter syntax %s", filter)
|
||||
}
|
||||
switch splitFilter[0] {
|
||||
case "before":
|
||||
before, err := r.NewImageFromLocal(splitFilter[1])
|
||||
|
@ -373,7 +377,11 @@ func CreateFilterFuncs(ctx context.Context, r *adapter.LocalRuntime, filters []s
|
|||
}
|
||||
filterFuncs = append(filterFuncs, imagefilters.CreatedAfterFilter(after.Created()))
|
||||
case "dangling":
|
||||
filterFuncs = append(filterFuncs, imagefilters.DanglingFilter())
|
||||
danglingImages, err := strconv.ParseBool(splitFilter[1])
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "invalid filter dangling=%s", splitFilter[1])
|
||||
}
|
||||
filterFuncs = append(filterFuncs, imagefilters.DanglingFilter(danglingImages))
|
||||
case "label":
|
||||
labelFilter := strings.Join(splitFilter[1:], "=")
|
||||
filterFuncs = append(filterFuncs, imagefilters.LabelFilter(ctx, labelFilter))
|
||||
|
|
Loading…
Reference in a new issue