3a1279393f
Remove forked reference package. Use normalized named values everywhere and familiar functions to convert back to familiar strings for UX and storage compatibility. Enforce that the source repository in the distribution metadata is always a normalized string, ignore invalid values which are not. Update distribution tests to use normalized values. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
37 lines
961 B
Go
37 lines
961 B
Go
package client
|
|
|
|
import (
|
|
"io"
|
|
"net/url"
|
|
|
|
"golang.org/x/net/context"
|
|
|
|
"github.com/docker/distribution/reference"
|
|
"github.com/docker/docker/api/types"
|
|
)
|
|
|
|
// ImageImport creates a new image based in the source options.
|
|
// It returns the JSON content in the response body.
|
|
func (cli *Client) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) {
|
|
if ref != "" {
|
|
//Check if the given image name can be resolved
|
|
if _, err := reference.ParseNormalizedNamed(ref); err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
query := url.Values{}
|
|
query.Set("fromSrc", source.SourceName)
|
|
query.Set("repo", ref)
|
|
query.Set("tag", options.Tag)
|
|
query.Set("message", options.Message)
|
|
for _, change := range options.Changes {
|
|
query.Add("changes", change)
|
|
}
|
|
|
|
resp, err := cli.postRaw(ctx, "/images/create", query, source.Source, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.body, nil
|
|
}
|