From 2e41dbe82849725a5871cfbae8663ae0d5a1b680 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 5 May 2021 12:09:12 +0200 Subject: [PATCH] tape/media_catalog: add helpers to look for snapshot/chunk files Signed-off-by: Dominik Csapak --- src/tape/media_catalog.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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