[pbs-devel] [PATCH pbs 2/2] fix #4761: pbs-client: backup_writer: improve error reporting
Maximiliano Sandoval
m.sandoval at proxmox.com
Wed Jun 7 16:07:01 CEST 2023
We check if the manifest contains an index for the requested archive, if
it does not we avoid downloading it and report a more helpful error
message.
Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
Best viewed with git diff -w.
pbs-client/src/backup_writer.rs | 56 +++++++++++++++++++--------------
1 file changed, 32 insertions(+), 24 deletions(-)
diff --git a/pbs-client/src/backup_writer.rs b/pbs-client/src/backup_writer.rs
index 2e18a060..03dbcab7 100644
--- a/pbs-client/src/backup_writer.rs
+++ b/pbs-client/src/backup_writer.rs
@@ -282,33 +282,41 @@ impl BackupWriter {
let close_path = format!("{}_close", prefix);
if let Some(manifest) = options.previous_manifest {
- // try, but ignore errors
- match ArchiveType::from_path(archive_name) {
- Ok(ArchiveType::FixedIndex) => {
- if let Err(err) = self
- .download_previous_fixed_index(
- archive_name,
- &manifest,
- known_chunks.clone(),
- )
- .await
- {
- log::warn!("Error downloading .fidx from previous manifest: {}", err);
+ if !manifest
+ .files()
+ .iter()
+ .any(|file| file.filename == archive_name)
+ {
+ log::info!("There is no index with the name {archive_name}");
+ } else {
+ // try, but ignore errors
+ match ArchiveType::from_path(archive_name) {
+ Ok(ArchiveType::FixedIndex) => {
+ if let Err(err) = self
+ .download_previous_fixed_index(
+ archive_name,
+ &manifest,
+ known_chunks.clone(),
+ )
+ .await
+ {
+ log::warn!("Error downloading .fidx from previous manifest: {}", err);
+ }
}
- }
- Ok(ArchiveType::DynamicIndex) => {
- if let Err(err) = self
- .download_previous_dynamic_index(
- archive_name,
- &manifest,
- known_chunks.clone(),
- )
- .await
- {
- log::warn!("Error downloading .didx from previous manifest: {}", err);
+ Ok(ArchiveType::DynamicIndex) => {
+ if let Err(err) = self
+ .download_previous_dynamic_index(
+ archive_name,
+ &manifest,
+ known_chunks.clone(),
+ )
+ .await
+ {
+ log::warn!("Error downloading .didx from previous manifest: {}", err);
+ }
}
+ _ => { /* do nothing */ }
}
- _ => { /* do nothing */ }
}
}
--
2.39.2
More information about the pbs-devel
mailing list