diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-08-03 11:49:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-03 11:49:04 -0400 |
commit | 1709335cf04e947117d4ae4dca72f24f4095511b (patch) | |
tree | 7b3c39b01401b037b90fcef04d5222d30353bc12 | |
parent | 2e3928ee1740c0eb2564ea6bb3004ad5b698ff8f (diff) | |
parent | a5a0ba9cb49a5a311fb0e9245f5bc8e0a35656ba (diff) | |
download | podman-1709335cf04e947117d4ae4dca72f24f4095511b.tar.gz podman-1709335cf04e947117d4ae4dca72f24f4095511b.tar.bz2 podman-1709335cf04e947117d4ae4dca72f24f4095511b.zip |
Merge pull request #7182 from zhangguanzhang/fix-exitCode-for-start
implement the exitcode when start a container with attach
-rw-r--r-- | cmd/podman/containers/start.go | 11 | ||||
-rw-r--r-- | test/e2e/start_test.go | 12 |
2 files changed, 20 insertions, 3 deletions
diff --git a/cmd/podman/containers/start.go b/cmd/podman/containers/start.go index 05fdfc780..ccbe80317 100644 --- a/cmd/podman/containers/start.go +++ b/cmd/podman/containers/start.go @@ -99,12 +99,17 @@ func start(cmd *cobra.Command, args []string) error { } for _, r := range responses { - if r.Err == nil && !startOptions.Attach { - fmt.Println(r.RawInput) + if r.Err == nil { + if startOptions.Attach { + // Implement the exitcode when the only one container is enabled attach + registry.SetExitCode(r.ExitCode) + } else { + fmt.Println(r.RawInput) + } } else { errs = append(errs, r.Err) } } - // TODO need to understand an implement exitcodes + return errs.PrintErrors() } diff --git a/test/e2e/start_test.go b/test/e2e/start_test.go index 78410c9cf..aef5ca001 100644 --- a/test/e2e/start_test.go +++ b/test/e2e/start_test.go @@ -86,6 +86,18 @@ var _ = Describe("Podman start", func() { Expect(session.OutputToString()).To(Equal(name)) }) + It("podman start single container with attach and test the signal", func() { + SkipIfRemote() + session := podmanTest.Podman([]string{"create", "--entrypoint", "sh", ALPINE, "-c", "exit 1"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + cid := session.OutputToString() + session = podmanTest.Podman([]string{"start", "--attach", cid}) + session.WaitWithDefaultTimeout() + // It should forward the signal + Expect(session.ExitCode()).To(Equal(1)) + }) + It("podman start multiple containers", func() { session := podmanTest.Podman([]string{"create", "-d", "--name", "foobar99", ALPINE, "ls"}) session.WaitWithDefaultTimeout() |