summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangguanzhang <zhangguanzhang@qq.com>2020-08-01 23:37:41 +0800
committerValentin Rothberg <rothberg@redhat.com>2020-08-11 12:15:24 +0200
commit85d7cb5fd42642b26b0fe3c98f165c081b41c45e (patch)
tree463a6f3a72500090ab9b800f75f08bc948621ecc
parentd6442f5f571112d66fd62309a2e8e15c163ff4f3 (diff)
downloadpodman-85d7cb5fd42642b26b0fe3c98f165c081b41c45e.tar.gz
podman-85d7cb5fd42642b26b0fe3c98f165c081b41c45e.tar.bz2
podman-85d7cb5fd42642b26b0fe3c98f165c081b41c45e.zip
implement the exitcode when start a container with attach
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
-rw-r--r--cmd/podman/containers/start.go11
-rw-r--r--test/e2e/start_test.go12
2 files changed, 20 insertions, 3 deletions
diff --git a/cmd/podman/containers/start.go b/cmd/podman/containers/start.go
index 8f9984421..84a7aa4e2 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 761b1c4ca..3cc1668e7 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()