From 5b8f27e53e152e02148f80b132325467051853d3 Mon Sep 17 00:00:00 2001 From: Lucy C <12953208+elvece@users.noreply.github.com> Date: Thu, 18 Mar 2021 00:46:29 -0600 Subject: [PATCH] Appmgr/fix/restart dep on install (#262) * appmgr: fix: restart dep on install * appmgr: fix: bind before restart Co-authored-by: Aiden McClelland --- appmgr/src/control.rs | 1 - appmgr/src/dependencies.rs | 25 ------------------------- appmgr/src/install.rs | 1 + 3 files changed, 1 insertion(+), 26 deletions(-) diff --git a/appmgr/src/control.rs b/appmgr/src/control.rs index 0b7f03650..03778b8f7 100644 --- a/appmgr/src/control.rs +++ b/appmgr/src/control.rs @@ -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?; diff --git a/appmgr/src/dependencies.rs b/appmgr/src/dependencies.rs index 4cdb80557..f8c8b10a9 100644 --- a/appmgr/src/dependencies.rs +++ b/appmgr/src/dependencies.rs @@ -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( diff --git a/appmgr/src/install.rs b/appmgr/src/install.rs index 4c474324b..34306758b 100644 --- a/appmgr/src/install.rs +++ b/appmgr/src/install.rs @@ -561,6 +561,7 @@ pub async fn install_v0( 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()