mirror of
https://github.com/containers/podman.git
synced 2025-12-05 04:40:47 +08:00
Ensure that the DF endpoint updated volume refcount
The field was already exposed already in the `system df` output so this just required a bit of plumbing and testing. As part of this, fix `podman systemd df` volume in-use logic. Previously, volumes were only considered to be in use if the container using them was running. This does not match Docker's behavior, where a volume is considered in use as long as a container exists that uses the volume, even if said container is not running. Fixes #15720 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@@ -25,6 +25,24 @@ t GET system/df 200 '.Volumes[0].Name=foo1'
|
||||
|
||||
t GET libpod/system/df 200 '.Volumes[0].VolumeName=foo1'
|
||||
|
||||
# Verify that no containers reference the volume
|
||||
t GET system/df 200 '.Volumes[0].UsageData.RefCount=0'
|
||||
|
||||
# Make a container using the volume
|
||||
podman pull $IMAGE &>/dev/null
|
||||
t POST containers/create Image=$IMAGE Volumes='{"/test":{}}' HostConfig='{"Binds":["foo1:/test"]}' 201 \
|
||||
.Id~[0-9a-f]\\{64\\}
|
||||
cid=$(jq -r '.Id' <<<"$output")
|
||||
|
||||
# Verify that one container references the volume
|
||||
t GET system/df 200 '.Volumes[0].UsageData.RefCount=1'
|
||||
|
||||
# Remove the container
|
||||
t DELETE containers/$cid?v=true 204
|
||||
|
||||
# Verify that no containers reference the volume
|
||||
t GET system/df 200 '.Volumes[0].UsageData.RefCount=0'
|
||||
|
||||
# Create two more volumes to test pruneing
|
||||
t POST libpod/volumes/create \
|
||||
Name=foo2 \
|
||||
|
||||
@@ -27,7 +27,7 @@ function teardown() {
|
||||
run_podman system df --format '{{ .Type }}:{{ .Total }}:{{ .Active }}'
|
||||
is "${lines[0]}" "Images:1:1" "system df : Images line"
|
||||
is "${lines[1]}" "Containers:2:1" "system df : Containers line"
|
||||
is "${lines[2]}" "Local Volumes:2:1" "system df : Volumes line"
|
||||
is "${lines[2]}" "Local Volumes:2:2" "system df : Volumes line"
|
||||
|
||||
# Try -v. (Grrr. No way to specify individual formats)
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user