summaryrefslogtreecommitdiff
path: root/pkg/bindings
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-04-02 00:13:21 +0200
committerGitHub <noreply@github.com>2020-04-02 00:13:21 +0200
commit79f191cb5933ac0d3f64d123d8b8e6fec8e2a9c9 (patch)
tree055e000b03084fbd41cd7f9b6cf8c3c407f397c0 /pkg/bindings
parent0f357be5aeaa5dc651659cf0945a58780641e77d (diff)
parentbb39051616fbce12b4cb3135a62c7747273ab0aa (diff)
downloadpodman-79f191cb5933ac0d3f64d123d8b8e6fec8e2a9c9.tar.gz
podman-79f191cb5933ac0d3f64d123d8b8e6fec8e2a9c9.tar.bz2
podman-79f191cb5933ac0d3f64d123d8b8e6fec8e2a9c9.zip
Merge pull request #5697 from baude/v2export
podmanv2 export
Diffstat (limited to 'pkg/bindings')
-rw-r--r--pkg/bindings/containers/containers.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/pkg/bindings/containers/containers.go b/pkg/bindings/containers/containers.go
index bad1294f4..49a2dfd58 100644
--- a/pkg/bindings/containers/containers.go
+++ b/pkg/bindings/containers/containers.go
@@ -2,6 +2,7 @@ package containers
import (
"context"
+ "io"
"net/http"
"net/url"
"strconv"
@@ -296,3 +297,22 @@ func Stop(ctx context.Context, nameOrID string, timeout *uint) error {
}
return response.Process(nil)
}
+
+// Export creates a tarball of the given name or ID of a container. It
+// requires an io.Writer be provided to write the tarball.
+func Export(ctx context.Context, nameOrID string, w io.Writer) error {
+ params := url.Values{}
+ conn, err := bindings.GetClient(ctx)
+ if err != nil {
+ return err
+ }
+ response, err := conn.DoRequest(nil, http.MethodGet, "/containers/%s/export", params, nameOrID)
+ if err != nil {
+ return err
+ }
+ if response.StatusCode/100 == 2 {
+ _, err = io.Copy(w, response.Body)
+ return err
+ }
+ return response.Process(nil)
+}