mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-08-05 00:15:44 +00:00
events: include labels in pod and volume attributes
Fixes: #26480 Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
This commit is contained in:
parent
334e0f23c8
commit
ef2d2e4a58
3 changed files with 33 additions and 6 deletions
|
|
@ -126,12 +126,10 @@ func (c *Container) newExecDiedEvent(sessionID string, exitCode int) {
|
|||
e.Type = events.Container
|
||||
intExitCode := exitCode
|
||||
e.ContainerExitCode = &intExitCode
|
||||
e.Attributes = make(map[string]string)
|
||||
e.Attributes["execID"] = sessionID
|
||||
|
||||
e.Details = events.Details{
|
||||
Attributes: c.Labels(),
|
||||
}
|
||||
attrs := c.Labels()
|
||||
attrs["execID"] = sessionID
|
||||
e.Attributes = attrs
|
||||
|
||||
if err := c.runtime.eventer.Write(e); err != nil {
|
||||
logrus.Errorf("Unable to write exec died event: %q", err)
|
||||
|
|
@ -169,6 +167,7 @@ func (p *Pod) newPodEvent(status events.Status) {
|
|||
e.ID = p.ID()
|
||||
e.Name = p.Name()
|
||||
e.Type = events.Pod
|
||||
e.Attributes = p.Labels()
|
||||
if err := p.runtime.eventer.Write(e); err != nil {
|
||||
logrus.Errorf("Unable to write pod event: %q", err)
|
||||
}
|
||||
|
|
@ -189,6 +188,7 @@ func (v *Volume) newVolumeEvent(status events.Status) {
|
|||
e := events.NewEvent(status)
|
||||
e.Name = v.Name()
|
||||
e.Type = events.Volume
|
||||
e.Attributes = v.Labels()
|
||||
if err := v.runtime.eventer.Write(e); err != nil {
|
||||
logrus.Errorf("Unable to write volume event: %q", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ func (e EventJournalD) Write(ee Event) error {
|
|||
}
|
||||
case Volume:
|
||||
m["PODMAN_NAME"] = ee.Name
|
||||
if err := addLabelsToJournal(m, ee.Details.Attributes); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// starting with commit 7e6e267329 we set LogLevel=notice for the systemd healthcheck unit
|
||||
|
|
@ -275,6 +278,10 @@ func newEventFromJournalEntry(entry *sdjournal.JournalEntry) (*Event, error) {
|
|||
}
|
||||
}
|
||||
newEvent.Details.ContainerInspectData = entry.Fields["PODMAN_CONTAINER_INSPECT_DATA"]
|
||||
case Volume:
|
||||
if err := getLabelsFromJournal(entry, &newEvent); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
case Network:
|
||||
newEvent.ID = entry.Fields["PODMAN_ID"]
|
||||
newEvent.Network = entry.Fields["PODMAN_NETWORK_NAME"]
|
||||
|
|
|
|||
|
|
@ -443,7 +443,9 @@ EOF
|
|||
# bats test_tags=ci:parallel
|
||||
@test "events - volume events" {
|
||||
local vname=v-$(safename)
|
||||
run_podman volume create $vname
|
||||
local lname=label$(safename | tr -d -)
|
||||
local lvalue="labelvalue-$(safename) $(random_string 5)"
|
||||
run_podman volume create --label="$lname=$lvalue" $vname
|
||||
run_podman volume rm $vname
|
||||
|
||||
run_podman events --since=1m --stream=false --filter volume=$vname
|
||||
|
|
@ -454,6 +456,10 @@ EOF
|
|||
# Prefix test
|
||||
run_podman events --since=1m --stream=false --filter volume=${vname:0:9}
|
||||
assert "$output" = "$notrunc_results"
|
||||
|
||||
# Labels test
|
||||
run_podman events --since=1m --stream=false --filter volume=$vname --filter event=create --format "{{.Attributes}}"
|
||||
assert "$output" =~ "${lname}:${lvalue}" "podman-events output includes volume label"
|
||||
}
|
||||
|
||||
# bats test_tags=ci:parallel
|
||||
|
|
@ -461,3 +467,17 @@ EOF
|
|||
run_podman 125 events --since="the dawn of time...ish"
|
||||
assert "$output" =~ "failed to parse event filters"
|
||||
}
|
||||
|
||||
# bats test_tags=ci:parallel
|
||||
@test "events - pod labels in event attributes" {
|
||||
local pname=p-$(safename)
|
||||
local lname=label$(safename | tr -d -)
|
||||
local lvalue="labelvalue-$(safename) $(random_string 5)"
|
||||
|
||||
run_podman pod create --name $pname --label "$lname=$lvalue"
|
||||
|
||||
run_podman events --since=1m --stream=false --filter type=pod --filter event=create --format "{{.Name}} {{.Attributes}}"
|
||||
assert "$output" =~ "$pname .*${lname}:${lvalue}" "podman-events output includes pod label"
|
||||
|
||||
run_podman pod rm -f $pname
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue