mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-04 14:29:45 +00:00
chore: Refactor out big fn
This commit is contained in:
committed by
Aiden McClelland
parent
c2150efb69
commit
dc96e74391
@@ -709,34 +709,7 @@ pub async fn install_s9pk<R: AsyncRead + AsyncSeek + Unpin>(
|
|||||||
.get(&mut tx, true)
|
.get(&mut tx, true)
|
||||||
.await?
|
.await?
|
||||||
.into_owned();
|
.into_owned();
|
||||||
if let Some(recovered) = recovered {
|
handle_recovered_package(recovered, manifest, ctx, pkg_id, version, &mut tx).await?;
|
||||||
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?
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sql_tx.commit().await?;
|
sql_tx.commit().await?;
|
||||||
@@ -747,6 +720,44 @@ pub async fn install_s9pk<R: AsyncRead + AsyncSeek + Unpin>(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn handle_recovered_package(
|
||||||
|
recovered: Option<crate::db::model::RecoveredPackageInfo>,
|
||||||
|
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<P: AsRef<Path>>(datadir: P) -> Result<(), Error> {
|
pub async fn load_images<P: AsRef<Path>>(datadir: P) -> Result<(), Error> {
|
||||||
let docker_dir = datadir.as_ref().join(PKG_DOCKER_DIR);
|
let docker_dir = datadir.as_ref().join(PKG_DOCKER_DIR);
|
||||||
if tokio::fs::metadata(&docker_dir).await.is_ok() {
|
if tokio::fs::metadata(&docker_dir).await.is_ok() {
|
||||||
|
|||||||
2
patch-db
2
patch-db
Submodule patch-db updated: 00d1775024...18c6b2def3
Reference in New Issue
Block a user