mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
41 lines
1.2 KiB
Go
41 lines
1.2 KiB
Go
package lib
|
|
|
|
import (
|
|
"io"
|
|
"net/url"
|
|
)
|
|
|
|
// ImportImageOptions holds information to import images from the client host.
|
|
type ImportImageOptions struct {
|
|
// Source is the data to send to the server to create this image from
|
|
Source io.Reader
|
|
// Source is the name of the source to import this image from
|
|
SourceName string
|
|
// RepositoryName is the name of the repository to import this image
|
|
RepositoryName string
|
|
// Message is the message to tag the image with
|
|
Message string
|
|
// Tag is the name to tag this image
|
|
Tag string
|
|
// Changes are the raw changes to apply to the image
|
|
Changes []string
|
|
}
|
|
|
|
// ImportImage creates a new image based in the source options.
|
|
// It returns the JSON content in the response body.
|
|
func (cli *Client) ImportImage(options ImportImageOptions) (io.ReadCloser, error) {
|
|
var query url.Values
|
|
query.Set("fromSrc", options.SourceName)
|
|
query.Set("repo", options.RepositoryName)
|
|
query.Set("tag", options.Tag)
|
|
query.Set("message", options.Message)
|
|
for _, change := range options.Changes {
|
|
query.Add("changes", change)
|
|
}
|
|
|
|
resp, err := cli.POSTRaw("/images/create", query, options.Source, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.body, nil
|
|
}
|