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 version := in.DockerImageMetadataVersion if len(version) == 0 { version = "1.0" } if len(in.DockerImageMetadata.RawJSON) > 0 { // TODO: add a way to default the expected kind and version of an object if not set obj, err := kapi.Scheme.New(version, "DockerImage") if err != nil { return err } if err := kapi.Scheme.DecodeInto(in.DockerImageMetadata.RawJSON, obj); err != nil { return err } if err := s.Convert(obj, &out.DockerImageMetadata, 0); err != nil { return err } } out.DockerImageMetadataVersion = version return nil }
func imageWithLayers(id, ref string, layers ...string) imageapi.Image { image := imageapi.Image{ ObjectMeta: kapi.ObjectMeta{ Name: id, Annotations: map[string]string{ imageapi.ManagedByOpenShiftAnnotation: "true", }, }, DockerImageReference: ref, } manifest := imageapi.DockerImageManifest{ FSLayers: []imageapi.DockerFSLayer{}, } for _, layer := range layers { manifest.FSLayers = append(manifest.FSLayers, imageapi.DockerFSLayer{DockerBlobSum: layer}) } manifestBytes, err := json.Marshal(&manifest) if err != nil { panic(err) } image.DockerImageManifest = string(manifestBytes) return image }