MCPcopy Create free account
hub / github.com/linuxkit/linuxkit / findImage

Method findImage

src/cmd/linuxkit/cache/find.go:50–70  ·  view source on GitHub ↗
(imageName string, platform imagespec.Platform)

Source from the content-addressed store, hash-verified

48}
49
50func (p *Provider) findImage(imageName string, platform imagespec.Platform) (v1.Image, error) {
51 root, err := p.FindRoot(imageName)
52 if err != nil {
53 return nil, err
54 }
55 img, err := root.Image()
56 if err == nil {
57 return img, nil
58 }
59 ii, err := root.ImageIndex()
60 if err == nil {
61 // we have the index, get the manifest that represents the manifest for the desired architecture
62 platform := v1.Platform{OS: platform.OS, Architecture: platform.Architecture}
63 images, err := partial.FindImages(ii, matchPlatformsOSArch(platform))
64 if err != nil || len(images) < 1 {
65 return nil, fmt.Errorf("error retrieving image %s for platform %v from cache: %v", imageName, platform, err)
66 }
67 return images[0], nil
68 }
69 return nil, fmt.Errorf("no image found for %s", imageName)
70}
71
72func (p *Provider) findIndex(imageName string) (v1.ImageIndex, error) {
73 root, err := p.FindRoot(imageName)

Callers 5

ImageInCacheMethod · 0.95
ConfigMethod · 0.80
TarReaderMethod · 0.80
V1TarReaderMethod · 0.80
OCITarReaderMethod · 0.80

Implementers 11

ProviderCDROMpkg/metadata/provider_cdrom.go
ProviderGCPpkg/metadata/provider_gcp.go
ProviderVMwarepkg/metadata/provider_vmware_unsupport
ProviderEquinixMetalpkg/metadata/provider_equinixmetal.go
ProviderVultrpkg/metadata/provider_vultr.go
ProviderDigitalOceanpkg/metadata/provider_digitalocean.go
ProviderHetznerpkg/metadata/provider_hetzner.go
ProviderMetaldatapkg/metadata/provider_metaldata.go
ProviderOpenstackpkg/metadata/provider_openstack.go
ProviderScalewaypkg/metadata/provider_scaleway.go
ProviderAWSpkg/metadata/provider_aws.go

Calls 4

FindRootMethod · 0.95
matchPlatformsOSArchFunction · 0.85
ImageMethod · 0.65
ImageIndexMethod · 0.65

Tested by

no test coverage detected