diff options
author | Sascha Grunert <sgrunert@suse.com> | 2019-05-08 08:49:08 +0200 |
---|---|---|
committer | Sascha Grunert <sgrunert@suse.com> | 2019-05-13 14:00:27 +0200 |
commit | d1fc3fc702cce6efca4a20f972ef1931c8392548 (patch) | |
tree | 3202ed2e2a36c622362d6585495c5c564c800962 /libpod | |
parent | d2571c7fd49d22e822a6f3b3796488218c9f9e46 (diff) | |
download | podman-d1fc3fc702cce6efca4a20f972ef1931c8392548.tar.gz podman-d1fc3fc702cce6efca4a20f972ef1931c8392548.tar.bz2 podman-d1fc3fc702cce6efca4a20f972ef1931c8392548.zip |
Add `systemd` build tag
If the systemd development files are not present on the system which
builds podman, then `podman events` will error on runtime creation.
Beside this, a warning will be printed when compiling podman.
This commit mainly exists because projects which depend on libpod
would not need the podman event support and therefore do not need to
rely on the systemd headers.
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/events/events.go | 4 | ||||
-rw-r--r-- | libpod/events/events_linux.go | 8 | ||||
-rw-r--r-- | libpod/events/journal_linux.go | 7 | ||||
-rw-r--r-- | libpod/events/journal_unsupported.go | 8 |
4 files changed, 24 insertions, 3 deletions
diff --git a/libpod/events/events.go b/libpod/events/events.go index 650a47bfb..1ec79bcd7 100644 --- a/libpod/events/events.go +++ b/libpod/events/events.go @@ -10,6 +10,10 @@ import ( "github.com/pkg/errors" ) +// ErrNoJournaldLogging indicates that there is no journald logging +// supported (requires libsystemd) +var ErrNoJournaldLogging = errors.New("No support for journald logging") + // String returns a string representation of EventerType func (et EventerType) String() string { if et == LogFile { diff --git a/libpod/events/events_linux.go b/libpod/events/events_linux.go index da5d7965e..11f309574 100644 --- a/libpod/events/events_linux.go +++ b/libpod/events/events_linux.go @@ -8,12 +8,14 @@ import ( ) // NewEventer creates an eventer based on the eventer type -func NewEventer(options EventerOptions) (Eventer, error) { - var eventer Eventer +func NewEventer(options EventerOptions) (eventer Eventer, err error) { logrus.Debugf("Initializing event backend %s", options.EventerType) switch strings.ToUpper(options.EventerType) { case strings.ToUpper(Journald.String()): - eventer = EventJournalD{options} + eventer, err = newEventJournalD(options) + if err != nil { + return nil, errors.Wrapf(err, "eventer creation") + } case strings.ToUpper(LogFile.String()): eventer = EventLogFile{options} default: diff --git a/libpod/events/journal_linux.go b/libpod/events/journal_linux.go index 8ba5bc2c7..264c84f89 100644 --- a/libpod/events/journal_linux.go +++ b/libpod/events/journal_linux.go @@ -1,3 +1,5 @@ +// +build systemd + package events import ( @@ -15,6 +17,11 @@ type EventJournalD struct { options EventerOptions } +// newEventJournalD creates a new journald Eventer +func newEventJournalD(options EventerOptions) (Eventer, error) { + return EventJournalD{options}, nil +} + // Write to journald func (e EventJournalD) Write(ee Event) error { m := make(map[string]string) diff --git a/libpod/events/journal_unsupported.go b/libpod/events/journal_unsupported.go new file mode 100644 index 000000000..c91d81f12 --- /dev/null +++ b/libpod/events/journal_unsupported.go @@ -0,0 +1,8 @@ +// +build !systemd + +package events + +// newEventJournalD always returns an error if libsystemd not found +func newEventJournalD(options EventerOptions) (Eventer, error) { + return nil, ErrNoJournaldLogging +} |