diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-10-29 18:15:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-29 18:15:24 +0100 |
commit | c8f0e1dab602ed94af95dc4f604f161696f249e0 (patch) | |
tree | 1d8fe4e091300aa7c2c6e61fcb1a509c382974b0 /vendor/github.com/fsouza/go-dockerclient/container_archive.go | |
parent | e439aec4fa867cda0672079dac0fe394dfb3306c (diff) | |
parent | 65a618886efc48562e5b9ff99ca630c83622419b (diff) | |
download | podman-c8f0e1dab602ed94af95dc4f604f161696f249e0.tar.gz podman-c8f0e1dab602ed94af95dc4f604f161696f249e0.tar.bz2 podman-c8f0e1dab602ed94af95dc4f604f161696f249e0.zip |
Merge pull request #8146 from vrothberg/image-mounts
new "image" mount type
Diffstat (limited to 'vendor/github.com/fsouza/go-dockerclient/container_archive.go')
-rw-r--r-- | vendor/github.com/fsouza/go-dockerclient/container_archive.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/github.com/fsouza/go-dockerclient/container_archive.go b/vendor/github.com/fsouza/go-dockerclient/container_archive.go new file mode 100644 index 000000000..6c7e61c79 --- /dev/null +++ b/vendor/github.com/fsouza/go-dockerclient/container_archive.go @@ -0,0 +1,58 @@ +package docker + +import ( + "context" + "fmt" + "io" + "net/http" + "time" +) + +// UploadToContainerOptions is the set of options that can be used when +// uploading an archive into a container. +// +// See https://goo.gl/g25o7u for more details. +type UploadToContainerOptions struct { + InputStream io.Reader `json:"-" qs:"-"` + Path string `qs:"path"` + NoOverwriteDirNonDir bool `qs:"noOverwriteDirNonDir"` + Context context.Context +} + +// UploadToContainer uploads a tar archive to be extracted to a path in the +// filesystem of the container. +// +// See https://goo.gl/g25o7u for more details. +func (c *Client) UploadToContainer(id string, opts UploadToContainerOptions) error { + url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts) + + return c.stream(http.MethodPut, url, streamOptions{ + in: opts.InputStream, + context: opts.Context, + }) +} + +// DownloadFromContainerOptions is the set of options that can be used when +// downloading resources from a container. +// +// See https://goo.gl/W49jxK for more details. +type DownloadFromContainerOptions struct { + OutputStream io.Writer `json:"-" qs:"-"` + Path string `qs:"path"` + InactivityTimeout time.Duration `qs:"-"` + Context context.Context +} + +// DownloadFromContainer downloads a tar archive of files or folders in a container. +// +// See https://goo.gl/W49jxK for more details. +func (c *Client) DownloadFromContainer(id string, opts DownloadFromContainerOptions) error { + url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts) + + return c.stream(http.MethodGet, url, streamOptions{ + setRawTerminal: true, + stdout: opts.OutputStream, + inactivityTimeout: opts.InactivityTimeout, + context: opts.Context, + }) +} |