mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
Appmgr/fix/restart dep on install (#262)
* appmgr: fix: restart dep on install * appmgr: fix: bind before restart Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
@@ -24,7 +24,6 @@ pub async fn start_app(name: &str, update_metadata: bool) -> Result<(), Error> {
|
||||
if status == crate::apps::DockerStatus::Stopped {
|
||||
if update_metadata {
|
||||
crate::config::configure(name, None, None, false).await?;
|
||||
crate::dependencies::update_shared(name).await?;
|
||||
crate::dependencies::update_binds(name).await?;
|
||||
}
|
||||
crate::apps::set_needs_restart(name, false).await?;
|
||||
|
||||
@@ -188,31 +188,6 @@ pub async fn auto_configure(
|
||||
crate::config::configure(dependency, Some(dependency_config), None, dry_run).await
|
||||
}
|
||||
|
||||
pub async fn update_shared(dependency_id: &str) -> Result<(), Error> {
|
||||
let dependency_manifest = crate::apps::manifest(dependency_id).await?;
|
||||
if let Some(shared) = dependency_manifest.shared {
|
||||
for dependent_id in &crate::apps::dependents(dependency_id, false).await? {
|
||||
let dependent_manifest = crate::apps::manifest(&dependent_id).await?;
|
||||
if dependent_manifest
|
||||
.dependencies
|
||||
.0
|
||||
.get(dependency_id)
|
||||
.ok_or_else(|| failure::format_err!("failed to index dependent: {}", dependent_id))?
|
||||
.mount_shared
|
||||
{
|
||||
tokio::fs::create_dir_all(
|
||||
Path::new(crate::VOLUMES)
|
||||
.join(dependency_id)
|
||||
.join(&shared)
|
||||
.join(&dependent_id),
|
||||
)
|
||||
.await?;
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn update_binds(dependent_id: &str) -> Result<(), Error> {
|
||||
let dependent_manifest = crate::apps::manifest(dependent_id).await?;
|
||||
let dependency_manifests = futures::future::try_join_all(
|
||||
|
||||
@@ -561,6 +561,7 @@ pub async fn install_v0<R: AsyncRead + Unpin + Send + Sync>(
|
||||
crate::config::configure(&manifest.id, Some(empty_config), None, false).await?;
|
||||
}
|
||||
}
|
||||
crate::dependencies::update_binds(&manifest.id).await?;
|
||||
for (dep_id, dep_info) in manifest.dependencies.0 {
|
||||
if dep_info.mount_shared
|
||||
&& crate::apps::list_info().await?.get(&dep_id).is_some()
|
||||
|
||||
Reference in New Issue
Block a user