本文整理汇总了Golang中github.com/openshift/origin/pkg/image/api.Image.DockerImageSignatures方法的典型用法代码示例。如果您正苦于以下问题:Golang Image.DockerImageSignatures方法的具体用法?Golang Image.DockerImageSignatures怎么用?Golang Image.DockerImageSignatures使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/openshift/origin/pkg/image/api.Image
的用法示例。
在下文中一共展示了Image.DockerImageSignatures方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: autoConvert_v1_Image_To_api_Image
func autoConvert_v1_Image_To_api_Image(in *Image, out *api.Image, s conversion.Scope) error {
if err := api_v1.Convert_v1_ObjectMeta_To_api_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil {
return err
}
out.DockerImageReference = in.DockerImageReference
// TODO: Inefficient conversion - can we improve it?
if err := s.Convert(&in.DockerImageMetadata, &out.DockerImageMetadata, 0); err != nil {
return err
}
out.DockerImageMetadataVersion = in.DockerImageMetadataVersion
out.DockerImageManifest = in.DockerImageManifest
out.DockerImageLayers = *(*[]api.ImageLayer)(unsafe.Pointer(&in.DockerImageLayers))
if in.Signatures != nil {
in, out := &in.Signatures, &out.Signatures
*out = make([]api.ImageSignature, len(*in))
for i := range *in {
if err := Convert_v1_ImageSignature_To_api_ImageSignature(&(*in)[i], &(*out)[i], s); err != nil {
return err
}
}
} else {
out.Signatures = nil
}
out.DockerImageSignatures = *(*[][]byte)(unsafe.Pointer(&in.DockerImageSignatures))
out.DockerImageManifestMediaType = in.DockerImageManifestMediaType
out.DockerImageConfig = in.DockerImageConfig
return nil
}
示例2: signedManifestFillImageMetadata
// signedManifestFillImageMetadata fills a given image with metadata. It also corrects layer sizes with blob sizes. Newer
// Docker client versions don't set layer sizes in the manifest at all. Origin master needs correct layer
// sizes for proper image quota support. That's why we need to fill the metadata in the registry.
func (r *repository) signedManifestFillImageMetadata(manifest *schema1.SignedManifest, image *imageapi.Image) error {
signatures, err := manifest.Signatures()
if err != nil {
return err
}
for _, signDigest := range signatures {
image.DockerImageSignatures = append(image.DockerImageSignatures, signDigest)
}
if err := imageapi.ImageWithMetadata(image); err != nil {
return err
}
refs := manifest.References()
blobSet := sets.NewString()
image.DockerImageMetadata.Size = int64(0)
blobs := r.Blobs(r.ctx)
for i := range image.DockerImageLayers {
layer := &image.DockerImageLayers[i]
// DockerImageLayers represents manifest.Manifest.FSLayers in reversed order
desc, err := blobs.Stat(r.ctx, refs[len(image.DockerImageLayers)-i-1].Digest)
if err != nil {
context.GetLogger(r.ctx).Errorf("failed to stat blobs %s of image %s", layer.Name, image.DockerImageReference)
return err
}
if layer.MediaType == "" {
if desc.MediaType != "" {
layer.MediaType = desc.MediaType
} else {
layer.MediaType = schema1.MediaTypeManifestLayer
}
}
layer.LayerSize = desc.Size
// count empty layer just once (empty layer may actually have non-zero size)
if !blobSet.Has(layer.Name) {
image.DockerImageMetadata.Size += desc.Size
blobSet.Insert(layer.Name)
}
}
if len(image.DockerImageConfig) > 0 && !blobSet.Has(image.DockerImageMetadata.ID) {
blobSet.Insert(image.DockerImageMetadata.ID)
image.DockerImageMetadata.Size += int64(len(image.DockerImageConfig))
}
return nil
}
示例3: Convert_v1_Image_To_api_Image
func Convert_v1_Image_To_api_Image(in *Image, out *newer.Image, s conversion.Scope) error {
if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil {
return err
}
out.DockerImageReference = in.DockerImageReference
out.DockerImageManifest = in.DockerImageManifest
out.DockerImageManifestMediaType = in.DockerImageManifestMediaType
out.DockerImageConfig = in.DockerImageConfig
version := in.DockerImageMetadataVersion
if len(version) == 0 {
version = "1.0"
}
if len(in.DockerImageMetadata.Raw) > 0 {
// TODO: add a way to default the expected kind and version of an object if not set
obj, err := api.Scheme.New(unversioned.GroupVersionKind{Version: version, Kind: "DockerImage"})
if err != nil {
return err
}
if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), in.DockerImageMetadata.Raw, obj); err != nil {
return err
}
if err := s.Convert(obj, &out.DockerImageMetadata, 0); err != nil {
return err
}
}
out.DockerImageMetadataVersion = version
if in.DockerImageLayers != nil {
out.DockerImageLayers = make([]newer.ImageLayer, len(in.DockerImageLayers))
for i := range in.DockerImageLayers {
out.DockerImageLayers[i].MediaType = in.DockerImageLayers[i].MediaType
out.DockerImageLayers[i].Name = in.DockerImageLayers[i].Name
out.DockerImageLayers[i].LayerSize = in.DockerImageLayers[i].LayerSize
}
} else {
out.DockerImageLayers = nil
}
if in.Signatures != nil {
out.Signatures = make([]newer.ImageSignature, len(in.Signatures))
for i := range in.Signatures {
if err := s.Convert(&in.Signatures[i], &out.Signatures[i], 0); err != nil {
return err
}
}
} else {
out.Signatures = nil
}
if in.DockerImageSignatures != nil {
out.DockerImageSignatures = nil
for _, v := range in.DockerImageSignatures {
out.DockerImageSignatures = append(out.DockerImageSignatures, v)
}
} else {
out.DockerImageSignatures = nil
}
return nil
}