fix: frontend opt should respect http addr in config file when no com… (#1456)

* fix: frontend opt should respect http addr in config file when no command options is given

* refactor: command line options should be Option<bool>

* fix: ci
This commit is contained in:
Lei, HUANG
2023-04-25 11:43:42 +08:00
committed by GitHub
parent f9ea6b63bf
commit 92c0808766

View File

@@ -26,7 +26,6 @@ use frontend::postgres::PostgresOptions;
use frontend::prom::PromOptions;
use meta_client::MetaClientOptions;
use servers::auth::UserProviderRef;
use servers::http::HttpOptions;
use servers::tls::{TlsMode, TlsOption};
use servers::{auth, Mode};
use snafu::ResultExt;
@@ -108,7 +107,7 @@ pub struct StartCommand {
#[clap(long)]
user_provider: Option<String>,
#[clap(long)]
disable_dashboard: bool,
disable_dashboard: Option<bool>,
}
impl StartCommand {
@@ -151,16 +150,15 @@ impl TryFrom<StartCommand> for FrontendOptions {
let tls_option = TlsOption::new(cmd.tls_mode, cmd.tls_cert_path, cmd.tls_key_path);
let mut http_options = HttpOptions {
disable_dashboard: cmd.disable_dashboard,
..Default::default()
};
if let Some(addr) = cmd.http_addr {
http_options.addr = addr;
opts.http_options.get_or_insert_with(Default::default).addr = addr;
}
opts.http_options = Some(http_options);
if let Some(disable_dashboard) = cmd.disable_dashboard {
opts.http_options
.get_or_insert_with(Default::default)
.disable_dashboard = disable_dashboard;
}
if let Some(addr) = cmd.grpc_addr {
opts.grpc_options = Some(GrpcOptions {
@@ -235,7 +233,7 @@ mod tests {
tls_cert_path: None,
tls_key_path: None,
user_provider: None,
disable_dashboard: false,
disable_dashboard: Some(false),
};
let opts: FrontendOptions = command.try_into().unwrap();
@@ -298,7 +296,7 @@ mod tests {
tls_cert_path: None,
tls_key_path: None,
user_provider: None,
disable_dashboard: false,
disable_dashboard: Some(false),
};
let fe_opts = FrontendOptions::try_from(command).unwrap();
@@ -329,7 +327,7 @@ mod tests {
tls_cert_path: None,
tls_key_path: None,
user_provider: Some("static_user_provider:cmd:test=test".to_string()),
disable_dashboard: false,
disable_dashboard: Some(false),
};
let plugins = load_frontend_plugins(&command.user_provider);