diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2026-02-08 19:48:53 +0100 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2026-02-08 19:48:53 +0100 |
| commit | 5d5baab71c72d738b3f6e841ccb0319d708e0b21 (patch) | |
| tree | 63e873f344a51cfeeb0c6ee643df259f69974a80 | |
| parent | 563cbbeda1b9002743ec65f3027e975277f3ddfe (diff) | |
Use the strings from the image struct
| -rw-r--r-- | src/updater.rs | 41 |
1 files changed, 17 insertions, 24 deletions
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<Utc>, db: &dyn Db, reg: &dyn Registries, files: &[FileInput], outcomes: &mut Vec<Result<Vec<FilePatch>, String>>) { - let mut file_indices: Vec<usize> = vec![]; - let mut image_ranges: Vec<Range<usize>> = vec![]; - let mut imgs: Vec<DockerRef> = vec![]; + let mut file_idxs: Vec<usize> = vec![]; + let mut parsed: Vec<DockerRef> = vec![]; let mut images: Vec<Image> = vec![]; for (file_idx, file) in files.iter().enumerate() { @@ -46,9 +45,8 @@ pub fn update_images(now: &DateTime<Utc>, 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<Utc>, 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<Utc>, 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<Utc>, 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<Utc>, 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(); } } } |
