diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-05-30 15:15:57 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-05-30 15:55:20 +0200 |
commit | 0e58636c3a599bb3d7d5ef06ab2773befe8a0150 (patch) | |
tree | 42435d07701510a6c7dd8bd4bbcbb5720f52b4ae /pkg | |
parent | a6f8cad545fa3242a2778c9a0d25da4da0a51ce2 (diff) | |
download | podman-0e58636c3a599bb3d7d5ef06ab2773befe8a0150.tar.gz podman-0e58636c3a599bb3d7d5ef06ab2773befe8a0150.tar.bz2 podman-0e58636c3a599bb3d7d5ef06ab2773befe8a0150.zip |
podman machine ssh: set correct exit code
Forward the ssh exit code to the podman caller. This is useful for
scripts. Use the same logic as podman unshare.
Fixes #14401
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/machine/e2e/config.go | 8 | ||||
-rw-r--r-- | pkg/machine/e2e/ssh_test.go | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/pkg/machine/e2e/config.go b/pkg/machine/e2e/config.go index c17b840d3..248a2f0ad 100644 --- a/pkg/machine/e2e/config.go +++ b/pkg/machine/e2e/config.go @@ -85,6 +85,14 @@ func (ms *machineSession) outputToString() string { return strings.Join(fields, " ") } +// errorToString returns the error output from a session in string form +func (ms *machineSession) errorToString() string { + if ms == nil || ms.Err == nil || ms.Err.Contents() == nil { + return "" + } + return string(ms.Err.Contents()) +} + // newMB constructor for machine test builders func newMB() (*machineTestBuilder, error) { mb := machineTestBuilder{ diff --git a/pkg/machine/e2e/ssh_test.go b/pkg/machine/e2e/ssh_test.go index 155d39a64..9ee31ac26 100644 --- a/pkg/machine/e2e/ssh_test.go +++ b/pkg/machine/e2e/ssh_test.go @@ -56,5 +56,12 @@ var _ = Describe("podman machine ssh", func() { Expect(err).To(BeNil()) Expect(sshSession).To(Exit(0)) Expect(sshSession.outputToString()).To(ContainSubstring("Fedora CoreOS")) + + // keep exit code + sshSession, err = mb.setName(name).setCmd(ssh.withSSHComand([]string{"false"})).run() + Expect(err).To(BeNil()) + Expect(sshSession).To(Exit(1)) + Expect(sshSession.outputToString()).To(Equal("")) + Expect(sshSession.errorToString()).To(Equal("")) }) }) |