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:
Markus Mäkelä 2019-09-13 14:12:57 +03:00
parent 811a2b1df6
commit 31029eaec8
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
2 changed files with 19 additions and 0 deletions

View File

@ -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

View File

@ -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())