Fix incorrect VC default HTTP token path when the --datadir flag is present (#6748)

* Fix incorrect default http token path when datadir flag is present.
This commit is contained in:
Jimmy Chen
2025-01-08 14:12:39 +11:00
committed by GitHub
parent 80cfbea7fe
commit 87b72dec21
3 changed files with 20 additions and 5 deletions

View File

@@ -345,7 +345,7 @@ fn http_store_keystore_passwords_in_secrets_dir_present() {
} }
#[test] #[test]
fn http_token_path_flag() { fn http_token_path_flag_present() {
let dir = TempDir::new().expect("Unable to create temporary directory"); let dir = TempDir::new().expect("Unable to create temporary directory");
CommandLineTest::new() CommandLineTest::new()
.flag("http", None) .flag("http", None)
@@ -359,6 +359,19 @@ fn http_token_path_flag() {
}); });
} }
#[test]
fn http_token_path_default() {
CommandLineTest::new()
.flag("http", None)
.run()
.with_config(|config| {
assert_eq!(
config.http_api.http_token_path,
config.validator_dir.join("api-token.txt")
);
});
}
// Tests for Metrics flags. // Tests for Metrics flags.
#[test] #[test]
fn metrics_flag() { fn metrics_flag() {

View File

@@ -106,6 +106,7 @@ pub struct Config {
impl Default for Config { impl Default for Config {
fn default() -> Self { fn default() -> Self {
// This value is always overridden when building config from CLI.
let http_token_path = dirs::home_dir() let http_token_path = dirs::home_dir()
.unwrap_or_else(|| PathBuf::from(".")) .unwrap_or_else(|| PathBuf::from("."))
.join(DEFAULT_ROOT_DIR) .join(DEFAULT_ROOT_DIR)

View File

@@ -314,10 +314,11 @@ impl Config {
config.http_api.store_passwords_in_secrets_dir = true; config.http_api.store_passwords_in_secrets_dir = true;
} }
if cli_args.get_one::<String>("http-token-path").is_some() { if let Some(http_token_path) = cli_args.get_one::<String>("http-token-path") {
config.http_api.http_token_path = parse_required(cli_args, "http-token-path") config.http_api.http_token_path = PathBuf::from(http_token_path);
// For backward compatibility, default to the path under the validator dir if not provided. } else {
.unwrap_or_else(|_| config.validator_dir.join(PK_FILENAME)); // For backward compatibility, default to the path under the validator dir if not provided.
config.http_api.http_token_path = config.validator_dir.join(PK_FILENAME);
} }
/* /*