emit container labels also for container exited and exec died events
- adds unit test for container labels on container die event - implements #15617 Signed-off-by: Harald Albrecht <harald.albrecht@gmx.net>
This commit is contained in:
		
							parent
							
								
									6da1eaf287
								
							
						
					
					
						commit
						d759576ab3
					
				| 
						 | 
					@ -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"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue