mirror of
https://github.com/containers/podman.git
synced 2025-12-02 02:58:03 +08:00
Merge pull request #24665 from ksw2000/refactor-eventer-type
refact: EventerType and improve consistency
This commit is contained in:
@@ -6,16 +6,17 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// EventerType ...
|
||||
type EventerType int
|
||||
// EventerType describes the type of event logger
|
||||
// The string values for EventerType should be entirely lowercase.
|
||||
type EventerType string
|
||||
|
||||
const (
|
||||
// LogFile indicates the event logger will be a logfile
|
||||
LogFile EventerType = iota
|
||||
LogFile EventerType = "file"
|
||||
// Journald indicates journald should be used to log events
|
||||
Journald EventerType = iota
|
||||
Journald EventerType = "journald"
|
||||
// Null is a no-op events logger. It does not read or write events.
|
||||
Null EventerType = iota
|
||||
Null EventerType = "none"
|
||||
)
|
||||
|
||||
// Event describes the attributes of a libpod event
|
||||
|
||||
@@ -15,26 +15,13 @@ var ErrNoJournaldLogging = errors.New("no support for journald logging")
|
||||
|
||||
// String returns a string representation of EventerType
|
||||
func (et EventerType) String() string {
|
||||
switch et {
|
||||
case LogFile:
|
||||
return "file"
|
||||
case Journald:
|
||||
return "journald"
|
||||
case Null:
|
||||
return "none"
|
||||
default:
|
||||
return "invalid"
|
||||
}
|
||||
return string(et)
|
||||
}
|
||||
|
||||
// IsValidEventer checks if the given string is a valid eventer type.
|
||||
func IsValidEventer(eventer string) bool {
|
||||
switch eventer {
|
||||
case LogFile.String():
|
||||
return true
|
||||
case Journald.String():
|
||||
return true
|
||||
case Null.String():
|
||||
switch EventerType(eventer) {
|
||||
case LogFile, Journald, Null:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
||||
@@ -10,12 +10,12 @@ import (
|
||||
// NewEventer creates an eventer based on the eventer type
|
||||
func NewEventer(options EventerOptions) (Eventer, error) {
|
||||
logrus.Debugf("Initializing event backend %s", options.EventerType)
|
||||
switch strings.ToUpper(options.EventerType) {
|
||||
case strings.ToUpper(LogFile.String()):
|
||||
switch EventerType(strings.ToLower(options.EventerType)) {
|
||||
case LogFile:
|
||||
return EventLogFile{options}, nil
|
||||
case strings.ToUpper(Null.String()):
|
||||
case Null:
|
||||
return newNullEventer(), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown event logger type: %s", strings.ToUpper(options.EventerType))
|
||||
return nil, fmt.Errorf("unknown event logger type: %s", strings.ToLower(options.EventerType))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,18 +10,14 @@ import (
|
||||
// NewEventer creates an eventer based on the eventer type
|
||||
func NewEventer(options EventerOptions) (Eventer, error) {
|
||||
logrus.Debugf("Initializing event backend %s", options.EventerType)
|
||||
switch strings.ToUpper(options.EventerType) {
|
||||
case strings.ToUpper(Journald.String()):
|
||||
eventer, err := newEventJournalD(options)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("eventer creation: %w", err)
|
||||
}
|
||||
return eventer, nil
|
||||
case strings.ToUpper(LogFile.String()):
|
||||
switch EventerType(strings.ToLower(options.EventerType)) {
|
||||
case Journald:
|
||||
return newJournalDEventer(options)
|
||||
case LogFile:
|
||||
return newLogFileEventer(options)
|
||||
case strings.ToUpper(Null.String()):
|
||||
case Null:
|
||||
return newNullEventer(), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown event logger type: %s", strings.ToUpper(options.EventerType))
|
||||
return nil, fmt.Errorf("unknown event logger type: %s", strings.ToLower(options.EventerType))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ type EventJournalD struct {
|
||||
options EventerOptions
|
||||
}
|
||||
|
||||
// newEventJournalD creates a new journald Eventer
|
||||
func newEventJournalD(options EventerOptions) (Eventer, error) {
|
||||
// newJournalDEventer creates a new EventJournalD Eventer
|
||||
func newJournalDEventer(options EventerOptions) (Eventer, error) {
|
||||
return EventJournalD{options}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ package events
|
||||
// DefaultEventerType is logfile when systemd is not present
|
||||
const DefaultEventerType = LogFile
|
||||
|
||||
// newEventJournalD always returns an error if libsystemd not found
|
||||
func newEventJournalD(options EventerOptions) (Eventer, error) {
|
||||
// newJournalDEventer always returns an error if libsystemd not found
|
||||
func newJournalDEventer(options EventerOptions) (Eventer, error) {
|
||||
return nil, ErrNoJournaldLogging
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user