MCPcopy Create free account
hub / github.com/buildpacks/pack / NewVolumeCache

Function NewVolumeCache

pkg/cache/volume_cache.go:29–47  ·  view source on GitHub ↗
(imageRef name.Reference, cacheType CacheInfo, suffix string, dockerClient DockerClient, logger logging.Logger)

Source from the content-addressed store, hash-verified

27}
28
29func NewVolumeCache(imageRef name.Reference, cacheType CacheInfo, suffix string, dockerClient DockerClient, logger logging.Logger) (*VolumeCache, error) {
30 var volumeName string
31 if cacheType.Source == "" {
32 volumeKey, err := getVolumeKey(imageRef, logger)
33 if err != nil {
34 return nil, err
35 }
36 sum := sha256.Sum256([]byte(imageRef.Name() + volumeKey))
37 vol := paths.FilterReservedNames(fmt.Sprintf("%s-%x", sanitizedRef(imageRef), sum[:6]))
38 volumeName = fmt.Sprintf("pack-cache-%s.%s", vol, suffix)
39 } else {
40 volumeName = paths.FilterReservedNames(cacheType.Source)
41 }
42
43 return &VolumeCache{
44 volume: volumeName,
45 docker: dockerClient,
46 }, nil
47}
48
49func getVolumeKey(imageRef name.Reference, logger logging.Logger) (string, error) {
50 var foundKey string

Callers 2

testCacheFunction · 0.92
testAcceptanceFunction · 0.92

Calls 4

FilterReservedNamesFunction · 0.92
getVolumeKeyFunction · 0.85
sanitizedRefFunction · 0.85
NameMethod · 0.65

Tested by 2

testCacheFunction · 0.74
testAcceptanceFunction · 0.74