55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package images
|
|
|
|
import (
|
|
imagesapi "github.com/containerd/containerd/api/services/images/v1"
|
|
"github.com/containerd/containerd/api/types"
|
|
"github.com/containerd/containerd/images"
|
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
|
)
|
|
|
|
func imagesToProto(images []images.Image) []imagesapi.Image {
|
|
var imagespb []imagesapi.Image
|
|
|
|
for _, image := range images {
|
|
imagespb = append(imagespb, imageToProto(&image))
|
|
}
|
|
|
|
return imagespb
|
|
}
|
|
|
|
func imageToProto(image *images.Image) imagesapi.Image {
|
|
return imagesapi.Image{
|
|
Name: image.Name,
|
|
Labels: image.Labels,
|
|
Target: descToProto(&image.Target),
|
|
CreatedAt: image.CreatedAt,
|
|
UpdatedAt: image.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func imageFromProto(imagepb *imagesapi.Image) images.Image {
|
|
return images.Image{
|
|
Name: imagepb.Name,
|
|
Labels: imagepb.Labels,
|
|
Target: descFromProto(&imagepb.Target),
|
|
CreatedAt: imagepb.CreatedAt,
|
|
UpdatedAt: imagepb.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func descFromProto(desc *types.Descriptor) ocispec.Descriptor {
|
|
return ocispec.Descriptor{
|
|
MediaType: desc.MediaType,
|
|
Size: desc.Size_,
|
|
Digest: desc.Digest,
|
|
}
|
|
}
|
|
|
|
func descToProto(desc *ocispec.Descriptor) types.Descriptor {
|
|
return types.Descriptor{
|
|
MediaType: desc.MediaType,
|
|
Size_: desc.Size,
|
|
Digest: desc.Digest,
|
|
}
|
|
}
|