]> git.proxmox.com Git - proxmox-backup.git/commitdiff
tape: skip catalog archives in restore
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 24 Mar 2021 08:33:39 +0000 (09:33 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 24 Mar 2021 08:33:39 +0000 (09:33 +0100)
src/api2/tape/restore.rs

index 2a8bf389f8935a714ac8ab590dd7a44963563bff..c7ba37246e08969353a459284e9b2be5584f178b 100644 (file)
@@ -449,7 +449,17 @@ fn restore_archive<'a>(
                 catalog.commit_if_large()?;
             }
         }
-        _ =>  bail!("unknown content magic {:?}", header.content_magic),
+        PROXMOX_BACKUP_CATALOG_ARCHIVE_MAGIC_1_0 => {
+            let header_data = reader.read_exact_allocated(header.size as usize)?;
+
+            let archive_header: CatalogArchiveHeader = serde_json::from_slice(&header_data)
+                .map_err(|err| format_err!("unable to parse catalog archive header - {}", err))?;
+
+            task_log!(worker, "File {}: skip catalog '{}'", current_file_number, archive_header.uuid);
+
+            reader.skip_to_end()?; // read all data
+        }
+         _ =>  bail!("unknown content magic {:?}", header.content_magic),
     }
 
     catalog.commit()?;