From dc96e74391d5b2a9f15412de3b1ebb41309581fc Mon Sep 17 00:00:00 2001 From: Justin Miller Date: Sat, 9 Oct 2021 16:09:04 -0600 Subject: [PATCH] chore: Refactor out big fn --- appmgr/src/install/mod.rs | 67 +++++++++++++++++++++++---------------- patch-db | 2 +- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/appmgr/src/install/mod.rs b/appmgr/src/install/mod.rs index 9d7786eaf..bc618f1c8 100644 --- a/appmgr/src/install/mod.rs +++ b/appmgr/src/install/mod.rs @@ -709,34 +709,7 @@ pub async fn install_s9pk( .get(&mut tx, true) .await? .into_owned(); - if let Some(recovered) = recovered { - let configured = if let Some(res) = manifest - .migrations - .from(ctx, &recovered.version, pkg_id, version, &manifest.volumes) - .await? - { - res.configured - } else { - false - }; - if configured { - crate::config::configure( - ctx, - &mut tx, - pkg_id, - None, - &None, - false, - &mut BTreeMap::new(), - &mut BTreeMap::new(), - ) - .await?; - } - crate::db::DatabaseModel::new() - .recovered_packages() - .remove(&mut tx, pkg_id) - .await? - } + handle_recovered_package(recovered, manifest, ctx, pkg_id, version, &mut tx).await?; } sql_tx.commit().await?; @@ -747,6 +720,44 @@ pub async fn install_s9pk( Ok(()) } +async fn handle_recovered_package( + recovered: Option, + manifest: Manifest, + ctx: &RpcContext, + pkg_id: &PackageId, + version: &Version, + tx: &mut patch_db::Transaction<&mut patch_db::PatchDbHandle>, +) -> Result<(), Error> { + Ok(if let Some(recovered) = recovered { + let configured = if let Some(res) = manifest + .migrations + .from(ctx, &recovered.version, pkg_id, version, &manifest.volumes) + .await? + { + res.configured + } else { + false + }; + if configured { + crate::config::configure( + ctx, + tx, + pkg_id, + None, + &None, + false, + &mut BTreeMap::new(), + &mut BTreeMap::new(), + ) + .await?; + } + crate::db::DatabaseModel::new() + .recovered_packages() + .remove(tx, pkg_id) + .await? + }) +} + pub async fn load_images>(datadir: P) -> Result<(), Error> { let docker_dir = datadir.as_ref().join(PKG_DOCKER_DIR); if tokio::fs::metadata(&docker_dir).await.is_ok() { diff --git a/patch-db b/patch-db index 00d177502..18c6b2def 160000 --- a/patch-db +++ b/patch-db @@ -1 +1 @@ -Subproject commit 00d1775024058a95801d1653017b0c3f6f046563 +Subproject commit 18c6b2def3db45d43ebbfbfe21f1264e5e2879df