Documentation ¶
Index ¶
Constants ¶
const ( // Container - event is related to containers Container Type = "container" // Image - event is related to images Image Type = "image" // Network - event is related to networks Network Type = "network" // Pod - event is related to pods Pod Type = "pod" // System - event is related to Podman whole and not to any specific // container/pod/image/volume System Type = "system" // Volume - event is related to volumes Volume Type = "volume" // Attach ... Attach Status = "attach" // AutoUpdate ... AutoUpdate Status = "auto-update" // Build ... Build Status = "build" // Checkpoint ... Checkpoint Status = "checkpoint" // Cleanup ... Cleanup Status = "cleanup" // Commit ... Commit Status = "commit" // Copy ... Copy Status = "copy" // Create ... Create Status = "create" // Exec ... Exec Status = "exec" // ExecDied indicates that an exec session in a container died. ExecDied Status = "exec_died" // Exited indicates that a container's process died Exited Status = "died" // Export ... Export Status = "export" // History ... History Status = "history" // Import ... Import Status = "import" // Init ... Init Status = "init" // Kill ... Kill Status = "kill" // LoadFromArchive ... LoadFromArchive Status = "loadfromarchive" // Mount ... Mount Status = "mount" // NetworkConnect NetworkConnect Status = "connect" // NetworkDisconnect NetworkDisconnect Status = "disconnect" // Pause ... Pause Status = "pause" // Prune ... Prune Status = "prune" // Pull ... Pull Status = "pull" // Push ... Push Status = "push" // Refresh indicates that the system refreshed the state after a // reboot. Refresh Status = "refresh" // Remove ... Remove Status = "remove" // Rename indicates that a container was renamed Rename Status = "rename" // Renumber indicates that lock numbers were reallocated at user // request. Renumber Status = "renumber" // Restart indicates the target was restarted via an API call. Restart Status = "restart" // Restore ... Restore Status = "restore" // Rotate indicates that the log file was rotated Rotate Status = "log-rotation" // Save ... Save Status = "save" // Start ... Start Status = "start" // Stop ... Stop Status = "stop" // Sync ... Sync Status = "sync" // Tag ... Tag Status = "tag" // Unmount ... Unmount Status = "unmount" // Unpause ... Unpause Status = "unpause" // Untag ... Untag Status = "untag" )
const DefaultEventerType = LogFile
DefaultEventerType is logfile when systemd is not present
Variables ¶
var ( // ErrEventTypeBlank indicates the event log found something done by podman // but it isn't likely an event ErrEventTypeBlank = errors.New("event type blank") // ErrEventNotFound indicates that the event was not found in the event log ErrEventNotFound = errors.New("unable to find event") )
var ErrNoJournaldLogging = errors.New("No support for journald logging")
ErrNoJournaldLogging indicates that there is no journald logging supported (requires libsystemd)
Functions ¶
func IsValidEventer ¶
IsValidEventer checks if the given string is a valid eventer type.
Types ¶
type Details ¶
type Details struct { // ID is the event ID ID string // Attributes can be used to describe specifics about the event // in the case of a container event, labels for example Attributes map[string]string }
Details describes specifics about certain events, specifically around container events
type Event ¶
type Event struct { // ContainerExitCode is for storing the exit code of a container which can // be used for "internal" event notification ContainerExitCode int `json:",omitempty"` // ID can be for the container, image, volume, etc ID string `json:",omitempty"` // Image used where applicable Image string `json:",omitempty"` // Name where applicable Name string `json:",omitempty"` // Network is the network name in a network event Network string `json:"network,omitempty"` // Status describes the event that occurred Status Status // Time the event occurred Time time.Time // Type of event that occurred Type Type Details }
Event describes the attributes of a libpod event
func (*Event) Recycle ¶
Recycle checks if the event log has reach a limit and if so renames the current log and starts a new one. The remove bool indicates the old log file should be deleted.
func (*Event) ToHumanReadable ¶
ToHumanReadable returns human readable event as a formatted string
func (*Event) ToJSONString ¶
ToJSONString returns the event as a json'ified string
type EventLogFile ¶
type EventLogFile struct {
// contains filtered or unexported fields
}
EventLogFile is the structure for event writing to a logfile. It contains the eventer options and the event itself. Methods for reading and writing are also defined from it.
func (EventLogFile) Read ¶
func (e EventLogFile) Read(ctx context.Context, options ReadOptions) error
Reads from the log file
func (EventLogFile) String ¶
func (e EventLogFile) String() string
String returns a string representation of the logger
type EventToNull ¶
type EventToNull struct{}
EventToNull is an eventer type that only performs write operations and only writes to /dev/null. It is meant for unittests only
func (EventToNull) Read ¶
func (e EventToNull) Read(ctx context.Context, options ReadOptions) error
Read does nothing. Do not use it.
func (EventToNull) String ¶
func (e EventToNull) String() string
String returns a string representation of the logger
func (EventToNull) Write ¶
func (e EventToNull) Write(ee Event) error
Write eats the event and always returns nil
type Eventer ¶
type Eventer interface { // Write an event to a backend Write(event Event) error // Read an event from the backend Read(ctx context.Context, options ReadOptions) error // String returns the type of event logger String() string }
Eventer is the interface for journald or file event logging
func NewEventer ¶
func NewEventer(options EventerOptions) (Eventer, error)
NewEventer creates an eventer based on the eventer type
func NewNullEventer ¶
func NewNullEventer() Eventer
NewNullEventer returns a new null eventer. You should only do this for the purposes on internal libpod testing.
type EventerOptions ¶
type EventerOptions struct { // EventerType describes whether to use journald or a file EventerType string // LogFilePath is the path to where the log file should reside if using // the file logger LogFilePath string // LogFileMaxSize is the default limit used for rotating the log file LogFileMaxSize uint64 }
EventerOptions describe options that need to be passed to create an eventer
type EventerType ¶
type EventerType int
EventerType ...
const ( // LogFile indicates the event logger will be a logfile LogFile EventerType = iota // Journald indicates journald should be used to log events Journald EventerType = iota // Null is a no-op events logger. It does not read or write events. Null EventerType = iota )
func (EventerType) String ¶
func (et EventerType) String() string
String returns a string representation of EventerType
type ReadOptions ¶
type ReadOptions struct { // EventChannel is the comm path back to user EventChannel chan *Event // Filters are key/value pairs that describe to limit output Filters []string // FromStart means you start reading from the start of the logs FromStart bool // Since reads "since" the given time Since string // Stream is follow Stream bool // Until reads "until" the given time Until string }
ReadOptions describe the attributes needed to read event logs
type Status ¶
type Status string
Status describes the actual event action (stop, start, create, kill)
func StringToStatus ¶
StringToStatus converts a string to an Event Status TODO if we add more events, we might consider a go-generator to create the switch statement