# -*- sh -*- # # system related tests # ## ensure system is clean t POST 'libpod/system/prune?volumes=true&all=true' params='' 200 ## podman system df t GET system/df 200 '{"LayersSize":0,"Images":[],"Containers":[],"Volumes":[],"BuildCache":[],"BuilderSize":0}' t GET libpod/system/df 200 '{"Images":[],"Containers":[],"Volumes":[]}' # Create volume. We expect df to report this volume next invocation of system/df t GET libpod/info 200 volumepath=$(jq -r ".store.volumePath" <<<"$output") t POST libpod/volumes/create name=foo1 201 \ .Name=foo1 \ .Driver=local \ .Mountpoint=$volumepath/foo1/_data \ .CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.* \ .Labels={} \ .Options={} t GET system/df 200 '.Volumes[0].Name=foo1' t GET libpod/system/df 200 '.Volumes[0].VolumeName=foo1' # Create two more volumes to test pruneing t POST libpod/volumes/create \ Name=foo2 \ Label='{"testlabel1":""}' \ Options='{"type":"tmpfs","o":"nodev,noexec"}}' \ 201 \ .Name=foo2 \ .Driver=local \ .Mountpoint=$volumepath/foo2/_data \ .CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.* \ .Labels.testlabel1="" \ .Options.o=nodev,noexec t POST libpod/volumes/create \ Name=foo3 \ Label='{"testlabel1":"testonly"}' \ Options='{"type":"tmpfs","o":"nodev,noexec"}}' \ 201 \ .Name=foo3 \ .Driver=local \ .Mountpoint=$volumepath/foo3/_data \ .CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.* \ .Labels.testlabel1=testonly \ .Options.o=nodev,noexec t GET system/df 200 '.Volumes | length=3' t GET libpod/system/df 200 '.Volumes | length=3' # Prune volumes t POST 'libpod/system/prune?volumes=true&filters={"label":["testlabel1=idontmatch"]}' params='' 200 # nothing should have been pruned t GET system/df 200 '.Volumes | length=3' t GET libpod/system/df 200 '.Volumes | length=3' # only foo3 should be pruned because of filter t POST 'libpod/system/prune?volumes=true&filters={"label":["testlabel1=testonly"]}' params='' 200 .VolumePruneReports[0].Id=foo3 # only foo2 should be pruned because of filter t POST 'libpod/system/prune?volumes=true&filters={"label":["testlabel1"]}' params='' 200 .VolumePruneReports[0].Id=foo2 # foo1, the last remaining volume should be pruned without any filters applied t POST 'libpod/system/prune?volumes=true' params='' 200 .VolumePruneReports[0].Id=foo1 # TODO add other system prune tests for pods / images