diff options
Diffstat (limited to 'src/updater.rs')
| -rw-r--r-- | src/updater.rs | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/updater.rs b/src/updater.rs index 7ab6483..b9dc555 100644 --- a/src/updater.rs +++ b/src/updater.rs @@ -34,14 +34,14 @@ pub fn update_images(now: &DateTime<Utc>, db: &dyn Db, reg: &dyn Registries, fil let image_record = match db.get_image(registry, image_name) { Some(x) => x, None => { - let mut new_image = Image { + let mut new_images = [Image { id: 0, registry: registry.to_string(), image: image_name.to_string(), expires_at: DateTime::<Utc>::UNIX_EPOCH, - }; - db.insert_image(&mut new_image); - new_image + }]; + db.insert_images(&mut new_images); + new_images[0].clone() }, }; @@ -52,7 +52,7 @@ pub fn update_images(now: &DateTime<Utc>, db: &dyn Db, reg: &dyn Registries, fil } // Refresh all expired images in the database - for expired in db.get_expired_images(now) { + for mut expired in db.get_expired_images(now) { let cache_max_age = reg.get_cache_ttl(&expired.registry); let cached_tags = db.get_tags_sorted(expired.id); @@ -78,12 +78,12 @@ pub fn update_images(now: &DateTime<Utc>, db: &dyn Db, reg: &dyn Registries, fil } db.delete_tags(&to_delete); db.insert_tags(&mut to_insert); - let new_expires_at = *now + cache_max_age; - db.set_expires_at(expired.id, &new_expires_at); + expired.expires_at = *now + cache_max_age; + db.update_images(&[expired]); } None => { - let new_expires_at = *now + cache_max_age; - db.set_expires_at(expired.id, &new_expires_at); + expired.expires_at = *now + cache_max_age; + db.update_images(&[expired]); } } } @@ -215,11 +215,11 @@ mod tests { ]); let past_expiry = now - chrono::Duration::days(1); - let mut img = Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: past_expiry }; - db.insert_image(&mut img); + let mut images = [Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: past_expiry }]; + db.insert_images(&mut images); db.insert_tags(&mut [ - Tag { id: 0, image_id: img.id, tag: "1.20".into(), digest: None }, - Tag { id: 0, image_id: img.id, tag: "1.21".into(), digest: None }, + Tag { id: 0, image_id: images[0].id, tag: "1.20".into(), digest: None }, + Tag { id: 0, image_id: images[0].id, tag: "1.21".into(), digest: None }, ]); let files = vec![FileInput { @@ -230,7 +230,7 @@ mod tests { let mut outcomes = vec![]; update_images(&now, &db, ®, &files, &mut outcomes); - let tags: Vec<String> = db.get_tags_sorted(img.id).into_iter().map(|t| t.tag).collect(); + let tags: Vec<String> = db.get_tags_sorted(images[0].id).into_iter().map(|t| t.tag).collect(); assert_eq!(tags, vec!["1.21", "1.22"]); let got = db.get_image("registry.hub.docker.com", "nginx").unwrap(); assert!(got.expires_at > now); @@ -244,9 +244,9 @@ mod tests { let reg = StubRegistry::new(vec![]); let future_expiry = now + chrono::Duration::minutes(30); - let mut img = Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: future_expiry }; - db.insert_image(&mut img); - db.insert_tags(&mut [Tag { id: 0, image_id: img.id, tag: "1.21".into(), digest: None }]); + let mut images = [Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: future_expiry }]; + db.insert_images(&mut images); + db.insert_tags(&mut [Tag { id: 0, image_id: images[0].id, tag: "1.21".into(), digest: None }]); let files = vec![FileInput { path: "/test".into(), @@ -352,9 +352,9 @@ mod tests { let reg = StubRegistry::new(vec![]); let future_expiry = now + chrono::Duration::minutes(30); - let mut img = Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: future_expiry }; - db.insert_image(&mut img); - db.insert_tags(&mut [Tag { id: 0, image_id: img.id, tag: "1.21".into(), digest: Some("sha256:0000000000000000000000000000000000000000000000000000000000000003".into()) }]); + let mut images = [Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: future_expiry }]; + db.insert_images(&mut images); + db.insert_tags(&mut [Tag { id: 0, image_id: images[0].id, tag: "1.21".into(), digest: Some("sha256:0000000000000000000000000000000000000000000000000000000000000003".into()) }]); let files = vec![FileInput { path: "/test".into(), @@ -585,9 +585,9 @@ mod tests { ]); let past_expiry = now - chrono::Duration::days(1); - let mut img = Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: past_expiry }; - db.insert_image(&mut img); - db.insert_tags(&mut [Tag { id: 0, image_id: img.id, tag: "1.21".into(), digest: Some("sha256:0000000000000000000000000000000000000000000000000000000000000003".into()) }]); + let mut images = [Image { id: 0, registry: "registry.hub.docker.com".into(), image: "nginx".into(), expires_at: past_expiry }]; + db.insert_images(&mut images); + db.insert_tags(&mut [Tag { id: 0, image_id: images[0].id, tag: "1.21".into(), digest: Some("sha256:0000000000000000000000000000000000000000000000000000000000000003".into()) }]); let files = vec