summaryrefslogtreecommitdiff
path: root/libpod/events.go
diff options
context:
space:
mode:
authorJake Correnti <jcorrenti13@gmail.com>2022-06-22 16:16:25 -0400
committerJake Correnti <jcorrenti13@gmail.com>2022-06-27 10:44:53 -0400
commit0c1a3b70f5f1b8a3f8d336c6576518fae26c37cf (patch)
treec177c73f4cb8ab7d4cf09b79391f8573ea50685d /libpod/events.go
parentb34cba6cd53cfd4df58f2b26d3e5a6be86dfb132 (diff)
downloadpodman-0c1a3b70f5f1b8a3f8d336c6576518fae26c37cf.tar.gz
podman-0c1a3b70f5f1b8a3f8d336c6576518fae26c37cf.tar.bz2
podman-0c1a3b70f5f1b8a3f8d336c6576518fae26c37cf.zip
Show Health Status events
Previously, health status events were not being generated at all. Both the API and `podman events` will generate health_status events. ``` {"status":"health_status","id":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","from":"localhost/healthcheck-demo:latest","Type":"container","Action":"health_status","Actor":{"ID":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","Attributes":{"containerExitCode":"0","image":"localhost/healthcheck-demo:latest","io.buildah.version":"1.26.1","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"healthcheck-demo"}},"scope":"local","time":1656082205,"timeNano":1656082205882271276,"HealthStatus":"healthy"} ``` ``` 2022-06-24 11:06:04.886238493 -0400 EDT container health_status ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63 (image=localhost/healthcheck-demo:latest, name=healthcheck-demo, health_status=healthy, io.buildah.version=1.26.1, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>) ``` Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
Diffstat (limited to 'libpod/events.go')
-rw-r--r--libpod/events.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/libpod/events.go b/libpod/events.go
index f09d8402a..a7783cf5a 100644
--- a/libpod/events.go
+++ b/libpod/events.go
@@ -33,6 +33,16 @@ func (c *Container) newContainerEvent(status events.Status) {
Attributes: c.Labels(),
}
+ // if the current event is a HealthStatus event, we need to get the current
+ // status of the container to pass to the event
+ if status == events.HealthStatus {
+ containerHealthStatus, err := c.healthCheckStatus()
+ if err != nil {
+ e.HealthStatus = fmt.Sprintf("%v", err)
+ }
+ e.HealthStatus = containerHealthStatus
+ }
+
if err := c.runtime.eventer.Write(e); err != nil {
logrus.Errorf("Unable to write pod event: %q", err)
}