legacy events: also set exitCode

For Status = "die", Docker sets the exit code of the container
to a field "exitCode".  Podman uses "containerExitCode".
Copy the value into "exitCode" as well, for compatibility.

Signed-off-by: Leah Neukirchen <leah@vuxu.org>
This commit is contained in:
Leah Neukirchen
2021-12-17 15:23:34 +01:00
parent a1ebde118a
commit 116a276e8c
2 changed files with 28 additions and 0 deletions

View File

@ -92,6 +92,7 @@ func GetEvents(w http.ResponseWriter, r *http.Request) {
if !utils.IsLibpodRequest(r) && e.Status == "died" {
e.Status = "die"
e.Action = "die"
e.Actor.Attributes["exitCode"] = e.Actor.Attributes["containerExitCode"]
}
if err := coder.Encode(e); err != nil {

View File

@ -0,0 +1,27 @@
# -*- sh -*-
#
# test container-related events
#
podman pull $IMAGE &>/dev/null
# Ensure clean slate
podman rm -a -f &>/dev/null
START=$(date +%s)
podman run $IMAGE false || true
# libpod api
t GET "libpod/events?stream=false&since=$START" 200 \
'select(.status | contains("start")).Action=start' \
'select(.status | contains("died")).Action=died' \
'select(.status | contains("died")).Actor.Attributes.containerExitCode=1'
# compat api, uses status=die (#12643)
t GET "events?stream=false&since=$START" 200 \
'select(.status | contains("start")).Action=start' \
'select(.status | contains("die")).Action=die' \
'select(.status | contains("die")).Actor.Attributes.exitCode=1'
# vim: filetype=sh