]> git.proxmox.com Git - proxmox-backup.git/commitdiff
finish_backup: test/verify manifest at server side
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 30 Jul 2020 10:19:22 +0000 (12:19 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 31 Jul 2020 05:45:47 +0000 (07:45 +0200)
We want to make sure that the client uploaded a readable manifest.

src/api2/backup/environment.rs

index c8417ef91a0d9d1a257b8245b2bac6e7f5130fe2..59247283732d1ea055ab2e7d87f3e66369930172 100644 (file)
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{bail, format_err, Error};
 use std::sync::{Arc, Mutex};
 use std::collections::{HashMap, HashSet};
 
@@ -454,6 +454,13 @@ impl BackupEnvironment {
             bail!("backup does not contain valid files (file count == 0)");
         }
 
+        state.finished = true;
+
+        // check manifest
+        let _manifest = self.datastore.load_manifest(&self.backup_dir)
+            .map_err(|err| format_err!("unable to load manifest blob - {}", err))?;
+
+
         for snap in &state.base_snapshots {
             let path = self.datastore.snapshot_path(snap);
             if !path.exists() {
@@ -464,7 +471,6 @@ impl BackupEnvironment {
             }
         }
 
-        state.finished = true;
 
         Ok(())
     }