setting tenant-level parameters at startup
This commit is contained in:
@ -1523,7 +1523,7 @@ int ObServer::init_config()
|
||||
|
||||
config_.print();
|
||||
|
||||
// local_ip is a critical parameter, if if is set, then verify it; otherwise, set it via devname.
|
||||
// local_ip is a critical parameter, if it is set, then verify it; otherwise, set it via devname.
|
||||
if (strlen(config_.local_ip) > 0) {
|
||||
char if_name[MAX_IFNAME_LENGTH] = { '\0' };
|
||||
if (0 != obsys::ObNetUtil::get_ifname_by_addr(config_.local_ip, if_name, sizeof(if_name))) {
|
||||
@ -1632,8 +1632,11 @@ int ObServer::init_config()
|
||||
LOG_ERROR("config_mgr_ base_init failed", KR(ret));
|
||||
} else if (OB_FAIL(config_mgr_.init(sql_proxy_, self_addr_))) {
|
||||
LOG_ERROR("config_mgr_ init failed", K_(self_addr), KR(ret));
|
||||
} else if (OB_FAIL(tenant_config_mgr_.init(sql_proxy_, self_addr_, &config_mgr_, update_tenant_config_cb))) {
|
||||
} else if (OB_FAIL(tenant_config_mgr_.init(sql_proxy_, self_addr_,
|
||||
&config_mgr_, update_tenant_config_cb))) {
|
||||
LOG_ERROR("tenant_config_mgr_ init failed", K_(self_addr), KR(ret));
|
||||
} else if (OB_FAIL(tenant_config_mgr_.add_config_to_existing_tenant(opts_.optstr_))) {
|
||||
LOG_ERROR("tenant_config_mgr_ add_config_to_existing_tenant failed", KR(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -616,6 +616,25 @@ void ObTenantConfigMgr::notify_tenant_config_changed(uint64_t tenant_id)
|
||||
update_tenant_config_cb_(tenant_id);
|
||||
}
|
||||
|
||||
int ObTenantConfigMgr::add_config_to_existing_tenant(const char *config_str)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
DRWLock::WRLockGuard guard(rwlock_);
|
||||
if (!config_map_.empty() && nullptr != config_str) {
|
||||
TenantConfigMap::const_iterator it = config_map_.begin();
|
||||
for (; it != config_map_.end() && OB_SUCC(ret); ++it) {
|
||||
if (OB_NOT_NULL(it->second)) {
|
||||
int64_t version = ObTimeUtility::current_time();
|
||||
if (OB_FAIL(it->second->add_extra_config(config_str, version))) {
|
||||
LOG_WARN("add tenant extra config failed", "tenant_id", it->second->get_tenant_id(),
|
||||
"config_str", config_str, KR(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObTenantConfigMgr::add_extra_config(const obrpc::ObTenantConfigArg &arg)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
@ -145,6 +145,7 @@ public:
|
||||
int got_version(uint64_t tenant_id, int64_t version, const bool remove_repeat = true);
|
||||
int update_local(uint64_t tenant_id, int64_t expected_version);
|
||||
void notify_tenant_config_changed(uint64_t tenatn_id);
|
||||
int add_config_to_existing_tenant(const char *config_str);
|
||||
int add_extra_config(const obrpc::ObTenantConfigArg &arg);
|
||||
int schedule(ObTenantConfig::TenantConfigUpdateTask &task, const int64_t delay);
|
||||
int cancel(const ObTenantConfig::TenantConfigUpdateTask &task);
|
||||
|
||||
@ -343,7 +343,7 @@ int ObCommonConfig::add_extra_config(const char *config_str,
|
||||
} else if (OB_ISNULL(pp_item = container_.get(ObConfigStringKey(name)))) {
|
||||
/* make compatible with previous configuration */
|
||||
ret = check_name ? OB_INVALID_CONFIG : OB_SUCCESS;
|
||||
LOG_ERROR("Invalid config string, no such config item", K(name), K(value), K(ret));
|
||||
LOG_WARN("Invalid config string, no such config item", K(name), K(value), K(ret));
|
||||
} else if (external_kms_info_cfg.case_compare(name) == 0
|
||||
|| ssl_external_kms_info_cfg.case_compare(name) == 0) {
|
||||
if (OB_FAIL(common::hex_to_cstr(value, value_len,
|
||||
|
||||
Reference in New Issue
Block a user