From 5d5baab71c72d738b3f6e841ccb0319d708e0b21 Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Sun, 8 Feb 2026 19:48:53 +0100 Subject: Use the strings from the image struct --- src/updater.rs | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/updater.rs b/src/updater.rs index c90f1e6..666c87d 100644 --- a/src/updater.rs +++ b/src/updater.rs @@ -19,9 +19,8 @@ pub struct FileInput { } pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, files: &[FileInput], outcomes: &mut Vec, String>>) { - let mut file_indices: Vec = vec![]; - let mut image_ranges: Vec> = vec![]; - let mut imgs: Vec = vec![]; + let mut file_idxs: Vec = vec![]; + let mut parsed: Vec = vec![]; let mut images: Vec = vec![]; for (file_idx, file) in files.iter().enumerate() { @@ -46,9 +45,8 @@ pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, fil }, }; - file_indices.push(file_idx); - image_ranges.push(image.clone()); - imgs.push(img); + file_idxs.push(file_idx); + parsed.push(img); images.push(image_record); } } @@ -93,23 +91,20 @@ pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, fil file_errors.push(None); } - for i in 0..imgs.len() { - let file_idx = file_indices[i]; + for i in 0..parsed.len() { + let file_idx = file_idxs[i]; let file = &files[file_idx]; if file_errors[file_idx].is_some() { continue; } - let img = &imgs[i]; - let registry = img.registry.as_ref() - .map(|x| &file.content[x.clone()]) - .unwrap_or("registry.hub.docker.com"); + let img = &parsed[i]; let mut tag = img.tag.as_ref().map(|x| file.content[x.clone()].to_string()); let image_record = &images[i]; - println!("Checking image {}", &file.content[image_ranges[i].clone()]); - metrics::get().images_checked.with_label_values(&[registry]).inc(); + println!("Checking image {}", image_record.image); + metrics::get().images_checked.with_label_values(&[&image_record.registry]).inc(); let tags = db.get_tags_sorted(image_record.id); @@ -118,13 +113,6 @@ pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, fil continue; } - let tag_for_digest = tag.as_deref().unwrap_or("latest"); - let cached_digest = if image_record.expires_at <= *now { - None // Cache was stale, ignore cached digest - } else { - db.get_tag_digest(image_record.id, tag_for_digest) - }; - if let Some(ref tag_str) = tag { let mut current = VersionPattern::parse(&tag_str); let mut new_tag = None; @@ -148,17 +136,22 @@ pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, fil position: img.tag.clone().unwrap(), content: new_tag, }); - metrics::get().images_updated.with_label_values(&[registry]).inc(); + metrics::get().images_updated.with_label_values(&[&image_record.registry]).inc(); } } if let Some(ref digest) = img.digest { let tag_for_digest = tag.as_deref().unwrap_or("latest"); + let cached_digest = if image_record.expires_at > *now { + db.get_tag_digest(image_record.id, tag_for_digest) + } else { + None + }; let digest_result = match cached_digest { Some(d) => Ok(d), None => { - match reg.get_digest(registry, &image_record.image, tag_for_digest) { + match reg.get_digest(&image_record.registry, &image_record.image, tag_for_digest) { Some(fetched) => { db.update_tag_digest(image_record.id, tag_for_digest, &fetched, now); Ok(fetched) @@ -181,7 +174,7 @@ pub fn update_images(now: &DateTime, db: &dyn Db, reg: &dyn Registries, fil position: img.digest.clone().unwrap(), content: digest_string, }); - metrics::get().images_updated.with_label_values(&[registry]).inc(); + metrics::get().images_updated.with_label_values(&[&image_record.registry]).inc(); } } } -- cgit v1.2.3