mirror of https://github.com/containers/podman.git
pkg/autoupdate: move authfile into `tasks`
Will simplify the code and speed up things as we do not consult a container's labels multiple times. [NO NEW TESTS NEEDED] - should not change behavior. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
This commit is contained in:
parent
3f1928d767
commit
42c4c17c01
|
@ -62,6 +62,7 @@ type updater struct {
|
|||
|
||||
// task includes data and state for updating a container
|
||||
type task struct {
|
||||
authfile string // Container-specific authfile
|
||||
auto *updater // Reverse pointer to the updater
|
||||
container *libpod.Container // Container to update
|
||||
policy Policy // Update policy
|
||||
|
@ -244,8 +245,7 @@ func (t *task) updateRegistry(ctx context.Context) (*entities.AutoUpdateReport,
|
|||
return report, nil
|
||||
}
|
||||
|
||||
authfile := getAuthfilePath(t.container, t.auto.options)
|
||||
needsUpdate, err := newerRemoteImageAvailable(ctx, t.image, rawImageName, authfile)
|
||||
needsUpdate, err := newerRemoteImageAvailable(ctx, t.image, rawImageName, t.authfile)
|
||||
if err != nil {
|
||||
return report, fmt.Errorf("registry auto-updating container %q: image check for %q failed: %w", cid, rawImageName, err)
|
||||
}
|
||||
|
@ -260,7 +260,7 @@ func (t *task) updateRegistry(ctx context.Context) (*entities.AutoUpdateReport,
|
|||
return report, nil
|
||||
}
|
||||
|
||||
if _, err := pullImage(ctx, t.auto.runtime, rawImageName, authfile); err != nil {
|
||||
if _, err := pullImage(ctx, t.auto.runtime, rawImageName, t.authfile); err != nil {
|
||||
return report, fmt.Errorf("registry auto-updating container %q: image update for %q failed: %w", cid, rawImageName, err)
|
||||
}
|
||||
t.auto.updatedRawImages[rawImageName] = true
|
||||
|
@ -432,6 +432,7 @@ func (u *updater) assembleTasks(ctx context.Context) []error {
|
|||
}
|
||||
|
||||
t := task{
|
||||
authfile: labels[AuthfileLabel],
|
||||
auto: u,
|
||||
container: ctr,
|
||||
policy: policy,
|
||||
|
@ -446,17 +447,6 @@ func (u *updater) assembleTasks(ctx context.Context) []error {
|
|||
return errors
|
||||
}
|
||||
|
||||
// getAuthfilePath returns an authfile path, if set. The authfile label in the
|
||||
// container, if set, as precedence over the one set in the options.
|
||||
func getAuthfilePath(ctr *libpod.Container, options *entities.AutoUpdateOptions) string {
|
||||
labels := ctr.Labels()
|
||||
authFilePath, exists := labels[AuthfileLabel]
|
||||
if exists {
|
||||
return authFilePath
|
||||
}
|
||||
return options.Authfile
|
||||
}
|
||||
|
||||
// newerRemoteImageAvailable returns true if there corresponding image on the remote
|
||||
// registry is newer.
|
||||
func newerRemoteImageAvailable(ctx context.Context, img *libimage.Image, origName string, authfile string) (bool, error) {
|
||||
|
|
Loading…
Reference in New Issue