api: datastore: move reusable code out of thread

Move code that can be reused when having to  perform a lookup via the
pxar metadata archive instead of the catalog out of the thread.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
This commit is contained in:
Christian Ebner 2024-06-07 13:37:45 +02:00 committed by Fabian Grünbichler
parent 30ea695518
commit 3b95f09522

View File

@ -1678,7 +1678,6 @@ pub async fn catalog(
) -> Result<Vec<ArchiveEntry>, Error> {
let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?;
tokio::task::spawn_blocking(move || {
let ns = ns.unwrap_or_default();
let datastore = check_privs_and_load_store(
@ -1698,10 +1697,11 @@ pub async fn catalog(
let (manifest, files) = read_backup_index(&backup_dir)?;
for file in files {
if file.filename == file_name && file.crypt_mode == Some(CryptMode::Encrypt) {
bail!("cannot decode '{}' - is encrypted", file_name);
bail!("cannot decode '{file_name}' - is encrypted");
}
}
tokio::task::spawn_blocking(move || {
let mut path = datastore.base_path();
path.push(backup_dir.relative_path());
path.push(file_name);