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]
fn http_token_path_flag() {
fn http_token_path_flag_present() {
let dir = TempDir::new().expect("Unable to create temporary directory");
CommandLineTest::new()
.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.
#[test]
fn metrics_flag() {

View File

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

View File

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