MXS-2675: Fix server creation with TLS via REST API
The TLS parameters were defined but the main parameter that enables it wasn't automatically added. As the REST API documentation states that this parameter does not need to be defined, the runtime configuration must add it.
This commit is contained in:
parent
811a2b1df6
commit
31029eaec8
@ -434,6 +434,20 @@ public:
|
||||
*/
|
||||
bool contains(const std::string& key) const;
|
||||
|
||||
/**
|
||||
* Check if any of the given keys are defined
|
||||
*
|
||||
* @param keys The keys to check
|
||||
*
|
||||
* @return True if at least one of the keys is defined
|
||||
*/
|
||||
bool contains_any(const std::initializer_list<std::string>& keys) const
|
||||
{
|
||||
return std::any_of(keys.begin(), keys.end(), [this](const std::string& a) {
|
||||
return contains(a);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a key-value combination. If the key doesn't exist, it is added. The function is static
|
||||
* to handle the special case of params being empty. This is needed until the config management
|
||||
|
@ -1893,6 +1893,11 @@ bool runtime_create_server_from_json(json_t* json)
|
||||
{
|
||||
params.set_multiple(extract_parameters_from_json(json));
|
||||
|
||||
if (params.contains_any({CN_SSL_KEY, CN_SSL_CERT, CN_SSL_CA_CERT}))
|
||||
{
|
||||
params.set(CN_SSL, "true");
|
||||
}
|
||||
|
||||
if (Server* server = Server::server_alloc(name, params))
|
||||
{
|
||||
if (link_server_to_objects(server, relations) && server->serialize())
|
||||
|
Loading…
x
Reference in New Issue
Block a user