From c31f449afd4ec3fe07237a2eaa4998f203354809 Mon Sep 17 00:00:00 2001 From: Simon Wicky Date: Tue, 28 Jan 2025 11:32:33 +0100 Subject: [PATCH] Add support for custom report database path in statistics collector --- service-providers/statistics-collector/src/cli/init.rs | 5 +++++ service-providers/statistics-collector/src/cli/mod.rs | 4 ++++ service-providers/statistics-collector/src/cli/run.rs | 1 + service-providers/statistics-collector/src/config/mod.rs | 8 ++++++++ 4 files changed, 18 insertions(+) diff --git a/service-providers/statistics-collector/src/cli/init.rs b/service-providers/statistics-collector/src/cli/init.rs index db8e86d81f..5c046f891c 100644 --- a/service-providers/statistics-collector/src/cli/init.rs +++ b/service-providers/statistics-collector/src/cli/init.rs @@ -42,6 +42,10 @@ pub(crate) struct Init { #[clap(short, long, default_value_t = OutputFormat::default())] output: OutputFormat, + + /// Custom path to the report storage database + #[clap(long)] + report_database_path: Option, } impl From for OverrideConfig { @@ -50,6 +54,7 @@ impl From for OverrideConfig { nym_apis: init_config.common_args.nym_apis, nyxd_urls: init_config.common_args.nyxd_urls, enabled_credentials_mode: init_config.common_args.enabled_credentials_mode, + report_database_path: init_config.report_database_path, } } } diff --git a/service-providers/statistics-collector/src/cli/mod.rs b/service-providers/statistics-collector/src/cli/mod.rs index d4cb240bac..d55cd0ae5d 100644 --- a/service-providers/statistics-collector/src/cli/mod.rs +++ b/service-providers/statistics-collector/src/cli/mod.rs @@ -7,10 +7,12 @@ use log::error; use nym_bin_common::bin_info; use nym_bin_common::completions::{fig_generate, ArgShell}; use nym_client_core::cli_helpers::CliClient; +use nym_config::OptionalSet; use nym_statistics_collector::{ config::{helpers::try_upgrade_config, BaseClientConfig, Config}, error::StatsCollectorError, }; +use std::path::PathBuf; use std::sync::OnceLock; mod add_gateway; @@ -98,6 +100,7 @@ pub(crate) struct OverrideConfig { nym_apis: Option>, nyxd_urls: Option>, enabled_credentials_mode: Option, + report_database_path: Option, } pub(crate) fn override_config(config: Config, args: OverrideConfig) -> Config { @@ -118,6 +121,7 @@ pub(crate) fn override_config(config: Config, args: OverrideConfig) -> Config { BaseClientConfig::with_disabled_credentials, args.enabled_credentials_mode.map(|b| !b), ) + .with_optional(Config::with_report_database_path, args.report_database_path) } pub(crate) async fn execute(args: Cli) -> Result<(), StatsCollectorError> { diff --git a/service-providers/statistics-collector/src/cli/run.rs b/service-providers/statistics-collector/src/cli/run.rs index 284b166fb1..250342c33a 100644 --- a/service-providers/statistics-collector/src/cli/run.rs +++ b/service-providers/statistics-collector/src/cli/run.rs @@ -20,6 +20,7 @@ impl From for OverrideConfig { nym_apis: None, nyxd_urls: run_config.common_args.nyxd_urls, enabled_credentials_mode: run_config.common_args.enabled_credentials_mode, + report_database_path: None, } } } diff --git a/service-providers/statistics-collector/src/config/mod.rs b/service-providers/statistics-collector/src/config/mod.rs index 464522f12b..82e46cd19a 100644 --- a/service-providers/statistics-collector/src/config/mod.rs +++ b/service-providers/statistics-collector/src/config/mod.rs @@ -101,6 +101,14 @@ impl Config { self.storage_paths = StatsCollectorPaths::new_base(data_directory); self } + #[allow(unused)] + pub fn with_report_database_path>( + mut self, + database_path: P, + ) -> Self { + self.storage_paths.client_reports_database = database_path.into(); + self + } pub fn read_from_toml_file>(path: P) -> io::Result { nym_config::read_config_from_toml_file(path)