pull: use BackupGroup consistently

instead of `GroupListItem`s. we convert it anyway, so might as well do
that at the start.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2021-10-28 15:00:51 +02:00 committed by Thomas Lamprecht
parent 0ceb97538a
commit e2e7560d5e

View File

@ -656,29 +656,32 @@ pub async fn pull_store(
}
});
let list:Vec<BackupGroup> = list
.into_iter()
.map(|item| BackupGroup::new(item.backup_type, item.backup_id))
.collect();
let mut errors = false;
let mut new_groups = std::collections::HashSet::new();
for item in list.iter() {
new_groups.insert(BackupGroup::new(&item.backup_type, &item.backup_id));
for group in list.iter() {
new_groups.insert(group.clone());
}
let mut progress = StoreProgress::new(list.len() as u64);
for (done, item) in list.into_iter().enumerate() {
for (done, group) in list.into_iter().enumerate() {
progress.done_groups = done as u64;
progress.done_snapshots = 0;
progress.group_snapshots = 0;
let group = BackupGroup::new(&item.backup_type, &item.backup_id);
let (owner, _lock_guard) = match tgt_store.create_locked_backup_group(&group, &auth_id) {
Ok(result) => result,
Err(err) => {
task_log!(
worker,
"sync group {}/{} failed - group lock failed: {}",
item.backup_type, item.backup_id, err
"sync group {} failed - group lock failed: {}",
&group, err
);
errors = true; // do not stop here, instead continue
continue;
@ -690,8 +693,8 @@ pub async fn pull_store(
// only the owner is allowed to create additional snapshots
task_log!(
worker,
"sync group {}/{} failed - owner check failed ({} != {})",
item.backup_type, item.backup_id, auth_id, owner
"sync group {} failed - owner check failed ({} != {})",
&group, auth_id, owner
);
errors = true; // do not stop here, instead continue
} else if let Err(err) = pull_group(
@ -707,8 +710,8 @@ pub async fn pull_store(
{
task_log!(
worker,
"sync group {}/{} failed - {}",
item.backup_type, item.backup_id, err,
"sync group {} failed - {}",
&group, err,
);
errors = true; // do not stop here, instead continue
}