mirror of
git://git.proxmox.com/git/proxmox-backup.git
synced 2025-01-07 17:18:03 +03:00
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:
parent
30ea695518
commit
3b95f09522
@ -1678,30 +1678,30 @@ 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 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);
|
||||
|
Loading…
Reference in New Issue
Block a user