pull_store/group: dont try remove locally protected snapshots

and log if a vanished groups could not be completely deleted if it
contains protected snapshots

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Dominik Csapak 2021-10-27 13:22:31 +02:00 committed by Wolfgang Bumiller
parent de91418b79
commit 343392613d
1 changed files with 17 additions and 3 deletions

View File

@ -605,6 +605,14 @@ pub async fn pull_group(
if remote_snapshots.contains(&backup_time) { if remote_snapshots.contains(&backup_time) {
continue; continue;
} }
if info.backup_dir.is_protected(tgt_store.base_path()) {
task_log!(
worker,
"don't delete vanished snapshot {:?} (protected)",
info.backup_dir.relative_path()
);
continue;
}
task_log!(worker, "delete vanished snapshot {:?}", info.backup_dir.relative_path()); task_log!(worker, "delete vanished snapshot {:?}", info.backup_dir.relative_path());
tgt_store.remove_backup_dir(&info.backup_dir, false)?; tgt_store.remove_backup_dir(&info.backup_dir, false)?;
} }
@ -719,9 +727,15 @@ pub async fn pull_store(
local_group.backup_type(), local_group.backup_type(),
local_group.backup_id() local_group.backup_id()
); );
if let Err(err) = tgt_store.remove_backup_group(&local_group) { match tgt_store.remove_backup_group(&local_group) {
task_log!(worker, "{}", err.to_string()); Ok(true) => {},
errors = true; Ok(false) => {
task_log!(worker, "kept some protected snapshots of group '{}'", local_group);
},
Err(err) => {
task_log!(worker, "{}", err);
errors = true;
}
} }
} }
Ok(()) Ok(())