refactor BackupInfo -> SnapshotListItem helper

before adding more fields to the tuple, let's just create the struct
inside the match arms to improve readability.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2020-11-20 17:38:41 +01:00 committed by Dietmar Maurer
parent 8b7f8d3f3d
commit 79c535955d
1 changed files with 28 additions and 22 deletions

View File

@ -391,9 +391,11 @@ pub fn list_snapshots (
};
let info_to_snapshot_list_item = |group: &BackupGroup, owner, info: BackupInfo| {
let backup_type = group.backup_type().to_string();
let backup_id = group.backup_id().to_string();
let backup_time = info.backup_dir.backup_time();
let (comment, verification, files, size) = match get_all_snapshot_files(&datastore, &info) {
match get_all_snapshot_files(&datastore, &info) {
Ok((manifest, files)) => {
// extract the first line from notes
let comment: Option<String> = manifest.unprotected["notes"]
@ -401,8 +403,8 @@ pub fn list_snapshots (
.and_then(|notes| notes.lines().next())
.map(String::from);
let verify = manifest.unprotected["verify_state"].clone();
let verify: Option<SnapshotVerifyState> = match serde_json::from_value(verify) {
let verification = manifest.unprotected["verify_state"].clone();
let verification: Option<SnapshotVerifyState> = match serde_json::from_value(verification) {
Ok(verify) => verify,
Err(err) => {
eprintln!("error parsing verification state : '{}'", err);
@ -412,14 +414,20 @@ pub fn list_snapshots (
let size = Some(files.iter().map(|x| x.size.unwrap_or(0)).sum());
(comment, verify, files, size)
SnapshotListItem {
backup_type,
backup_id,
backup_time,
comment,
verification,
files,
size,
owner,
}
},
Err(err) => {
eprintln!("error during snapshot file listing: '{}'", err);
(
None,
None,
info
let files = info
.files
.into_iter()
.map(|x| BackupContent {
@ -427,22 +435,20 @@ pub fn list_snapshots (
size: None,
crypt_mode: None,
})
.collect(),
None,
)
},
};
.collect();
SnapshotListItem {
backup_type: group.backup_type().to_string(),
backup_id: group.backup_id().to_string(),
backup_type,
backup_id,
backup_time,
comment,
verification,
comment: None,
verification: None,
files,
size,
size: None,
owner,
}
},
}
};
groups