MXS-2304 Store config parameter container as value in monitor and service
This commit is contained in:
@ -4899,7 +4899,7 @@ void dump_if_changed(const MXS_MODULE_PARAM* params,
|
||||
}
|
||||
|
||||
void dump_param_list(int file,
|
||||
MXS_CONFIG_PARAMETER* list,
|
||||
const MXS_CONFIG_PARAMETER* list,
|
||||
const std::unordered_set<std::string>& ignored,
|
||||
const MXS_MODULE_PARAM* common_params,
|
||||
const MXS_MODULE_PARAM* module_params)
|
||||
|
||||
@ -604,7 +604,7 @@ bool do_alter_monitor(Monitor* monitor, const char* key, const char* value)
|
||||
}
|
||||
|
||||
std::lock_guard<std::mutex> guard(crt_lock);
|
||||
monitor->parameters->set(key, value);
|
||||
monitor->parameters.set(key, value);
|
||||
bool success = true;
|
||||
if (strcmp(key, CN_USER) == 0)
|
||||
{
|
||||
@ -695,7 +695,7 @@ bool runtime_alter_monitor(Monitor* monitor, const char* key, const char* value)
|
||||
}
|
||||
if (was_running)
|
||||
{
|
||||
MonitorManager::monitor_start(monitor, monitor->parameters);
|
||||
MonitorManager::monitor_start(monitor, &monitor->parameters);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
@ -729,10 +729,10 @@ bool runtime_alter_service(Service* service, const char* zKey, const char* zValu
|
||||
if (service->router->configureInstance && service->capabilities & RCAP_TYPE_RUNTIME_CONFIG)
|
||||
{
|
||||
// Stash the old value in case the reconfiguration fails.
|
||||
std::string old_value = service->svc_config_param->get_string(key);
|
||||
std::string old_value = service->svc_config_param.get_string(key);
|
||||
service_replace_parameter(service, key.c_str(), value.c_str());
|
||||
|
||||
if (!service->router->configureInstance(service->router_instance, service->svc_config_param))
|
||||
if (!service->router->configureInstance(service->router_instance, &service->svc_config_param))
|
||||
{
|
||||
// Reconfiguration failed, restore the old value of the parameter
|
||||
if (old_value.empty())
|
||||
@ -2258,7 +2258,7 @@ Monitor* runtime_create_monitor_from_json(json_t* json)
|
||||
}
|
||||
else
|
||||
{
|
||||
MonitorManager::monitor_start(rval, rval->parameters);
|
||||
MonitorManager::monitor_start(rval, &rval->parameters);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2440,7 +2440,7 @@ bool runtime_alter_monitor_from_json(Monitor* monitor, json_t* new_json)
|
||||
|
||||
if (restart)
|
||||
{
|
||||
MonitorManager::monitor_start(monitor, monitor->parameters);
|
||||
MonitorManager::monitor_start(monitor, &monitor->parameters);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -235,7 +235,7 @@ bool get_suffixed_duration(const char* zValue,
|
||||
|
||||
// Dump a parameter list into a file as `key=value` pairs
|
||||
void dump_param_list(int file,
|
||||
MXS_CONFIG_PARAMETER* list,
|
||||
const MXS_CONFIG_PARAMETER* list,
|
||||
const std::unordered_set<std::string>& ignored,
|
||||
const MXS_MODULE_PARAM* common_params,
|
||||
const MXS_MODULE_PARAM* module_params);
|
||||
|
||||
@ -184,7 +184,6 @@ Monitor::Monitor(const string& name, const string& module)
|
||||
, m_module(module)
|
||||
{
|
||||
memset(m_journal_hash, 0, sizeof(m_journal_hash));
|
||||
parameters = new MXS_CONFIG_PARAMETER;
|
||||
}
|
||||
|
||||
void Monitor::stop()
|
||||
@ -236,16 +235,15 @@ bool Monitor::configure_base(const MXS_CONFIG_PARAMETER* params)
|
||||
if (!error)
|
||||
{
|
||||
// Store module name into parameter storage.
|
||||
parameters->set(CN_MODULE, m_module);
|
||||
parameters.set(CN_MODULE, m_module);
|
||||
// Add all config settings to text-mode storage. Needed for serialization.
|
||||
parameters->set_multiple(*params);
|
||||
parameters.set_multiple(*params);
|
||||
}
|
||||
return !error;
|
||||
}
|
||||
|
||||
Monitor::~Monitor()
|
||||
{
|
||||
delete parameters;
|
||||
monitor_server_free_all(m_servers);
|
||||
MXS_FREE((const_cast<char*>(m_name)));
|
||||
}
|
||||
@ -297,7 +295,7 @@ void monitor_start_all()
|
||||
this_unit.foreach_monitor([](Monitor* monitor) {
|
||||
if (monitor->m_active)
|
||||
{
|
||||
MonitorManager::monitor_start(monitor, monitor->parameters);
|
||||
MonitorManager::monitor_start(monitor, &monitor->parameters);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
@ -367,7 +365,7 @@ bool Monitor::add_server(Monitor* mon, SERVER* server)
|
||||
|
||||
if (old_state == MONITOR_STATE_RUNNING)
|
||||
{
|
||||
MonitorManager::monitor_start(mon, mon->parameters);
|
||||
MonitorManager::monitor_start(mon, &mon->parameters);
|
||||
}
|
||||
}
|
||||
|
||||
@ -455,7 +453,7 @@ void Monitor::remove_server(Monitor* mon, SERVER* server)
|
||||
|
||||
if (old_state == MONITOR_STATE_RUNNING)
|
||||
{
|
||||
MonitorManager::monitor_start(mon, mon->parameters);
|
||||
MonitorManager::monitor_start(mon, &mon->parameters);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1436,7 +1434,7 @@ static bool create_monitor_config(const Monitor* monitor, const char* filename)
|
||||
mxb_assert(mod);
|
||||
|
||||
dump_param_list(file,
|
||||
monitor->parameters,
|
||||
&monitor->parameters,
|
||||
{CN_TYPE, CN_SERVERS},
|
||||
config_monitor_params,
|
||||
mod->parameters);
|
||||
@ -1620,7 +1618,7 @@ json_t* monitor_parameters_to_json(const Monitor* monitor)
|
||||
{
|
||||
json_t* rval = json_object();
|
||||
const MXS_MODULE* mod = get_module(monitor->m_module.c_str(), MODULE_MONITOR);
|
||||
config_add_module_params_json(monitor->parameters,
|
||||
config_add_module_params_json(&monitor->parameters,
|
||||
{CN_TYPE, CN_MODULE, CN_SERVERS},
|
||||
config_monitor_params,
|
||||
mod->parameters,
|
||||
|
||||
@ -272,7 +272,7 @@ HttpResponse cb_start_monitor(const HttpRequest& request)
|
||||
Monitor* monitor = monitor_find(request.uri_part(1).c_str());
|
||||
if (monitor)
|
||||
{
|
||||
MonitorManager::monitor_start(monitor, monitor->parameters);
|
||||
MonitorManager::monitor_start(monitor, &monitor->parameters);
|
||||
}
|
||||
return HttpResponse(MHD_HTTP_NO_CONTENT);
|
||||
}
|
||||
|
||||
@ -273,8 +273,6 @@ Service::~Service()
|
||||
dbref = dbref->next;
|
||||
MXS_FREE(tmp);
|
||||
}
|
||||
|
||||
delete svc_config_param;
|
||||
}
|
||||
|
||||
void service_free(Service* service)
|
||||
@ -1150,7 +1148,7 @@ int service_refresh_users(SERVICE* svc)
|
||||
|
||||
void service_add_parameters(Service* service, const MXS_CONFIG_PARAMETER* param)
|
||||
{
|
||||
service->svc_config_param->set_multiple(*param);
|
||||
service->svc_config_param.set_multiple(*param);
|
||||
}
|
||||
|
||||
void service_add_parameter(Service* service, const char* key, const char* value)
|
||||
@ -1162,12 +1160,12 @@ void service_add_parameter(Service* service, const char* key, const char* value)
|
||||
|
||||
void service_remove_parameter(Service* service, const char* key)
|
||||
{
|
||||
service->svc_config_param->remove(key);
|
||||
service->svc_config_param.remove(key);
|
||||
}
|
||||
|
||||
void service_replace_parameter(Service* service, const char* key, const char* value)
|
||||
{
|
||||
service->svc_config_param->set(key, value);
|
||||
service->svc_config_param.set(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1467,7 +1465,7 @@ bool Service::dump_config(const char* filename) const
|
||||
mxb_assert(mod);
|
||||
|
||||
dump_param_list(file,
|
||||
svc_config_param,
|
||||
&svc_config_param,
|
||||
{CN_TYPE, CN_FILTERS, CN_SERVERS},
|
||||
config_service_params,
|
||||
mod->parameters);
|
||||
@ -1579,7 +1577,7 @@ json_t* service_parameters_to_json(const SERVICE* service)
|
||||
json_t* rval = json_object();
|
||||
|
||||
const MXS_MODULE* mod = get_module(service->router_name(), MODULE_ROUTER);
|
||||
config_add_module_params_json(service->svc_config_param,
|
||||
config_add_module_params_json(&service->svc_config_param,
|
||||
{CN_TYPE, CN_ROUTER, CN_SERVERS, CN_FILTERS},
|
||||
config_service_params,
|
||||
mod->parameters,
|
||||
|
||||
Reference in New Issue
Block a user