diff --git a/src/tape/media_catalog.rs b/src/tape/media_catalog.rs index aff91c43..8be97a36 100644 --- a/src/tape/media_catalog.rs +++ b/src/tape/media_catalog.rs @@ -924,6 +924,16 @@ impl MediaSetCatalog { false } + /// Returns the media uuid and snapshot archive file number + pub fn lookup_snapshot(&self, store: &str, snapshot: &str) -> Option<(&Uuid, u64)> { + for (uuid, catalog) in self.catalog_list.iter() { + if let Some(nr) = catalog.lookup_snapshot(store, snapshot) { + return Some((uuid, nr)); + } + } + None + } + /// Test if the catalog already contain a chunk pub fn contains_chunk(&self, store: &str, digest: &[u8;32]) -> bool { for catalog in self.catalog_list.values() { @@ -933,6 +943,16 @@ impl MediaSetCatalog { } false } + + /// Returns the media uuid and chunk archive file number + pub fn lookup_chunk(&self, store: &str, digest: &[u8;32]) -> Option<(&Uuid, u64)> { + for (uuid, catalog) in self.catalog_list.iter() { + if let Some(nr) = catalog.lookup_chunk(store, digest) { + return Some((uuid, nr)); + } + } + None + } } // Type definitions for internal binary catalog encoding