diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-06-03 00:02:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-03 00:02:20 +0200 |
commit | 26bb48951fa55924fd4cdb9b2ef72e19a471b959 (patch) | |
tree | 202118fd8fe72e215b9795cb8d1f506a69dc62cb /libpod/container_exec.go | |
parent | 4632a4b706e94fce7f85e53659dd04484d988ac7 (diff) | |
parent | 69020c7040415b532f4fe5aaaacdbd288a67b71e (diff) | |
download | podman-26bb48951fa55924fd4cdb9b2ef72e19a471b959.tar.gz podman-26bb48951fa55924fd4cdb9b2ef72e19a471b959.tar.bz2 podman-26bb48951fa55924fd4cdb9b2ef72e19a471b959.zip |
Merge pull request #6468 from mheon/remote_detached_exec
Enable detached exec for remote
Diffstat (limited to 'libpod/container_exec.go')
-rw-r--r-- | libpod/container_exec.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libpod/container_exec.go b/libpod/container_exec.go index f2943b73c..a0e8904dc 100644 --- a/libpod/container_exec.go +++ b/libpod/container_exec.go @@ -69,6 +69,10 @@ type ExecConfig struct { // The ID of the exec session, and the ID of the container the exec // session is a part of (in that order). ExitCommand []string `json:"exitCommand,omitempty"` + // ExitCommandDelay is a delay (in seconds) between the container + // exiting, and the exit command being executed. If set to 0, there is + // no delay. If set, ExitCommand must also be set. + ExitCommandDelay uint `json:"exitCommandDelay,omitempty"` } // ExecSession contains information on a single exec session attached to a given @@ -165,6 +169,9 @@ func (c *Container) ExecCreate(config *ExecConfig) (string, error) { if len(config.Command) == 0 { return "", errors.Wrapf(define.ErrInvalidArg, "must provide a non-empty command to start an exec session") } + if config.ExitCommandDelay > 0 && len(config.ExitCommand) == 0 { + return "", errors.Wrapf(define.ErrInvalidArg, "must provide a non-empty exit command if giving an exit command delay") + } // Verify that we are in a good state to continue if !c.ensureState(define.ContainerStateRunning) { @@ -984,6 +991,7 @@ func prepareForExec(c *Container, session *ExecSession) (*ExecOptions, error) { opts.PreserveFDs = session.Config.PreserveFDs opts.DetachKeys = session.Config.DetachKeys opts.ExitCommand = session.Config.ExitCommand + opts.ExitCommandDelay = session.Config.ExitCommandDelay return opts, nil } |