diff options
author | Matthew Heon <matthew.heon@pm.me> | 2019-12-26 17:45:55 -0500 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2019-12-26 17:45:55 -0500 |
commit | 25860df8785c6d51ced8320ec6d0d9620171bdb9 (patch) | |
tree | 5dd5aa1f2d1ac038d28ad6261640436c1e461462 | |
parent | c759c3f78dcbbf5dec462a863ad25cd41a1707b7 (diff) | |
download | podman-25860df8785c6d51ced8320ec6d0d9620171bdb9.tar.gz podman-25860df8785c6d51ced8320ec6d0d9620171bdb9.tar.bz2 podman-25860df8785c6d51ced8320ec6d0d9620171bdb9.zip |
The --quiet flag does not conflict with templates in ps
To match Docker behavior, make `--quiet` and `--format` with a Go
template not conflict. Instead, just turn off `--quiet` in such
cases, as we'll be using Go template output instead.
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
-rw-r--r-- | cmd/podman/ps.go | 12 | ||||
-rw-r--r-- | test/e2e/ps_test.go | 15 |
2 files changed, 23 insertions, 4 deletions
diff --git a/cmd/podman/ps.go b/cmd/podman/ps.go index 9fad0ea65..4ac779430 100644 --- a/cmd/podman/ps.go +++ b/cmd/podman/ps.go @@ -204,11 +204,15 @@ func checkFlagsPassed(c *cliconfig.PsValues) error { if c.Last >= 0 && c.Latest { return errors.Errorf("last and latest are mutually exclusive") } - // Quiet conflicts with size, namespace, and format with a Go template + // Quiet conflicts with size and namespace and is overridden by a Go + // template. if c.Quiet { - if c.Size || c.Namespace || (c.Flag("format").Changed && - c.Format != formats.JSONString) { - return errors.Errorf("quiet conflicts with size, namespace, and format with go template") + if c.Size || c.Namespace { + return errors.Errorf("quiet conflicts with size and namespace") + } + if c.Flag("format").Changed && c.Format != formats.JSONString { + // Quiet is overridden by Go template output. + c.Quiet = false } } // Size and namespace conflict with each other diff --git a/test/e2e/ps_test.go b/test/e2e/ps_test.go index a436d4f09..362c7aabb 100644 --- a/test/e2e/ps_test.go +++ b/test/e2e/ps_test.go @@ -361,4 +361,19 @@ var _ = Describe("Podman ps", func() { Expect(len(output)).To(Equal(1)) Expect(output[0]).To(Equal(fullCid)) }) + + It("podman ps quiet template", func() { + ctrName := "testCtr" + session := podmanTest.Podman([]string{"run", "-d", "--name", ctrName, ALPINE, "top"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + result := podmanTest.Podman([]string{"ps", "-q", "-a", "--format", "{{ .Names }}"}) + result.WaitWithDefaultTimeout() + Expect(result.ExitCode()).To(Equal(0)) + + output := result.OutputToStringArray() + Expect(len(output)).To(Equal(1)) + Expect(output[0]).To(Equal(ctrName)) + }) }) |