Files
podman/cmd/podman/events.go
baude ca1e76ff63 Add event logging to libpod, even display to podman
In lipod, we now log major events that occurr.  These events
can be displayed using the `podman events` command. Each
event contains:

* Type (container, image, volume, pod...)
* Status (create, rm, stop, kill, ....)
* Timestamp in RFC3339Nano format
* Name (if applicable)
* Image (if applicable)

The format of the event and the varlink endpoint are to not
be considered stable until cockpit has done its enablement.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-11 15:08:59 -05:00

49 lines
1.5 KiB
Go

package main
import (
"github.com/containers/libpod/cmd/podman/cliconfig"
"github.com/containers/libpod/pkg/adapter"
"github.com/pkg/errors"
"github.com/spf13/cobra"
)
var (
eventsCommand cliconfig.EventValues
eventsDescription = "Monitor podman events"
_eventsCommand = &cobra.Command{
Use: "events [flags]",
Short: "show podman events",
Long: eventsDescription,
RunE: func(cmd *cobra.Command, args []string) error {
eventsCommand.InputArgs = args
eventsCommand.GlobalFlags = MainGlobalOpts
return eventsCmd(&eventsCommand)
},
Example: `podman events
podman events --filter event=create
podman events --since 1h30s`,
}
)
func init() {
eventsCommand.Command = _eventsCommand
eventsCommand.SetUsageTemplate(UsageTemplate())
flags := eventsCommand.Flags()
flags.StringArrayVar(&eventsCommand.Filter, "filter", []string{}, "filter output")
flags.StringVar(&eventsCommand.Format, "format", "", "format the output using a Go template")
flags.BoolVar(&eventsCommand.Stream, "stream", true, "stream new events; for testing only")
flags.StringVar(&eventsCommand.Since, "since", "", "show all events created since timestamp")
flags.StringVar(&eventsCommand.Until, "until", "", "show all events until timestamp")
flags.MarkHidden("stream")
}
func eventsCmd(c *cliconfig.EventValues) error {
runtime, err := adapter.GetRuntime(&c.PodmanCommand)
if err != nil {
return errors.Wrapf(err, "error creating libpod runtime")
}
defer runtime.Shutdown(false)
return runtime.Events(c)
}