From e128d4e84f406a8461f7cfebd9c61606586604da Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 25 Jul 2019 12:23:33 +0200 Subject: [PATCH] src/api2/admin/datastore.rs: backup logs may not be written twice --- src/api2/admin/datastore.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 3333c69e..4bb834b6 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -487,13 +487,17 @@ fn upload_backup_log( let backup_dir = BackupDir::new(backup_type, backup_id, backup_time); - println!("Upload backup log to {}/{}/{}/{}/{}", store, - backup_type, backup_id, BackupDir::backup_time_to_string(backup_dir.backup_time()), file_name); - let mut path = datastore.base_path(); path.push(backup_dir.relative_path()); path.push(&file_name); + if path.exists() { + bail!("backup already contains a log."); + } + + println!("Upload backup log to {}/{}/{}/{}/{}", store, + backup_type, backup_id, BackupDir::backup_time_to_string(backup_dir.backup_time()), file_name); + let resp = req_body .map_err(Error::from) .fold(Vec::new(), |mut acc, chunk| {