From 6f43a206898c66d15888b6d449d0ca726075e958 Mon Sep 17 00:00:00 2001 From: etorreborre Date: Wed, 19 Feb 2025 16:07:23 +0100 Subject: [PATCH] feat(rust): don't create a default node for the telemetry secure client --- .../src/cli_state/secure_channels.rs | 17 +++++++++++++-- .../src/logs/exporting_configuration.rs | 21 ++++++++++++------- .../ockam_api/src/nodes/service/manager.rs | 2 +- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/implementations/rust/ockam/ockam_api/src/cli_state/secure_channels.rs b/implementations/rust/ockam/ockam_api/src/cli_state/secure_channels.rs index ff4219011b8..44797a56da3 100644 --- a/implementations/rust/ockam/ockam_api/src/cli_state/secure_channels.rs +++ b/implementations/rust/ockam/ockam_api/src/cli_state/secure_channels.rs @@ -6,8 +6,8 @@ use crate::cli_state::CliState; use crate::cli_state::Result; impl CliState { - pub async fn secure_channels(&self, node_name: &str) -> Result> { - debug!("create the secure channels service"); + pub async fn secure_channels_for_node(&self, node_name: &str) -> Result> { + debug!("create the secure channels service for node {node_name}"); let named_vault = self.get_node_vault(node_name).await?; let vault = self.make_vault(named_vault).await?; let identities = Identities::create_with_node(self.database(), node_name) @@ -18,4 +18,17 @@ impl CliState { SecureChannelSqlxDatabase::make_repository(self.database()), )) } + + pub async fn secure_channels(&self) -> Result> { + debug!("create the secure channels service"); + let named_vault = self.get_or_create_default_named_vault().await?; + let vault = self.make_vault(named_vault).await?; + let identities = Identities::create(self.database()) + .with_vault(vault) + .build(); + Ok(SecureChannels::from_identities( + identities, + SecureChannelSqlxDatabase::make_repository(self.database()), + )) + } } diff --git a/implementations/rust/ockam/ockam_api/src/logs/exporting_configuration.rs b/implementations/rust/ockam/ockam_api/src/logs/exporting_configuration.rs index 0f95a8d4d8a..8380c010482 100644 --- a/implementations/rust/ockam/ockam_api/src/logs/exporting_configuration.rs +++ b/implementations/rust/ockam/ockam_api/src/logs/exporting_configuration.rs @@ -1,4 +1,3 @@ -use crate::cli_state::random_name; use crate::config::UrlVar; use crate::logs::default_values::*; use crate::logs::env_variables::*; @@ -509,14 +508,20 @@ async fn make_secure_client( let project_route = TransportRouteResolver::default() .allow_tcp() .resolve(&route)?; - let default_node = if let Ok(node) = cli_state.get_default_node().await { - node + let (secure_channels, node_identifier) = if let Ok(node) = cli_state.get_default_node().await { + ( + cli_state.secure_channels_for_node(&node.name()).await?, + node.identifier(), + ) } else { - cli_state - .create_node_with_optional_identity(&random_name(), &None) - .await? + ( + cli_state.secure_channels().await?, + cli_state + .get_or_create_default_named_identity() + .await? + .identifier(), + ) }; - let secure_channels = cli_state.secure_channels(&default_node.name()).await?; Ok(SecureClient::new( secure_channels, @@ -524,7 +529,7 @@ async fn make_secure_client( TcpTransport::get_or_create(ctx)?, project_route, Arc::new(TrustIdentifierPolicy::new(identifier)), - &default_node.identifier(), + &node_identifier, get_default_timeout(), get_default_timeout(), )) diff --git a/implementations/rust/ockam/ockam_api/src/nodes/service/manager.rs b/implementations/rust/ockam/ockam_api/src/nodes/service/manager.rs index 5810ad4476a..524be2e35f4 100644 --- a/implementations/rust/ockam/ockam_api/src/nodes/service/manager.rs +++ b/implementations/rust/ockam/ockam_api/src/nodes/service/manager.rs @@ -87,7 +87,7 @@ impl NodeManager { .store_default_resource_type_policies() .await?; - let secure_channels = cli_state.secure_channels(&node_name).await?; + let secure_channels = cli_state.secure_channels_for_node(&node_name).await?; let project_member_credential_retriever_creator: Option< Arc,