Copy annotations around where necessary

Make sure that the newly added annotations are copied around appropriately.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
This commit is contained in:
Stefan Berger 2019-03-06 12:22:56 -05:00
parent c6703d4c76
commit 0b711d616a
8 changed files with 50 additions and 37 deletions

View File

@ -70,10 +70,11 @@ func WithCheckpointTask(ctx context.Context, client *Client, c *containers.Conta
for _, d := range task.Descriptors { for _, d := range task.Descriptors {
platformSpec := platforms.DefaultSpec() platformSpec := platforms.DefaultSpec()
index.Manifests = append(index.Manifests, imagespec.Descriptor{ index.Manifests = append(index.Manifests, imagespec.Descriptor{
MediaType: d.MediaType, MediaType: d.MediaType,
Size: d.Size_, Size: d.Size_,
Digest: d.Digest, Digest: d.Digest,
Platform: &platformSpec, Platform: &platformSpec,
Annotations: d.Annotations,
}) })
} }
// save copts // save copts

14
diff.go
View File

@ -80,17 +80,19 @@ func (r *diffRemote) Compare(ctx context.Context, a, b []mount.Mount, opts ...di
func toDescriptor(d *types.Descriptor) ocispec.Descriptor { func toDescriptor(d *types.Descriptor) ocispec.Descriptor {
return ocispec.Descriptor{ return ocispec.Descriptor{
MediaType: d.MediaType, MediaType: d.MediaType,
Digest: d.Digest, Digest: d.Digest,
Size: d.Size_, Size: d.Size_,
Annotations: d.Annotations,
} }
} }
func fromDescriptor(d ocispec.Descriptor) *types.Descriptor { func fromDescriptor(d ocispec.Descriptor) *types.Descriptor {
return &types.Descriptor{ return &types.Descriptor{
MediaType: d.MediaType, MediaType: d.MediaType,
Digest: d.Digest, Digest: d.Digest,
Size_: d.Size, Size_: d.Size,
Annotations: d.Annotations,
} }
} }

View File

@ -137,16 +137,18 @@ func imagesFromProto(imagespb []imagesapi.Image) []images.Image {
func descFromProto(desc *types.Descriptor) ocispec.Descriptor { func descFromProto(desc *types.Descriptor) ocispec.Descriptor {
return ocispec.Descriptor{ return ocispec.Descriptor{
MediaType: desc.MediaType, MediaType: desc.MediaType,
Size: desc.Size_, Size: desc.Size_,
Digest: desc.Digest, Digest: desc.Digest,
Annotations: desc.Annotations,
} }
} }
func descToProto(desc *ocispec.Descriptor) types.Descriptor { func descToProto(desc *ocispec.Descriptor) types.Descriptor {
return types.Descriptor{ return types.Descriptor{
MediaType: desc.MediaType, MediaType: desc.MediaType,
Size_: desc.Size, Size_: desc.Size,
Digest: desc.Digest, Digest: desc.Digest,
Annotations: desc.Annotations,
} }
} }

View File

@ -164,16 +164,18 @@ func toMounts(apim []*types.Mount) []mount.Mount {
func toDescriptor(d *types.Descriptor) ocispec.Descriptor { func toDescriptor(d *types.Descriptor) ocispec.Descriptor {
return ocispec.Descriptor{ return ocispec.Descriptor{
MediaType: d.MediaType, MediaType: d.MediaType,
Digest: d.Digest, Digest: d.Digest,
Size: d.Size_, Size: d.Size_,
Annotations: d.Annotations,
} }
} }
func fromDescriptor(d ocispec.Descriptor) *types.Descriptor { func fromDescriptor(d ocispec.Descriptor) *types.Descriptor {
return &types.Descriptor{ return &types.Descriptor{
MediaType: d.MediaType, MediaType: d.MediaType,
Digest: d.Digest, Digest: d.Digest,
Size_: d.Size, Size_: d.Size,
Annotations: d.Annotations,
} }
} }

View File

@ -55,16 +55,18 @@ func imageFromProto(imagepb *imagesapi.Image) images.Image {
func descFromProto(desc *types.Descriptor) ocispec.Descriptor { func descFromProto(desc *types.Descriptor) ocispec.Descriptor {
return ocispec.Descriptor{ return ocispec.Descriptor{
MediaType: desc.MediaType, MediaType: desc.MediaType,
Size: desc.Size_, Size: desc.Size_,
Digest: desc.Digest, Digest: desc.Digest,
Annotations: desc.Annotations,
} }
} }
func descToProto(desc *ocispec.Descriptor) types.Descriptor { func descToProto(desc *ocispec.Descriptor) types.Descriptor {
return types.Descriptor{ return types.Descriptor{
MediaType: desc.MediaType, MediaType: desc.MediaType,
Size_: desc.Size, Size_: desc.Size,
Digest: desc.Digest, Digest: desc.Digest,
Annotations: desc.Annotations,
} }
} }

View File

@ -143,9 +143,10 @@ func (l *local) Create(ctx context.Context, r *api.CreateTaskRequest, _ ...grpc.
return nil, fmt.Errorf("unsupported checkpoint type %q", r.Checkpoint.MediaType) return nil, fmt.Errorf("unsupported checkpoint type %q", r.Checkpoint.MediaType)
} }
reader, err := l.store.ReaderAt(ctx, ocispec.Descriptor{ reader, err := l.store.ReaderAt(ctx, ocispec.Descriptor{
MediaType: r.Checkpoint.MediaType, MediaType: r.Checkpoint.MediaType,
Digest: r.Checkpoint.Digest, Digest: r.Checkpoint.Digest,
Size: r.Checkpoint.Size_, Size: r.Checkpoint.Size_,
Annotations: r.Checkpoint.Annotations,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
@ -624,9 +625,10 @@ func (l *local) writeContent(ctx context.Context, mediaType, ref string, r io.Re
return nil, err return nil, err
} }
return &types.Descriptor{ return &types.Descriptor{
MediaType: mediaType, MediaType: mediaType,
Digest: writer.Digest(), Digest: writer.Digest(),
Size_: size, Size_: size,
Annotations: make(map[string]string),
}, nil }, nil
} }

View File

@ -567,6 +567,7 @@ func (t *task) checkpointTask(ctx context.Context, index *v1.Index, request *tas
OS: goruntime.GOOS, OS: goruntime.GOOS,
Architecture: goruntime.GOARCH, Architecture: goruntime.GOARCH,
}, },
Annotations: d.Annotations,
}) })
} }
return nil return nil

View File

@ -64,9 +64,10 @@ func WithTaskCheckpoint(im Image) NewTaskOpts {
for _, m := range index.Manifests { for _, m := range index.Manifests {
if m.MediaType == images.MediaTypeContainerd1Checkpoint { if m.MediaType == images.MediaTypeContainerd1Checkpoint {
info.Checkpoint = &types.Descriptor{ info.Checkpoint = &types.Descriptor{
MediaType: m.MediaType, MediaType: m.MediaType,
Size_: m.Size, Size_: m.Size,
Digest: m.Digest, Digest: m.Digest,
Annotations: m.Annotations,
} }
return nil return nil
} }