diff --git a/services/tunnelbroker/src/amqp.rs b/services/tunnelbroker/src/amqp.rs index 94d40275f..577e6e1d4 100644 --- a/services/tunnelbroker/src/amqp.rs +++ b/services/tunnelbroker/src/amqp.rs @@ -1,14 +1,14 @@ use crate::CONFIG; use lapin::{Connection, ConnectionProperties}; use tracing::info; pub async fn connect() -> Connection { - let amqp_uri = format!("amqp://{}:{}", CONFIG.amqp_address, CONFIG.amqp_port); - let conn = Connection::connect(&amqp_uri, ConnectionProperties::default()) - .await - .expect("Unable to connect to amqp endpoint"); + let conn = + Connection::connect(&CONFIG.amqp_uri, ConnectionProperties::default()) + .await + .expect("Unable to connect to amqp endpoint"); - info!("Connected to amqp endpoint: {}", &amqp_uri); + info!("Connected to amqp endpoint: {}", &CONFIG.amqp_uri); return conn; } diff --git a/services/tunnelbroker/src/config.rs b/services/tunnelbroker/src/config.rs index e2f8deb8f..8c87a4071 100644 --- a/services/tunnelbroker/src/config.rs +++ b/services/tunnelbroker/src/config.rs @@ -1,57 +1,54 @@ use crate::constants; use anyhow::{ensure, Result}; use clap::Parser; use once_cell::sync::Lazy; use tracing::info; #[derive(Parser)] #[command(version, about, long_about = None)] pub struct AppConfig { /// gRPC server listening port #[arg(long, default_value_t = constants::GRPC_SERVER_PORT)] pub grpc_port: u16, /// HTTP server listening port #[arg(long, default_value_t = 51001)] pub http_port: u16, - /// AMQP server listening port - #[arg(long, default_value_t = 5672)] - pub amqp_port: u16, - /// AMQP server listening port - #[arg(long, default_value_t = String::from("localhost"))] - pub amqp_address: String, + /// AMQP server URI + #[arg(long, default_value_t = String::from("amqp://localhost:5672"))] + pub amqp_uri: String, /// AWS Localstack service URL #[arg(env = "LOCALSTACK_ENDPOINT")] #[arg(long)] pub localstack_endpoint: Option, } /// Stores configuration parsed from command-line arguments /// and environment variables pub static CONFIG: Lazy = Lazy::new(AppConfig::parse); /// Processes the command-line arguments and environment variables. /// Should be called at the beginning of the `main()` function. pub(super) fn parse_cmdline_args() -> Result<()> { // force evaluation of the lazy initialized config let cfg = Lazy::force(&CONFIG); // Perform some additional validation for CLI args ensure!( cfg.grpc_port != cfg.http_port, "gRPC and HTTP ports cannot be the same: {}", cfg.grpc_port ); Ok(()) } /// Provides region/credentials configuration for AWS SDKs pub async fn load_aws_config() -> aws_config::SdkConfig { let mut config_builder = aws_config::from_env(); if let Some(endpoint) = &CONFIG.localstack_endpoint { info!("Using localstack URL: {}", endpoint); config_builder = config_builder.endpoint_url(endpoint); } config_builder.load().await }