fix: GET: /config return all configurations when running standalone (#2630)

* fix: config api return all configurations when running standalone

* chore: follow same style

* fix: avoid panic
This commit is contained in:
Niwaka
2023-11-08 12:22:19 +09:00
committed by GitHub
parent b382900c5c
commit 06d273b75a
13 changed files with 163 additions and 34 deletions

View File

@@ -15,12 +15,15 @@
use std::sync::Arc;
use catalog::kvbackend::KvBackendCatalogManager;
use cmd::options::MixOptions;
use common_base::Plugins;
use common_config::KvBackendConfig;
use common_meta::cache_invalidator::DummyKvCacheInvalidator;
use common_procedure::options::ProcedureConfig;
use common_telemetry::logging::LoggingOptions;
use datanode::config::DatanodeOptions;
use datanode::datanode::DatanodeBuilder;
use frontend::frontend::FrontendOptions;
use frontend::instance::{FrontendInstance, Instance, StandaloneDatanodeManager};
use crate::test_util::{self, create_tmp_dir_and_datanode_opts, StorageType, TestGuard};
@@ -28,6 +31,7 @@ use crate::test_util::{self, create_tmp_dir_and_datanode_opts, StorageType, Test
pub struct GreptimeDbStandalone {
pub instance: Arc<Instance>,
pub datanode_opts: DatanodeOptions,
pub mix_options: MixOptions,
pub guard: TestGuard,
}
@@ -66,10 +70,12 @@ impl GreptimeDbStandaloneBuilder {
let (opts, guard) = create_tmp_dir_and_datanode_opts(store_type, &self.instance_name);
let procedure_config = ProcedureConfig::default();
let kv_backend_config = KvBackendConfig::default();
let (kv_backend, procedure_manager) = Instance::try_build_standalone_components(
format!("{}/kv", &opts.storage.data_home),
KvBackendConfig::default(),
ProcedureConfig::default(),
kv_backend_config.clone(),
procedure_config.clone(),
)
.await
.unwrap();
@@ -110,7 +116,15 @@ impl GreptimeDbStandaloneBuilder {
GreptimeDbStandalone {
instance: Arc::new(instance),
datanode_opts: opts,
datanode_opts: opts.clone(),
mix_options: MixOptions {
data_home: opts.storage.data_home.to_string(),
procedure: procedure_config,
metadata_store: kv_backend_config,
frontend: FrontendOptions::default(),
datanode: opts,
logging: LoggingOptions::default(),
},
guard,
}
}

View File

@@ -32,6 +32,7 @@ use datanode::config::{
AzblobConfig, DatanodeOptions, FileConfig, GcsConfig, ObjectStoreConfig, OssConfig, S3Config,
StorageConfig,
};
use frontend::frontend::TomlSerializable;
use frontend::instance::Instance;
use frontend::service_config::{MysqlOptions, PostgresOptions};
use object_store::services::{Azblob, Gcs, Oss, S3};
@@ -376,7 +377,7 @@ pub async fn setup_test_http_app_with_frontend_and_user_provider(
instance.instance.clone(),
))
.with_script_handler(instance.instance.clone())
.with_greptime_config_options(instance.datanode_opts.to_toml_string());
.with_greptime_config_options(instance.mix_options.to_toml().unwrap());
if let Some(user_provider) = user_provider {
http_server.with_user_provider(user_provider);