diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2026-02-07 20:48:38 +0100 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2026-02-07 20:48:38 +0100 |
| commit | 74c458501a749a12e1cea04dd6656d07a77b2426 (patch) | |
| tree | 449e15e3afe4a6fc157c7651236dc02067a80aee | |
| parent | f634dab8509ce012c99dcba26392000424e49c82 (diff) | |
There are multiple registries in there
| -rw-r--r-- | src/main.rs | 6 | ||||
| -rw-r--r-- | src/registry.rs | 20 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/main.rs b/src/main.rs index 680bc9f..96d3d1e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,7 @@ use crate::docker::DockerRef; use crate::manifest::ManifestFile; use crate::dockerfile::DockerfileFile; use crate::db::{Db, SqliteDb}; -use crate::registry::{Registry, HttpRegistry, AuthInfo, Credentials, basic_auth}; +use crate::registry::{Registries, HttpRegistry, AuthInfo, Credentials, basic_auth}; use rand::distr::{Alphanumeric, SampleString}; use std::ops::Range; @@ -52,7 +52,7 @@ struct FileInput { images: Vec<Range<usize>>, } -fn update_images(now: &chrono::DateTime<chrono::Utc>, db: &dyn Db, reg: &dyn Registry, files: &[FileInput], outcomes: &mut Vec<Result<Vec<FilePatch>, String>>) { +fn update_images(now: &chrono::DateTime<chrono::Utc>, db: &dyn Db, reg: &dyn Registries, files: &[FileInput], outcomes: &mut Vec<Result<Vec<FilePatch>, String>>) { for file in files { let mut patches = vec![]; let mut error: Option<String> = None; @@ -303,7 +303,7 @@ fn is_yaml(path: &std::path::Path) -> bool { return false; } -fn run_tool(db: &dyn Db, reg: &dyn Registry, repos: &Vec<Repository>, mut infile_paths: Vec<std::path::PathBuf>, overwrite: bool) { +fn run_tool(db: &dyn Db, reg: &dyn Registries, repos: &Vec<Repository>, mut infile_paths: Vec<std::path::PathBuf>, overwrite: bool) { for repo in repos { if repo.dest.exists() { let mut gitcmd = std::process::Command::new("git"); diff --git a/src/registry.rs b/src/registry.rs index 9f497fd..c23a395 100644 --- a/src/registry.rs +++ b/src/registry.rs @@ -3,7 +3,7 @@ use base64::prelude::*; use std::cell::RefCell; use std::collections::HashMap; -pub trait Registry { +pub trait Registries { fn get_tags(&self, registry: &str, image: &str) -> Option<Vec<String>>; fn get_digest(&self, registry: &str, image: &str, tag: &str) -> Option<String>; } @@ -258,7 +258,7 @@ impl HttpRegistry { } } -impl Registry for HttpRegistry { +impl Registries for HttpRegistry { fn get_tags(&self, registry: &str, image: &str) -> Option<Vec<String>> { let mut url = format!("/v2/{}/tags/list", image); let mut tags = vec![]; @@ -369,7 +369,7 @@ impl StubRegistry { } #[cfg(test)] -impl Registry for StubRegistry { +impl Registries for StubRegistry { fn get_tags(&self, registry: &str, image: &str) -> Option<Vec<String>> { let mut tags = vec![]; let mut found = false; @@ -402,11 +402,11 @@ impl Registry for StubRegistry { mod tests { use super::*; - fn test_get_tags_returns_none_for_unknown(reg: &dyn Registry) { + fn test_get_tags_returns_none_for_unknown(reg: &dyn Registries) { assert_eq!(reg.get_tags("docker.io", "unknown"), None); } - fn test_get_tags_returns_all(reg: &dyn Registry, stub: &StubRegistry) { + fn test_get_tags_returns_all(reg: &dyn Registries, stub: &StubRegistry) { stub.add_tag("docker.io", "nginx", "1.21", "sha256:abc"); stub.add_tag("docker.io", "nginx", "1.20", "sha256:def"); stub.add_tag("docker.io", "nginx", "latest", "sha256:ghi"); @@ -416,17 +416,17 @@ mod tests { assert_eq!(tags, vec!["1.20", "1.21", "latest"]); } - fn test_get_digest_returns_none_for_unknown(reg: &dyn Registry) { + fn test_get_digest_returns_none_for_unknown(reg: &dyn Registries) { assert_eq!(reg.get_digest("docker.io", "nginx", "1.21"), None); } - fn test_get_digest_returns_digest(reg: &dyn Registry, stub: &StubRegistry) { + fn test_get_digest_returns_digest(reg: &dyn Registries, stub: &StubRegistry) { stub.add_tag("docker.io", "nginx", "1.21", "sha256:abc123"); assert_eq!(reg.get_digest("docker.io", "nginx", "1.21"), Some("sha256:abc123".to_string())); } - fn test_set_digest_updates_existing(reg: &dyn Registry, stub: &StubRegistry) { + fn test_set_digest_updates_existing(reg: &dyn Registries, stub: &StubRegistry) { stub.add_tag("docker.io", "nginx", "1.21", "sha256:old"); stub.set_digest("docker.io", "nginx", "1.21", "sha256:new"); @@ -464,7 +464,7 @@ mod tests { } #[cfg(feature = "integration")] - fn test_http_get_tags(reg: &dyn Registry) { + fn test_http_get_tags(reg: &dyn Registries) { let tags = reg.get_tags("registry.hub.docker.com", "library/nginx"); assert!(tags.is_some()); let tags = tags.unwrap(); @@ -472,7 +472,7 @@ mod tests { } #[cfg(feature = "integration")] - fn test_http_get_digest(reg: &dyn Registry) { + fn test_http_get_digest(reg: &dyn Registries) { let digest = reg.get_digest("registry.hub.docker.com", "library/nginx", "1.21"); assert!(digest.is_some()); assert!(digest.unwrap().starts_with("sha256:")); |
