Skip to content

Commit

Permalink
feat(rust): don't create a default node for the telemetry secure client
Browse files Browse the repository at this point in the history
  • Loading branch information
etorreborre committed Feb 19, 2025
1 parent 97a8817 commit 6f43a20
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<Arc<SecureChannels>> {
debug!("create the secure channels service");
pub async fn secure_channels_for_node(&self, node_name: &str) -> Result<Arc<SecureChannels>> {
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)
Expand All @@ -18,4 +18,17 @@ impl CliState {
SecureChannelSqlxDatabase::make_repository(self.database()),
))
}

pub async fn secure_channels(&self) -> Result<Arc<SecureChannels>> {
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()),
))
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use crate::cli_state::random_name;
use crate::config::UrlVar;
use crate::logs::default_values::*;
use crate::logs::env_variables::*;
Expand Down Expand Up @@ -509,22 +508,28 @@ 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,
None,
TcpTransport::get_or_create(ctx)?,
project_route,
Arc::new(TrustIdentifierPolicy::new(identifier)),
&default_node.identifier(),
&node_identifier,
get_default_timeout(),
get_default_timeout(),
))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<dyn CredentialRetrieverCreator>,
Expand Down

0 comments on commit 6f43a20

Please sign in to comment.