// aciInfoToV1AlphaAPIImage takes an aciInfo object and construct the v1alpha.Image // object. It will also get and return the image manifest. // Note that v1alpha.Image.Manifest field is not set by this function. func aciInfoToV1AlphaAPIImage(store *store.Store, aciInfo *store.ACIInfo) (*v1alpha.Image, *schema.ImageManifest, error) { imgManifest, err := store.GetImageManifest(aciInfo.BlobKey) if err != nil { return nil, nil, err } data, err := json.Marshal(imgManifest) if err != nil { return nil, nil, err } version, ok := imgManifest.Labels.Get("version") if !ok { version = "latest" } return &v1alpha.Image{ BaseFormat: &v1alpha.ImageFormat{ // Only support appc image now. If it's a docker image, then it // will be transformed to appc before storing in the disk store. Type: v1alpha.ImageType_IMAGE_TYPE_APPC, Version: schema.AppContainerVersion.String(), }, Id: aciInfo.BlobKey, Name: imgManifest.Name.String(), Version: version, ImportTimestamp: aciInfo.ImportTime.Unix(), Manifest: data, }, imgManifest, nil }