verify: log/warn on invalid owner

in order to trigger a notification/make the problem more visible than
just in syslog.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2020-11-10 13:52:49 +01:00 committed by Thomas Lamprecht
parent f4f9a503de
commit 1b1cab8321
2 changed files with 26 additions and 18 deletions

View File

@ -648,7 +648,7 @@ pub fn verify(
verify_all_backups(datastore, worker.clone(), worker.upid(), owner, None)? verify_all_backups(datastore, worker.clone(), worker.upid(), owner, None)?
}; };
if failed_dirs.len() > 0 { if failed_dirs.len() > 0 {
worker.log("Failed to verify following snapshots:"); worker.log("Failed to verify following snapshots/groups:");
for dir in failed_dirs { for dir in failed_dirs {
worker.log(format!("\t{}", dir)); worker.log(format!("\t{}", dir));
} }

View File

@ -508,23 +508,31 @@ pub fn verify_all_backups(
} }
let filter_by_owner = |group: &BackupGroup| { let filter_by_owner = |group: &BackupGroup| {
if let Some(owner) = &owner { match (datastore.get_owner(group), &owner) {
match datastore.get_owner(group) { (Ok(ref group_owner), Some(owner)) => {
Ok(ref group_owner) => {
group_owner == owner group_owner == owner
|| (group_owner.is_token() || (group_owner.is_token()
&& !owner.is_token() && !owner.is_token()
&& group_owner.user() == owner.user()) && group_owner.user() == owner.user())
}, },
Err(err) => { (Ok(_), None) => true,
(Err(err), Some(_)) => {
// intentionally not in task log // intentionally not in task log
// the task user might not be allowed to see this group! // the task user might not be allowed to see this group!
println!("Failed to get owner of group '{}' - {}", group, err); println!("Failed to get owner of group '{}' - {}", group, err);
false false
}, },
} (Err(err), None) => {
} else { // we don't filter by owner, but we want to log the error
task_log!(
worker,
"Failed to get owner of group '{} - {}",
group,
err,
);
errors.push(group.to_string());
true true
},
} }
}; };