datastore: replace deprecated archive_type function

Commit ea584a75 "move more api types for the client" deprecated
the `archive_type` function in favor of the associated function
`ArchiveType::from_path`.

Replace all remaining callers of the deprecated function with its
replacement.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
[WB: and remove the deprecated function]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Christian Ebner 2024-07-03 12:11:00 +02:00 committed by Wolfgang Bumiller
parent c052040028
commit 6e3f844f9a
9 changed files with 29 additions and 31 deletions

View File

@ -29,7 +29,7 @@ use crate::dynamic_index::{DynamicIndexReader, DynamicIndexWriter};
use crate::fixed_index::{FixedIndexReader, FixedIndexWriter}; use crate::fixed_index::{FixedIndexReader, FixedIndexWriter};
use crate::hierarchy::{ListGroups, ListGroupsType, ListNamespaces, ListNamespacesRecursive}; use crate::hierarchy::{ListGroups, ListGroupsType, ListNamespaces, ListNamespacesRecursive};
use crate::index::IndexFile; use crate::index::IndexFile;
use crate::manifest::{archive_type, ArchiveType}; use crate::manifest::ArchiveType;
use crate::task_tracking::{self, update_active_operations}; use crate::task_tracking::{self, update_active_operations};
use crate::DataBlob; use crate::DataBlob;
@ -377,7 +377,7 @@ impl DataStore {
P: AsRef<Path>, P: AsRef<Path>,
{ {
let filename = filename.as_ref(); let filename = filename.as_ref();
let out: Box<dyn IndexFile + Send> = match archive_type(filename)? { let out: Box<dyn IndexFile + Send> = match ArchiveType::from_path(filename)? {
ArchiveType::DynamicIndex => Box::new(self.open_dynamic_reader(filename)?), ArchiveType::DynamicIndex => Box::new(self.open_dynamic_reader(filename)?),
ArchiveType::FixedIndex => Box::new(self.open_fixed_reader(filename)?), ArchiveType::FixedIndex => Box::new(self.open_fixed_reader(filename)?),
_ => bail!("cannot open index file of unknown type: {:?}", filename), _ => bail!("cannot open index file of unknown type: {:?}", filename),
@ -936,7 +936,7 @@ impl DataStore {
continue; continue;
} }
}; };
if let Ok(archive_type) = archive_type(&path) { if let Ok(archive_type) = ArchiveType::from_path(&path) {
if archive_type == ArchiveType::FixedIndex if archive_type == ArchiveType::FixedIndex
|| archive_type == ArchiveType::DynamicIndex || archive_type == ArchiveType::DynamicIndex
{ {
@ -1011,7 +1011,7 @@ impl DataStore {
match std::fs::File::open(&img) { match std::fs::File::open(&img) {
Ok(file) => { Ok(file) => {
if let Ok(archive_type) = archive_type(&img) { if let Ok(archive_type) = ArchiveType::from_path(&img) {
if archive_type == ArchiveType::FixedIndex { if archive_type == ArchiveType::FixedIndex {
let index = FixedIndexReader::new(file).map_err(|e| { let index = FixedIndexReader::new(file).map_err(|e| {
format_err!("can't read index '{}' - {}", img.to_string_lossy(), e) format_err!("can't read index '{}' - {}", img.to_string_lossy(), e)

View File

@ -76,11 +76,6 @@ impl ArchiveType {
} }
} }
//#[deprecated(note = "use ArchivType::from_path instead")] later...
pub fn archive_type<P: AsRef<Path>>(archive_name: P) -> Result<ArchiveType, Error> {
ArchiveType::from_path(archive_name)
}
impl BackupManifest { impl BackupManifest {
pub fn new(snapshot: pbs_api_types::BackupDir) -> Self { pub fn new(snapshot: pbs_api_types::BackupDir) -> Self {
Self { Self {

View File

@ -14,7 +14,7 @@ use crate::backup_info::BackupDir;
use crate::dynamic_index::DynamicIndexReader; use crate::dynamic_index::DynamicIndexReader;
use crate::fixed_index::FixedIndexReader; use crate::fixed_index::FixedIndexReader;
use crate::index::IndexFile; use crate::index::IndexFile;
use crate::manifest::{archive_type, ArchiveType, CLIENT_LOG_BLOB_NAME, MANIFEST_BLOB_NAME}; use crate::manifest::{ArchiveType, CLIENT_LOG_BLOB_NAME, MANIFEST_BLOB_NAME};
use crate::DataStore; use crate::DataStore;
/// Helper to access the contents of a datastore backup snapshot /// Helper to access the contents of a datastore backup snapshot
@ -138,13 +138,16 @@ impl<'a, F: Fn(&[u8; 32]) -> bool> Iterator for SnapshotChunkIterator<'a, F> {
if self.current_index.is_none() { if self.current_index.is_none() {
if let Some(filename) = self.todo_list.pop() { if let Some(filename) = self.todo_list.pop() {
let file = self.snapshot_reader.open_file(&filename)?; let file = self.snapshot_reader.open_file(&filename)?;
let index: Box<dyn IndexFile + Send> = match archive_type(&filename)? { let index: Box<dyn IndexFile + Send> =
ArchiveType::FixedIndex => Box::new(FixedIndexReader::new(file)?), match ArchiveType::from_path(&filename)? {
ArchiveType::DynamicIndex => Box::new(DynamicIndexReader::new(file)?), ArchiveType::FixedIndex => Box::new(FixedIndexReader::new(file)?),
_ => bail!( ArchiveType::DynamicIndex => {
"SnapshotChunkIterator: got unknown file type - internal error" Box::new(DynamicIndexReader::new(file)?)
), }
}; _ => bail!(
"SnapshotChunkIterator: got unknown file type - internal error"
),
};
let datastore = DataStore::lookup_datastore( let datastore = DataStore::lookup_datastore(
self.snapshot_reader.datastore_name(), self.snapshot_reader.datastore_name(),
@ -178,7 +181,7 @@ impl<'a, F: Fn(&[u8; 32]) -> bool> SnapshotChunkIterator<'a, F> {
let mut todo_list = Vec::new(); let mut todo_list = Vec::new();
for filename in snapshot_reader.file_list() { for filename in snapshot_reader.file_list() {
match archive_type(filename)? { match ArchiveType::from_path(filename)? {
ArchiveType::FixedIndex | ArchiveType::DynamicIndex => { ArchiveType::FixedIndex | ArchiveType::DynamicIndex => {
todo_list.push(filename.to_owned()); todo_list.push(filename.to_owned());
} }

View File

@ -55,7 +55,7 @@ use pbs_datastore::dynamic_index::{BufferedDynamicReader, DynamicIndexReader, Lo
use pbs_datastore::fixed_index::FixedIndexReader; use pbs_datastore::fixed_index::FixedIndexReader;
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{ use pbs_datastore::manifest::{
archive_type, ArchiveType, BackupManifest, ENCRYPTED_KEY_BLOB_NAME, MANIFEST_BLOB_NAME, ArchiveType, BackupManifest, ENCRYPTED_KEY_BLOB_NAME, MANIFEST_BLOB_NAME,
}; };
use pbs_datastore::read_chunk::AsyncReadChunk; use pbs_datastore::read_chunk::AsyncReadChunk;
use pbs_datastore::CATALOG_NAME; use pbs_datastore::CATALOG_NAME;
@ -1361,7 +1361,7 @@ async fn dump_image<W: Write>(
fn parse_archive_type(name: &str) -> (String, ArchiveType) { fn parse_archive_type(name: &str) -> (String, ArchiveType) {
if name.ends_with(".didx") || name.ends_with(".fidx") || name.ends_with(".blob") { if name.ends_with(".didx") || name.ends_with(".fidx") || name.ends_with(".blob") {
(name.into(), archive_type(name).unwrap()) (name.into(), ArchiveType::from_path(name).unwrap())
} else if has_pxar_filename_extension(name, false) { } else if has_pxar_filename_extension(name, false) {
(format!("{}.didx", name), ArchiveType::DynamicIndex) (format!("{}.didx", name), ArchiveType::DynamicIndex)
} else if name.ends_with(".img") { } else if name.ends_with(".img") {

View File

@ -25,7 +25,7 @@ use pbs_api_types::{
}; };
use pbs_config::CachedUserInfo; use pbs_config::CachedUserInfo;
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{archive_type, ArchiveType}; use pbs_datastore::manifest::ArchiveType;
use pbs_datastore::{DataStore, PROXMOX_BACKUP_PROTOCOL_ID_V1}; use pbs_datastore::{DataStore, PROXMOX_BACKUP_PROTOCOL_ID_V1};
use pbs_tools::json::{required_array_param, required_integer_param, required_string_param}; use pbs_tools::json::{required_array_param, required_integer_param, required_string_param};
@ -842,7 +842,7 @@ fn download_previous(
path.push(&archive_name); path.push(&archive_name);
{ {
let index: Option<Box<dyn IndexFile>> = match archive_type(&archive_name)? { let index: Option<Box<dyn IndexFile>> = match ArchiveType::from_path(&archive_name)? {
ArchiveType::FixedIndex => { ArchiveType::FixedIndex => {
let index = env.datastore.open_fixed_reader(&path)?; let index = env.datastore.open_fixed_reader(&path)?;
Some(Box::new(index)) Some(Box::new(index))

View File

@ -25,7 +25,7 @@ use pbs_api_types::{
}; };
use pbs_config::CachedUserInfo; use pbs_config::CachedUserInfo;
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{archive_type, ArchiveType}; use pbs_datastore::manifest::ArchiveType;
use pbs_datastore::{DataStore, PROXMOX_BACKUP_READER_PROTOCOL_ID_V1}; use pbs_datastore::{DataStore, PROXMOX_BACKUP_READER_PROTOCOL_ID_V1};
use pbs_tools::json::required_string_param; use pbs_tools::json::required_string_param;
@ -263,7 +263,7 @@ fn download_file(
env.log(format!("download {:?}", path.clone())); env.log(format!("download {:?}", path.clone()));
let index: Option<Box<dyn IndexFile + Send>> = match archive_type(&file_name)? { let index: Option<Box<dyn IndexFile + Send>> = match ArchiveType::from_path(&file_name)? {
ArchiveType::FixedIndex => { ArchiveType::FixedIndex => {
let index = env.datastore.open_fixed_reader(&path)?; let index = env.datastore.open_fixed_reader(&path)?;
Some(Box::new(index)) Some(Box::new(index))

View File

@ -30,7 +30,7 @@ use pbs_config::CachedUserInfo;
use pbs_datastore::dynamic_index::DynamicIndexReader; use pbs_datastore::dynamic_index::DynamicIndexReader;
use pbs_datastore::fixed_index::FixedIndexReader; use pbs_datastore::fixed_index::FixedIndexReader;
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{archive_type, ArchiveType, BackupManifest, MANIFEST_BLOB_NAME}; use pbs_datastore::manifest::{ArchiveType, BackupManifest, MANIFEST_BLOB_NAME};
use pbs_datastore::{DataBlob, DataStore}; use pbs_datastore::{DataBlob, DataStore};
use pbs_tape::{ use pbs_tape::{
BlockReadError, MediaContentHeader, TapeRead, PROXMOX_BACKUP_CONTENT_HEADER_MAGIC_1_0, BlockReadError, MediaContentHeader, TapeRead, PROXMOX_BACKUP_CONTENT_HEADER_MAGIC_1_0,
@ -1061,7 +1061,7 @@ fn restore_snapshots_to_tmpdir(
let mut archive_path = tmp_path.to_owned(); let mut archive_path = tmp_path.to_owned();
archive_path.push(&item.filename); archive_path.push(&item.filename);
let index: Box<dyn IndexFile> = match archive_type(&item.filename)? { let index: Box<dyn IndexFile> = match ArchiveType::from_path(&item.filename)? {
ArchiveType::DynamicIndex => { ArchiveType::DynamicIndex => {
Box::new(DynamicIndexReader::open(&archive_path)?) Box::new(DynamicIndexReader::open(&archive_path)?)
} }

View File

@ -16,7 +16,7 @@ use pbs_api_types::{
}; };
use pbs_datastore::backup_info::{BackupDir, BackupGroup, BackupInfo}; use pbs_datastore::backup_info::{BackupDir, BackupGroup, BackupInfo};
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{archive_type, ArchiveType, BackupManifest, FileInfo}; use pbs_datastore::manifest::{ArchiveType, BackupManifest, FileInfo};
use pbs_datastore::{DataBlob, DataStore, StoreProgress}; use pbs_datastore::{DataBlob, DataStore, StoreProgress};
use crate::tools::parallel_handler::ParallelHandler; use crate::tools::parallel_handler::ParallelHandler;
@ -371,7 +371,7 @@ pub fn verify_backup_dir_with_lock(
for info in manifest.files() { for info in manifest.files() {
let result = proxmox_lang::try_block!({ let result = proxmox_lang::try_block!({
info!(" check {}", info.filename); info!(" check {}", info.filename);
match archive_type(&info.filename)? { match ArchiveType::from_path(&info.filename)? {
ArchiveType::FixedIndex => verify_fixed_index(verify_worker, backup_dir, info), ArchiveType::FixedIndex => verify_fixed_index(verify_worker, backup_dir, info),
ArchiveType::DynamicIndex => verify_dynamic_index(verify_worker, backup_dir, info), ArchiveType::DynamicIndex => verify_dynamic_index(verify_worker, backup_dir, info),
ArchiveType::Blob => verify_blob(backup_dir, info), ArchiveType::Blob => verify_blob(backup_dir, info),

View File

@ -26,7 +26,7 @@ use pbs_datastore::dynamic_index::DynamicIndexReader;
use pbs_datastore::fixed_index::FixedIndexReader; use pbs_datastore::fixed_index::FixedIndexReader;
use pbs_datastore::index::IndexFile; use pbs_datastore::index::IndexFile;
use pbs_datastore::manifest::{ use pbs_datastore::manifest::{
archive_type, ArchiveType, BackupManifest, FileInfo, CLIENT_LOG_BLOB_NAME, MANIFEST_BLOB_NAME, ArchiveType, BackupManifest, FileInfo, CLIENT_LOG_BLOB_NAME, MANIFEST_BLOB_NAME,
}; };
use pbs_datastore::read_chunk::AsyncReadChunk; use pbs_datastore::read_chunk::AsyncReadChunk;
use pbs_datastore::{ use pbs_datastore::{
@ -709,7 +709,7 @@ async fn pull_single_archive<'a>(
let mut tmpfile = std::fs::OpenOptions::new().read(true).open(&tmp_path)?; let mut tmpfile = std::fs::OpenOptions::new().read(true).open(&tmp_path)?;
match archive_type(archive_name)? { match ArchiveType::from_path(archive_name)? {
ArchiveType::DynamicIndex => { ArchiveType::DynamicIndex => {
let index = DynamicIndexReader::new(tmpfile).map_err(|err| { let index = DynamicIndexReader::new(tmpfile).map_err(|err| {
format_err!("unable to read dynamic index {:?} - {}", tmp_path, err) format_err!("unable to read dynamic index {:?} - {}", tmp_path, err)
@ -825,7 +825,7 @@ async fn pull_snapshot<'a>(
path.push(&item.filename); path.push(&item.filename);
if path.exists() { if path.exists() {
match archive_type(&item.filename)? { match ArchiveType::from_path(&item.filename)? {
ArchiveType::DynamicIndex => { ArchiveType::DynamicIndex => {
let index = DynamicIndexReader::open(&path)?; let index = DynamicIndexReader::open(&path)?;
let (csum, size) = index.compute_csum(); let (csum, size) = index.compute_csum();