finish dependency autoconfig (#2596)

This commit is contained in:
Aiden McClelland
2024-04-08 12:07:56 -06:00
committed by GitHub
parent e41f8f1d0f
commit c13d8f3699

View File

@@ -3,6 +3,7 @@ use std::time::Duration;
use clap::Parser; use clap::Parser;
use models::PackageId; use models::PackageId;
use patch_db::json_patch::merge;
use rpc_toolkit::{command, from_fn_async, Empty, HandlerExt, ParentHandler}; use rpc_toolkit::{command, from_fn_async, Empty, HandlerExt, ParentHandler};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use tracing::instrument; use tracing::instrument;
@@ -102,78 +103,24 @@ pub async fn configure_logic(
ctx: RpcContext, ctx: RpcContext,
(dependent_id, dependency_id): (PackageId, PackageId), (dependent_id, dependency_id): (PackageId, PackageId),
) -> Result<ConfigDryRes, Error> { ) -> Result<ConfigDryRes, Error> {
// let db = ctx.db.peek().await; let dependency_guard = ctx.services.get(&dependency_id).await;
// let pkg = db let dependency = dependency_guard.as_ref().or_not_found(&dependency_id)?;
// .as_package_data() let dependent_guard = ctx.services.get(&dependent_id).await;
// .as_idx(&pkg_id) let dependent = dependent_guard.as_ref().or_not_found(&dependent_id)?;
// .or_not_found(&pkg_id)? let config_res = dependency.get_config().await?;
// .as_installed() let diff = Value::Object(
// .or_not_found(&pkg_id)?; dependent
// let pkg_version = pkg.as_manifest().as_version().de()?; .dependency_config(dependency_id, config_res.config.clone())
// let pkg_volumes = pkg.as_manifest().as_volumes().de()?; .await?
// let dependency = db .unwrap_or_default(),
// .as_package_data() );
// .as_idx(&dependency_id) let mut new_config = Value::Object(config_res.config.clone().unwrap_or_default());
// .or_not_found(&dependency_id)? merge(&mut new_config, &diff);
// .as_installed() Ok(ConfigDryRes {
// .or_not_found(&dependency_id)?; old_config: config_res.config.unwrap_or_default(),
// let dependency_config_action = dependency new_config: new_config.as_object().cloned().unwrap_or_default(),
// .as_manifest() spec: config_res.spec,
// .as_config() })
// .de()?
// .ok_or_else(|| not_found!("Manifest Config"))?;
// let dependency_version = dependency.as_manifest().as_version().de()?;
// let dependency_volumes = dependency.as_manifest().as_volumes().de()?;
// let dependency = pkg
// .as_manifest()
// .as_dependencies()
// .as_idx(&dependency_id)
// .or_not_found(&dependency_id)?;
// let ConfigRes {
// config: maybe_config,
// spec,
// } = dependency_config_action
// .get(
// &ctx,
// &dependency_id,
// &dependency_version,
// &dependency_volumes,
// )
// .await?;
// let old_config = if let Some(config) = maybe_config {
// config
// } else {
// spec.gen(
// &mut rand::rngs::StdRng::from_entropy(),
// &Some(Duration::new(10, 0)),
// )?
// };
// let new_config = dependency
// .as_config()
// .de()?
// .ok_or_else(|| not_found!("Config"))?
// .auto_configure
// .sandboxed(
// &ctx,
// &pkg_id,
// &pkg_version,
// &pkg_volumes,
// Some(&old_config),
// None,
// ProcedureName::AutoConfig(dependency_id.clone()),
// )
// .await?
// .map_err(|e| Error::new(eyre!("{}", e.1), crate::ErrorKind::AutoConfigure))?;
// Ok(ConfigDryRes {
// old_config,
// new_config,
// spec,
// })
todo!()
} }
#[instrument(skip_all)] #[instrument(skip_all)]