mirror of
https://github.com/containers/podman.git
synced 2025-12-10 07:42:12 +08:00
vendor c/common@main
Finalizes the linked BZ to fix passing down custom authfiles during auto updates. Also fixes the if-newer pull policy. [NO TESTS NEEDED] for now validated manually. There's a TODO to add a new system test that I did not find time for before PTO. BZ: bugzilla.redhat.com/show_bug.cgi?id=2000943 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
18
vendor/github.com/containers/common/libimage/image.go
generated
vendored
18
vendor/github.com/containers/common/libimage/image.go
generated
vendored
@@ -715,10 +715,18 @@ func (i *Image) Size() (int64, error) {
|
||||
return i.runtime.store.ImageSize(i.ID())
|
||||
}
|
||||
|
||||
// HasDifferentDigestOptions allows for customizing the check if another
|
||||
// (remote) image has a different digest.
|
||||
type HasDifferentDigestOptions struct {
|
||||
// containers-auth.json(5) file to use when authenticating against
|
||||
// container registries.
|
||||
AuthFilePath string
|
||||
}
|
||||
|
||||
// HasDifferentDigest returns true if the image specified by `remoteRef` has a
|
||||
// different digest than the local one. This check can be useful to check for
|
||||
// updates on remote registries.
|
||||
func (i *Image) HasDifferentDigest(ctx context.Context, remoteRef types.ImageReference) (bool, error) {
|
||||
func (i *Image) HasDifferentDigest(ctx context.Context, remoteRef types.ImageReference, options *HasDifferentDigestOptions) (bool, error) {
|
||||
// We need to account for the arch that the image uses. It seems
|
||||
// common on ARM to tweak this option to pull the correct image. See
|
||||
// github.com/containers/podman/issues/6613.
|
||||
@@ -738,6 +746,14 @@ func (i *Image) HasDifferentDigest(ctx context.Context, remoteRef types.ImageRef
|
||||
sys.VariantChoice = inspectInfo.Variant
|
||||
}
|
||||
|
||||
if options != nil && options.AuthFilePath != "" {
|
||||
sys.AuthFilePath = options.AuthFilePath
|
||||
}
|
||||
|
||||
return i.hasDifferentDigestWithSystemContext(ctx, remoteRef, sys)
|
||||
}
|
||||
|
||||
func (i *Image) hasDifferentDigestWithSystemContext(ctx context.Context, remoteRef types.ImageReference, sys *types.SystemContext) (bool, error) {
|
||||
remoteImg, err := remoteRef.NewImage(ctx, sys)
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
||||
2
vendor/github.com/containers/common/libimage/pull.go
generated
vendored
2
vendor/github.com/containers/common/libimage/pull.go
generated
vendored
@@ -561,7 +561,7 @@ func (r *Runtime) copySingleImageFromRegistry(ctx context.Context, imageName str
|
||||
}
|
||||
|
||||
if pullPolicy == config.PullPolicyNewer && localImage != nil {
|
||||
isNewer, err := localImage.HasDifferentDigest(ctx, srcRef)
|
||||
isNewer, err := localImage.hasDifferentDigestWithSystemContext(ctx, srcRef, c.systemContext)
|
||||
if err != nil {
|
||||
pullErrors = append(pullErrors, err)
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user