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 /pkg/bindings | |
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 'pkg/bindings')
-rw-r--r-- | pkg/bindings/containers/exec.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/bindings/containers/exec.go b/pkg/bindings/containers/exec.go index 2aeeae1f8..73cfb5079 100644 --- a/pkg/bindings/containers/exec.go +++ b/pkg/bindings/containers/exec.go @@ -1,6 +1,7 @@ package containers import ( + "bytes" "context" "net/http" "strings" @@ -69,3 +70,31 @@ func ExecInspect(ctx context.Context, sessionID string) (*define.InspectExecSess return respStruct, nil } + +// ExecStart starts (but does not attach to) a given exec session. +func ExecStart(ctx context.Context, sessionID string) error { + conn, err := bindings.GetClient(ctx) + if err != nil { + return err + } + + logrus.Debugf("Starting exec session ID %q", sessionID) + + // We force Detach to true + body := struct { + Detach bool `json:"Detach"` + }{ + Detach: true, + } + bodyJSON, err := json.Marshal(body) + if err != nil { + return err + } + + resp, err := conn.DoRequest(bytes.NewReader(bodyJSON), http.MethodPost, "/exec/%s/start", nil, nil, sessionID) + if err != nil { + return err + } + + return resp.Process(nil) +} |