mirror of
https://github.com/containers/podman.git
synced 2025-06-25 20:26:51 +08:00
Merge pull request #5272 from edsantiago/filter_since
podman images: add --filter=since=XX
This commit is contained in:
@ -29,11 +29,11 @@ Filter output based on conditions provided
|
|||||||
|
|
||||||
Filters:
|
Filters:
|
||||||
|
|
||||||
**after==TIMESTRING**
|
**since=IMAGE**
|
||||||
Filter on images created after the given time.Time.
|
Filter on images created after the given IMAGE (name or tag).
|
||||||
|
|
||||||
**before==TIMESTRING**
|
**before=IMAGE**
|
||||||
Filter on images created before the given time.Time.
|
Filter on images created before the given IMAGE (name or tag).
|
||||||
|
|
||||||
**dangling=true|false**
|
**dangling=true|false**
|
||||||
Show dangling images. Dangling images are a file system layer that was used in a previous build of an image and is no longer referenced by any active images. They are denoted with the <none> tag, consume disk space and serve no active purpose.
|
Show dangling images. Dangling images are a file system layer that was used in a previous build of an image and is no longer referenced by any active images. They are denoted with the <none> tag, consume disk space and serve no active purpose.
|
||||||
|
@ -141,7 +141,7 @@ func (ir *Runtime) createFilterFuncs(filters []string, img *Image) ([]ResultFilt
|
|||||||
return nil, errors.Wrapf(err, "unable to find image %s in local stores", splitFilter[1])
|
return nil, errors.Wrapf(err, "unable to find image %s in local stores", splitFilter[1])
|
||||||
}
|
}
|
||||||
filterFuncs = append(filterFuncs, CreatedBeforeFilter(before.Created()))
|
filterFuncs = append(filterFuncs, CreatedBeforeFilter(before.Created()))
|
||||||
case "after":
|
case "since", "after":
|
||||||
after, err := ir.NewFromLocal(splitFilter[1])
|
after, err := ir.NewFromLocal(splitFilter[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrapf(err, "unable to find image %s in local stores", splitFilter[1])
|
return nil, errors.Wrapf(err, "unable to find image %s in local stores", splitFilter[1])
|
||||||
|
@ -74,4 +74,40 @@ size | [0-9]\\\+
|
|||||||
run_podman rm my-container
|
run_podman rm my-container
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "podman images - filter" {
|
||||||
|
skip_if_remote "podman commit -q is broken in podman-remote"
|
||||||
|
|
||||||
|
run_podman inspect --format '{{.ID}}' $IMAGE
|
||||||
|
iid=$output
|
||||||
|
|
||||||
|
run_podman images --noheading --filter=after=$iid
|
||||||
|
is "$output" "" "baseline: empty results from filter (after)"
|
||||||
|
|
||||||
|
run_podman images --noheading --filter=before=$iid
|
||||||
|
is "$output" "" "baseline: empty results from filter (before)"
|
||||||
|
|
||||||
|
# Create a dummy container, then commit that as an image. We will
|
||||||
|
# now be able to use before/after/since queries
|
||||||
|
run_podman run --name mytinycontainer $IMAGE true
|
||||||
|
run_podman commit -q mytinycontainer mynewimage
|
||||||
|
new_iid=$output
|
||||||
|
|
||||||
|
# (refactor common options for legibility)
|
||||||
|
opts='--noheading --no-trunc --format={{.ID}}--{{.Repository}}:{{.Tag}}'
|
||||||
|
|
||||||
|
run_podman images ${opts} --filter=after=$iid
|
||||||
|
is "$output" "sha256:$new_iid--localhost/mynewimage:latest" "filter: after"
|
||||||
|
|
||||||
|
# Same thing, with 'since' instead of 'after'
|
||||||
|
run_podman images ${opts} --filter=since=$iid
|
||||||
|
is "$output" "sha256:$new_iid--localhost/mynewimage:latest" "filter: since"
|
||||||
|
|
||||||
|
run_podman images ${opts} --filter=before=mynewimage
|
||||||
|
is "$output" "sha256:$iid--$IMAGE" "filter: before"
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
run_podman rmi mynewimage
|
||||||
|
run_podman rm mytinycontainer
|
||||||
|
}
|
||||||
|
|
||||||
# vim: filetype=sh
|
# vim: filetype=sh
|
||||||
|
Reference in New Issue
Block a user