diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-12-14 09:33:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-14 09:33:42 -0500 |
commit | 0fd31e29948631c264df21a128b3de2700f7f007 (patch) | |
tree | fa8fe500592a9f845761cec95b96e0cf397acdcf /libpod/events/journal_linux.go | |
parent | 803c078d3b844339c5fca0088ffcb759b6256b9b (diff) | |
parent | 74fcd9fef3a31fa94f3487361b5fda1180e8cee2 (diff) | |
download | podman-0fd31e29948631c264df21a128b3de2700f7f007.tar.gz podman-0fd31e29948631c264df21a128b3de2700f7f007.tar.bz2 podman-0fd31e29948631c264df21a128b3de2700f7f007.zip |
Merge pull request #8696 from Luap99/podman-events-until
podman events allow future time for --until
Diffstat (limited to 'libpod/events/journal_linux.go')
-rw-r--r-- | libpod/events/journal_linux.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libpod/events/journal_linux.go b/libpod/events/journal_linux.go index 9a514e302..71c638017 100644 --- a/libpod/events/journal_linux.go +++ b/libpod/events/journal_linux.go @@ -8,6 +8,7 @@ import ( "strconv" "time" + "github.com/containers/podman/v2/pkg/util" "github.com/coreos/go-systemd/v22/journal" "github.com/coreos/go-systemd/v22/sdjournal" "github.com/pkg/errors" @@ -72,6 +73,13 @@ func (e EventJournalD) Read(ctx context.Context, options ReadOptions) error { if err != nil { return errors.Wrapf(err, "failed to generate event options") } + var untilTime time.Time + if len(options.Until) > 0 { + untilTime, err = util.ParseInputTime(options.Until) + if err != nil { + return err + } + } j, err := sdjournal.NewJournal() if err != nil { return err @@ -122,10 +130,14 @@ func (e EventJournalD) Read(ctx context.Context, options ReadOptions) error { return errors.Wrap(err, "failed to get journal cursor") } if prevCursor == newCursor { - if len(options.Until) > 0 || !options.Stream { + if !options.Stream || (len(options.Until) > 0 && time.Now().After(untilTime)) { break } - _ = j.Wait(sdjournal.IndefiniteWait) + t := sdjournal.IndefiniteWait + if len(options.Until) > 0 { + t = time.Until(untilTime) + } + _ = j.Wait(t) continue } prevCursor = newCursor |