From 7d7f03da4fd898996f0d478e6654bc765e864bd0 Mon Sep 17 00:00:00 2001 From: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Date: Thu, 30 Jun 2022 11:23:01 -0600 Subject: [PATCH] filter package ids when backing up (#1589) --- backend/src/backup/backup_bulk.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/src/backup/backup_bulk.rs b/backend/src/backup/backup_bulk.rs index 76afe1ab9..2b40efa17 100644 --- a/backend/src/backup/backup_bulk.rs +++ b/backend/src/backup/backup_bulk.rs @@ -131,7 +131,7 @@ pub async fn backup_all( long = "package-ids", parse(parse_comma_separated) )] - service_ids: Option>, + package_ids: Option>, #[arg] password: String, ) -> Result, Error> { let mut db = ctx.db.handle(); @@ -153,13 +153,13 @@ pub async fn backup_all( .into_iter() .cloned() .collect(); - let service_ids = service_ids.unwrap_or(all_packages); + let package_ids = package_ids.unwrap_or(all_packages); if old_password.is_some() { backup_guard.change_password(&password)?; } - let revision = assure_backing_up(&mut db, &service_ids).await?; + let revision = assure_backing_up(&mut db, &package_ids).await?; tokio::task::spawn(async move { - let backup_res = perform_backup(&ctx, &mut db, backup_guard).await; + let backup_res = perform_backup(&ctx, &mut db, backup_guard, &package_ids).await; let backup_progress = crate::db::DatabaseModel::new() .server_info() .status_info() @@ -285,6 +285,7 @@ async fn perform_backup( ctx: &RpcContext, mut db: Db, mut backup_guard: BackupMountGuard, + package_ids: &BTreeSet, ) -> Result, Error> { let mut backup_report = BTreeMap::new(); @@ -292,6 +293,8 @@ async fn perform_backup( .package_data() .keys(&mut db, false) .await? + .into_iter() + .filter(|id| package_ids.contains(id)) { let mut tx = db.begin().await?; // for lock scope let installed_model = if let Some(installed_model) = crate::db::DatabaseModel::new()