mirror of
https://github.com/containers/podman.git
synced 2025-06-24 11:28:24 +08:00
Merge pull request #15633 from thediveo/events
Closes #15617: emit container labels for container exited and exec died events
This commit is contained in:
@ -55,6 +55,12 @@ func (c *Container) newContainerExitedEvent(exitCode int32) {
|
|||||||
e.Image = c.config.RootfsImageName
|
e.Image = c.config.RootfsImageName
|
||||||
e.Type = events.Container
|
e.Type = events.Container
|
||||||
e.ContainerExitCode = int(exitCode)
|
e.ContainerExitCode = int(exitCode)
|
||||||
|
|
||||||
|
e.Details = events.Details{
|
||||||
|
ID: e.ID,
|
||||||
|
Attributes: c.Labels(),
|
||||||
|
}
|
||||||
|
|
||||||
if err := c.runtime.eventer.Write(e); err != nil {
|
if err := c.runtime.eventer.Write(e); err != nil {
|
||||||
logrus.Errorf("Unable to write container exited event: %q", err)
|
logrus.Errorf("Unable to write container exited event: %q", err)
|
||||||
}
|
}
|
||||||
@ -70,6 +76,12 @@ func (c *Container) newExecDiedEvent(sessionID string, exitCode int) {
|
|||||||
e.ContainerExitCode = exitCode
|
e.ContainerExitCode = exitCode
|
||||||
e.Attributes = make(map[string]string)
|
e.Attributes = make(map[string]string)
|
||||||
e.Attributes["execID"] = sessionID
|
e.Attributes["execID"] = sessionID
|
||||||
|
|
||||||
|
e.Details = events.Details{
|
||||||
|
ID: e.ID,
|
||||||
|
Attributes: c.Labels(),
|
||||||
|
}
|
||||||
|
|
||||||
if err := c.runtime.eventer.Write(e); err != nil {
|
if err := c.runtime.eventer.Write(e); err != nil {
|
||||||
logrus.Errorf("Unable to write exec died event: %q", err)
|
logrus.Errorf("Unable to write exec died event: %q", err)
|
||||||
}
|
}
|
||||||
|
@ -194,3 +194,22 @@ EOF
|
|||||||
is "$(wc -l <$eventsFile)" "$(wc -l <<<$output)" "all events are returned"
|
is "$(wc -l <$eventsFile)" "$(wc -l <<<$output)" "all events are returned"
|
||||||
is "${lines[-2]}" ".* log-rotation $eventsFile"
|
is "${lines[-2]}" ".* log-rotation $eventsFile"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Prior to #15633, container labels would not appear in 'die' log events
|
||||||
|
@test "events - labels included in container die" {
|
||||||
|
skip_if_remote "remote does not support --events-backend"
|
||||||
|
local cname=c$(random_string 15)
|
||||||
|
local lname=l$(random_string 10)
|
||||||
|
local lvalue="v$(random_string 10) $(random_string 5)"
|
||||||
|
|
||||||
|
run_podman 17 --events-backend=file run --rm \
|
||||||
|
--name=$cname \
|
||||||
|
--label=$lname="$lvalue" \
|
||||||
|
$IMAGE sh -c 'exit 17'
|
||||||
|
run_podman --events-backend=file events \
|
||||||
|
--filter=container=$cname \
|
||||||
|
--filter=status=died \
|
||||||
|
--stream=false \
|
||||||
|
--format="{{.Attributes.$lname}}"
|
||||||
|
assert "$output" = "$lvalue" "podman-events output includes container label"
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user