From 3b95f09522d9fe0b03428239677994d940fa258e Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Fri, 7 Jun 2024 13:37:45 +0200 Subject: [PATCH] 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 --- src/api2/admin/datastore.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 85430299..117dab08 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -1678,30 +1678,30 @@ pub async fn catalog( ) -> Result, Error> { let auth_id: Authid = rpcenv.get_auth_id().unwrap().parse()?; - tokio::task::spawn_blocking(move || { - let ns = ns.unwrap_or_default(); + let ns = ns.unwrap_or_default(); - let datastore = check_privs_and_load_store( - &store, - &ns, - &auth_id, - PRIV_DATASTORE_READ, - PRIV_DATASTORE_BACKUP, - Some(Operation::Read), - &backup_dir.group, - )?; + let datastore = check_privs_and_load_store( + &store, + &ns, + &auth_id, + PRIV_DATASTORE_READ, + PRIV_DATASTORE_BACKUP, + Some(Operation::Read), + &backup_dir.group, + )?; - let backup_dir = datastore.backup_dir(ns, backup_dir)?; + let backup_dir = datastore.backup_dir(ns, backup_dir)?; - let file_name = CATALOG_NAME; + let file_name = CATALOG_NAME; - 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); - } + 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 '{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);