pkg/autoupdate: remove image map from updater

It is not state needed after assembling the tasks, so remove it to keep
the task struct simpler.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
This commit is contained in:
Valentin Rothberg 2022-08-03 14:56:01 +02:00
parent 82d18a86f3
commit 3fdd3b1ae3
1 changed files with 20 additions and 21 deletions

View File

@ -53,7 +53,6 @@ var supportedPolicies = map[string]Policy{
// updater includes shared state for auto-updating one or more containers.
type updater struct {
conn *dbus.Conn
idToImage map[string]*libimage.Image
options *entities.AutoUpdateOptions
unitToTasks map[string][]*task
updatedRawImages map[string]bool
@ -126,24 +125,6 @@ func ValidateImageReference(imageName string) error {
return nil
}
func (u *updater) assembleImageMap(ctx context.Context) error {
// Create a map from `image ID -> *libimage.Image` for image lookups.
listOptions := &libimage.ListImagesOptions{
Filters: []string{"readonly=false"},
}
imagesSlice, err := u.runtime.LibimageRuntime().ListImages(ctx, nil, listOptions)
if err != nil {
return err
}
imageMap := make(map[string]*libimage.Image)
for i := range imagesSlice {
imageMap[imagesSlice[i].ID()] = imagesSlice[i]
}
u.idToImage = imageMap
return nil
}
// AutoUpdate looks up containers with a specified auto-update policy and acts
// accordingly.
//
@ -383,7 +364,8 @@ func (u *updater) restartSystemdUnit(ctx context.Context, ctr *libpod.Container,
func (u *updater) assembleTasks(ctx context.Context) []error {
// Assemble a map `image ID -> *libimage.Image` that we can consult
// later on for lookups.
if err := u.assembleImageMap(ctx); err != nil {
imageMap, err := u.assembleImageMap(ctx)
if err != nil {
return []error{err}
}
@ -432,7 +414,7 @@ func (u *updater) assembleTasks(ctx context.Context) []error {
}
id, _ := ctr.Image()
image, exists := u.idToImage[id]
image, exists := imageMap[id]
if !exists {
err := fmt.Errorf("internal error: no image found for ID %s", id)
errors = append(errors, err)
@ -455,6 +437,23 @@ func (u *updater) assembleTasks(ctx context.Context) []error {
return errors
}
// assembleImageMap creates a map from `image ID -> *libimage.Image` for image lookups.
func (u *updater) assembleImageMap(ctx context.Context) (map[string]*libimage.Image, error) {
listOptions := &libimage.ListImagesOptions{
Filters: []string{"readonly=false"},
}
imagesSlice, err := u.runtime.LibimageRuntime().ListImages(ctx, nil, listOptions)
if err != nil {
return nil, err
}
imageMap := make(map[string]*libimage.Image)
for i := range imagesSlice {
imageMap[imagesSlice[i].ID()] = imagesSlice[i]
}
return imageMap, nil
}
// 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) {