Merge pull request #6591 from jgallucci32/patch-1

Merged request to fix -f to stop following logs
This commit is contained in:
OpenShift Merge Robot 2020-06-15 13:57:13 -04:00 committed by GitHub
commit 8a42a32c71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

View file

@ -2,6 +2,7 @@ package libpod
import (
"os"
"time"
"github.com/containers/libpod/libpod/define"
"github.com/containers/libpod/libpod/logs"
@ -72,5 +73,27 @@ func (c *Container) readFromLogFile(options *logs.LogOptions, logChannel chan *l
}
options.WaitGroup.Done()
}()
// Check if container is still running or paused
go func() {
if options.Follow {
for {
state, err := c.State()
if err != nil && errors.Cause(err) != define.ErrNoSuchCtr {
logrus.Error(err)
break
} else if err != nil {
break
}
if state != define.ContainerStateRunning && state != define.ContainerStatePaused {
err := t.Stop()
if err != nil {
logrus.Error(err)
}
break
}
time.Sleep(1 * time.Second)
}
}
}()
return nil
}

View file

@ -288,4 +288,16 @@ var _ = Describe("Podman logs", func() {
logc.WaitWithDefaultTimeout()
Expect(logc).To(Exit(0))
})
It("follow output stopped container", func() {
containerName := "logs-f"
logc := podmanTest.Podman([]string{"run", "--name", containerName, "-d", ALPINE})
logc.WaitWithDefaultTimeout()
Expect(logc).To(Exit(0))
results := podmanTest.Podman([]string{"logs", "-f", containerName})
results.WaitWithDefaultTimeout()
Expect(results).To(Exit(0))
})
})