diff options
author | Matthew Heon <matthew.heon@pm.me> | 2022-08-25 14:10:49 -0400 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2022-08-25 16:59:26 -0400 |
commit | c7fda06f669ab1be6b36aa3312c6c6d732e06c9b (patch) | |
tree | 122d929a0b557843fbf57afb97bd8b6dd658db2d | |
parent | f98215c668746e9a7b9603448428cd1301a56eac (diff) | |
download | podman-c7fda06f669ab1be6b36aa3312c6c6d732e06c9b.tar.gz podman-c7fda06f669ab1be6b36aa3312c6c6d732e06c9b.tar.bz2 podman-c7fda06f669ab1be6b36aa3312c6c6d732e06c9b.zip |
Compat API image remove events now have 'delete' status
Change only the compat API, so we don't force a breaking change
on Libpod API users.
Partial fix for #15485
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
-rw-r--r-- | pkg/api/handlers/compat/events.go | 6 | ||||
-rw-r--r-- | test/apiv2/10-images.at | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/pkg/api/handlers/compat/events.go b/pkg/api/handlers/compat/events.go index 18fb35966..105404a0d 100644 --- a/pkg/api/handlers/compat/events.go +++ b/pkg/api/handlers/compat/events.go @@ -89,6 +89,12 @@ func GetEvents(w http.ResponseWriter, r *http.Request) { } e := entities.ConvertToEntitiesEvent(*evt) + // Some events differ between Libpod and Docker endpoints. + // Handle these differences for Docker-compat. + if !utils.IsLibpodRequest(r) && e.Type == "image" && e.Status == "remove" { + e.Status = "delete" + e.Action = "delete" + } if !utils.IsLibpodRequest(r) && e.Status == "died" { e.Status = "die" e.Action = "die" diff --git a/test/apiv2/10-images.at b/test/apiv2/10-images.at index 4fd954e37..86ee2a1f5 100644 --- a/test/apiv2/10-images.at +++ b/test/apiv2/10-images.at @@ -239,4 +239,23 @@ fi cleanBuildTest +# compat API vs libpod API event differences: +# on image removal, libpod produces 'remove' events. +# compat produces 'delete' events. +podman image build -t test:test -<<EOF +from $IMAGE +EOF + +START=$(date +%s) + +t DELETE libpod/images/test:test 200 +# HACK HACK HACK There is a race around events being added to the journal +# This sleep seems to avoid the race. +# If it fails and begins to flake, investigate a retry loop. +sleep 1 +t GET "libpod/events?stream=false&since=$START" 200 \ + 'select(.status | contains("remove")).Action=remove' +t GET "events?stream=false&since=$START" 200 \ + 'select(.status | contains("delete")).Action=delete' + # vim: filetype=sh |