mirror of
https://github.com/containers/podman.git
synced 2025-06-27 21:50:18 +08:00
Merge pull request #3888 from jwhonce/wip/api
Update varlink doc and code for images
This commit is contained in:
2
API.md
2
API.md
@ -1361,6 +1361,8 @@ pids [int](https://godoc.org/builtin#int)
|
|||||||
### <a name="Create"></a>type Create
|
### <a name="Create"></a>type Create
|
||||||
|
|
||||||
Create is an input structure for creating containers.
|
Create is an input structure for creating containers.
|
||||||
|
args[0] is the image name or id
|
||||||
|
args[1-] are the new commands if changed
|
||||||
|
|
||||||
args [[]string](#[]string)
|
args [[]string](#[]string)
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ func CreateContainer(ctx context.Context, c *GenericCLIResults, runtime *libpod.
|
|||||||
if len(c.InputArgs) != 0 {
|
if len(c.InputArgs) != 0 {
|
||||||
name = c.InputArgs[0]
|
name = c.InputArgs[0]
|
||||||
} else {
|
} else {
|
||||||
return nil, nil, errors.Errorf("error, no input arguments were provided")
|
return nil, nil, errors.Errorf("error, image name not provided")
|
||||||
}
|
}
|
||||||
|
|
||||||
pullType, err := util.ValidatePullType(c.String("pull"))
|
pullType, err := util.ValidatePullType(c.String("pull"))
|
||||||
|
@ -274,6 +274,8 @@ type Sockets(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Create is an input structure for creating containers.
|
# Create is an input structure for creating containers.
|
||||||
|
# args[0] is the image name or id
|
||||||
|
# args[1-] are the new commands if changed
|
||||||
type Create (
|
type Create (
|
||||||
args: []string,
|
args: []string,
|
||||||
addHost: ?[]string,
|
addHost: ?[]string,
|
||||||
|
@ -338,7 +338,7 @@ func (i *LibpodAPI) PushImage(call iopodman.VarlinkCall, name, tag string, compr
|
|||||||
dockerRegistryOptions := image.DockerRegistryOptions{}
|
dockerRegistryOptions := image.DockerRegistryOptions{}
|
||||||
if format != "" {
|
if format != "" {
|
||||||
switch format {
|
switch format {
|
||||||
case "oci": //nolint
|
case "oci": // nolint
|
||||||
manifestType = v1.MediaTypeImageManifest
|
manifestType = v1.MediaTypeImageManifest
|
||||||
case "v2s1":
|
case "v2s1":
|
||||||
manifestType = manifest.DockerV2Schema1SignedMediaType
|
manifestType = manifest.DockerV2Schema1SignedMediaType
|
||||||
@ -360,7 +360,12 @@ func (i *LibpodAPI) PushImage(call iopodman.VarlinkCall, name, tag string, compr
|
|||||||
output := bytes.NewBuffer([]byte{})
|
output := bytes.NewBuffer([]byte{})
|
||||||
c := make(chan error)
|
c := make(chan error)
|
||||||
go func() {
|
go func() {
|
||||||
err := newImage.PushImageToHeuristicDestination(getContext(), destname, manifestType, "", "", "", output, compress, so, &dockerRegistryOptions, nil)
|
writer := bytes.NewBuffer([]byte{})
|
||||||
|
err := newImage.PushImageToHeuristicDestination(getContext(), destname, manifestType, "", "", "", writer, compress, so, &dockerRegistryOptions, nil)
|
||||||
|
if err != nil {
|
||||||
|
c <- err
|
||||||
|
}
|
||||||
|
_, err = io.CopyBuffer(output, writer, nil)
|
||||||
c <- err
|
c <- err
|
||||||
close(c)
|
close(c)
|
||||||
}()
|
}()
|
||||||
@ -388,6 +393,7 @@ func (i *LibpodAPI) PushImage(call iopodman.VarlinkCall, name, tag string, compr
|
|||||||
}
|
}
|
||||||
br := iopodman.MoreResponse{
|
br := iopodman.MoreResponse{
|
||||||
Logs: log,
|
Logs: log,
|
||||||
|
Id: newImage.ID(),
|
||||||
}
|
}
|
||||||
call.ReplyPushImage(br)
|
call.ReplyPushImage(br)
|
||||||
log = []string{}
|
log = []string{}
|
||||||
@ -403,6 +409,7 @@ func (i *LibpodAPI) PushImage(call iopodman.VarlinkCall, name, tag string, compr
|
|||||||
|
|
||||||
br := iopodman.MoreResponse{
|
br := iopodman.MoreResponse{
|
||||||
Logs: log,
|
Logs: log,
|
||||||
|
Id: newImage.ID(),
|
||||||
}
|
}
|
||||||
return call.ReplyPushImage(br)
|
return call.ReplyPushImage(br)
|
||||||
}
|
}
|
||||||
@ -530,7 +537,7 @@ func (i *LibpodAPI) Commit(call iopodman.VarlinkCall, name, imageName string, ch
|
|||||||
}
|
}
|
||||||
sc := image.GetSystemContext(rtc.SignaturePolicyPath, "", false)
|
sc := image.GetSystemContext(rtc.SignaturePolicyPath, "", false)
|
||||||
switch manifestType {
|
switch manifestType {
|
||||||
case "oci", "": //nolint
|
case "oci", "": // nolint
|
||||||
mimeType = buildah.OCIv1ImageManifest
|
mimeType = buildah.OCIv1ImageManifest
|
||||||
case "docker":
|
case "docker":
|
||||||
mimeType = manifest.DockerV2Schema2MediaType
|
mimeType = manifest.DockerV2Schema2MediaType
|
||||||
@ -821,7 +828,7 @@ func (i *LibpodAPI) ImageSave(call iopodman.VarlinkCall, options iopodman.ImageS
|
|||||||
// Image has been saved to `output`
|
// Image has been saved to `output`
|
||||||
if outputToDir {
|
if outputToDir {
|
||||||
// If the output is a directory, we need to tar up the directory to send it back
|
// If the output is a directory, we need to tar up the directory to send it back
|
||||||
//Create a tempfile for the directory tarball
|
// Create a tempfile for the directory tarball
|
||||||
outputFile, err := ioutil.TempFile("", "varlink_save_dir")
|
outputFile, err := ioutil.TempFile("", "varlink_save_dir")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Reference in New Issue
Block a user