diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-06-12 15:27:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-12 15:27:16 +0200 |
commit | 9faff314218a4d8074a40349a262535a84c4fbab (patch) | |
tree | bc04179f6e3db8d097106eaceda199ee33fb6e1e | |
parent | d4681fafe55340043fa421ae31b98681dd6902c4 (diff) | |
parent | 3bbb692d807277da991a96b336bf88a84b35964d (diff) | |
download | podman-9faff314218a4d8074a40349a262535a84c4fbab.tar.gz podman-9faff314218a4d8074a40349a262535a84c4fbab.tar.bz2 podman-9faff314218a4d8074a40349a262535a84c4fbab.zip |
Merge pull request #3307 from rhatdan/126
If container is not in correct state podman exec should exit with 126
-rw-r--r-- | cmd/podman/exec.go | 7 | ||||
-rw-r--r-- | libpod/container_api.go | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/cmd/podman/exec.go b/cmd/podman/exec.go index deff44a92..0684da842 100644 --- a/cmd/podman/exec.go +++ b/cmd/podman/exec.go @@ -125,5 +125,10 @@ func execCmd(c *cliconfig.ExecValues) error { streams.AttachError = true streams.AttachInput = true - return ctr.Exec(c.Tty, c.Privileged, envs, cmd, c.User, c.Workdir, streams, c.PreserveFDs) + err = ctr.Exec(c.Tty, c.Privileged, envs, cmd, c.User, c.Workdir, streams, c.PreserveFDs) + if errors.Cause(err) == libpod.ErrCtrStateInvalid { + exitCode = 126 + } + + return err } diff --git a/libpod/container_api.go b/libpod/container_api.go index 1894780de..52d3afc0a 100644 --- a/libpod/container_api.go +++ b/libpod/container_api.go @@ -241,7 +241,7 @@ func (c *Container) Exec(tty, privileged bool, env, cmd []string, user, workDir // TODO can probably relax this once we track exec sessions if conState != ContainerStateRunning { - return errors.Errorf("cannot exec into container that is not running") + return errors.Wrapf(ErrCtrStateInvalid, "cannot exec into container that is not running") } if privileged || c.config.Privileged { capList = caps.GetAllCapabilities() |