Add tests with backend SSL
A 'BACKEND_SSL' label added. If test has this label Testconnection() configures backend servers to require SSL
This commit is contained in:
@ -569,7 +569,7 @@ add_test_executable(mxs922_restart.cpp mxs922_restart mxs922 LABELS maxscale REP
|
|||||||
add_test_executable(mxs922_scaling.cpp mxs922_scaling mxs922_base LABELS maxscale REPL_BACKEND)
|
add_test_executable(mxs922_scaling.cpp mxs922_scaling mxs922_base LABELS maxscale REPL_BACKEND)
|
||||||
|
|
||||||
# Dynamic listener SSL test
|
# Dynamic listener SSL test
|
||||||
add_test_executable(mxs922_listener_ssl.cpp mxs922_listener_ssl mxs922_base LABELS maxscale REPL_BACKEND)
|
add_test_executable(mxs922_listener_ssl.cpp mxs922_listener_ssl mxs922_base LABELS maxscale BACKEND_SSL REPL_BACKEND)
|
||||||
|
|
||||||
# Alter routers at runtime
|
# Alter routers at runtime
|
||||||
add_test_executable(alter_router.cpp alter_router alter_router LABELS maxscale REPL_BACKEND)
|
add_test_executable(alter_router.cpp alter_router alter_router LABELS maxscale REPL_BACKEND)
|
||||||
@ -813,7 +813,7 @@ add_test_executable(sharding_load_data.cpp sharding_load_data sharding LABELS sc
|
|||||||
add_test_executable(short_sessions.cpp short_sessions replication LABELS readwritesplit readconnroute REPL_BACKEND)
|
add_test_executable(short_sessions.cpp short_sessions replication LABELS readwritesplit readconnroute REPL_BACKEND)
|
||||||
|
|
||||||
# Do short sessions (open conn, short query, close conn) in the loop, client ssl is ON
|
# Do short sessions (open conn, short query, close conn) in the loop, client ssl is ON
|
||||||
add_test_derived(short_sessions_ssl short_sessions ssl LABELS readwritesplit readconnroute REPL_BACKEND)
|
add_test_derived(short_sessions_ssl short_sessions ssl LABELS readwritesplit readconnroute BACKEND_SSL REPL_BACKEND)
|
||||||
|
|
||||||
# Regression case for crash if maxadmin 'show monitors' command is issued, but no monitor is not running
|
# Regression case for crash if maxadmin 'show monitors' command is issued, but no monitor is not running
|
||||||
add_test_executable(show_monitor_crash.cpp show_monitor_crash show_monitor_crash LABELS maxscale REPL_BACKEND)
|
add_test_executable(show_monitor_crash.cpp show_monitor_crash show_monitor_crash LABELS maxscale REPL_BACKEND)
|
||||||
@ -853,7 +853,7 @@ add_test_executable(test_hints.cpp test_hints hints2 LABELS hintfilter readwrite
|
|||||||
# works only with yum-based distributions
|
# works only with yum-based distributions
|
||||||
# TODO: make it working with zypper and apt, move part of KDC setup to MDBCI
|
# TODO: make it working with zypper and apt, move part of KDC setup to MDBCI
|
||||||
add_test_executable(kerberos_setup.cpp kerberos_setup kerberos LABELS HEAVY gssapi REPL_BACKEND)
|
add_test_executable(kerberos_setup.cpp kerberos_setup kerberos LABELS HEAVY gssapi REPL_BACKEND)
|
||||||
add_test_derived(kerberos_setup_ssl kerberos_setup kerberos_ssl LABELS HEAVY gssapi REPL_BACKEND)
|
add_test_derived(kerberos_setup_ssl kerberos_setup kerberos_ssl LABELS HEAVY gssapi BACKEND_SSL REPL_BACKEND)
|
||||||
|
|
||||||
# Configures 'keepalived' on two Maxscale machines and tried failover
|
# Configures 'keepalived' on two Maxscale machines and tried failover
|
||||||
add_test_executable(keepalived.cpp keepalived keepalived LABELS REPL_BACKEND TWO_MAXSCALES)
|
add_test_executable(keepalived.cpp keepalived keepalived LABELS REPL_BACKEND TWO_MAXSCALES)
|
||||||
@ -1014,6 +1014,16 @@ add_test_executable(mxs2631_ignore_system_tables.cpp mxs2631_ignore_system_table
|
|||||||
# END: Normal tests #
|
# END: Normal tests #
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# BEGIN: backend SSL tests #
|
||||||
|
############################################
|
||||||
|
|
||||||
|
add_test_derived(sql_queries_ssl sql_queries ssl LABELS readwritesplit REPL_BACKEND BACKEND_SSL)
|
||||||
|
|
||||||
|
############################################
|
||||||
|
# END: backend SSL tests #
|
||||||
|
############################################
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
# BEGIN: binlogrouter and avrorouter tests #
|
# BEGIN: binlogrouter and avrorouter tests #
|
||||||
############################################
|
############################################
|
||||||
|
|||||||
@ -79,12 +79,26 @@ void Config::destroy_server(int num)
|
|||||||
void Config::create_server(int num)
|
void Config::create_server(int num)
|
||||||
{
|
{
|
||||||
test_->set_timeout(120);
|
test_->set_timeout(120);
|
||||||
|
char ssl_line[200 + 3 * strlen(test_->maxscales->access_homedir[0])] = "";
|
||||||
|
if (test_->backend_ssl)
|
||||||
|
{
|
||||||
|
sprintf(ssl_line,
|
||||||
|
" --tls-key=/%s/certs/client-key.pem "
|
||||||
|
" --tls-cert=/%s/certs/client-cert.pem "
|
||||||
|
" --tls-ca-cert=/%s/certs/ca.pem "
|
||||||
|
" --tls-version=MAX "
|
||||||
|
" --tls-cert-verify-depth=9",
|
||||||
|
test_->maxscales->access_homedir[0],
|
||||||
|
test_->maxscales->access_homedir[0],
|
||||||
|
test_->maxscales->access_homedir[0]);
|
||||||
|
}
|
||||||
test_->maxscales->ssh_node_f(0,
|
test_->maxscales->ssh_node_f(0,
|
||||||
true,
|
true,
|
||||||
"maxadmin create server server%d %s %d",
|
"maxctrl create server server%d %s %d %s",
|
||||||
num,
|
num,
|
||||||
test_->repl->IP[num],
|
test_->repl->IP[num],
|
||||||
test_->repl->port[num]);
|
test_->repl->port[num],
|
||||||
|
ssl_line);
|
||||||
created_servers_.insert(num);
|
created_servers_.insert(num);
|
||||||
test_->stop_timeout();
|
test_->stop_timeout();
|
||||||
}
|
}
|
||||||
@ -176,12 +190,15 @@ void Config::create_ssl_listener(Config::Service service)
|
|||||||
test_->maxscales->ssh_node_f(0,
|
test_->maxscales->ssh_node_f(0,
|
||||||
true,
|
true,
|
||||||
"maxadmin create listener %s %s default %d default default default "
|
"maxadmin create listener %s %s default %d default default default "
|
||||||
"/home/vagrant/certs/server-key.pem "
|
"/%s/certs/server-key.pem "
|
||||||
"/home/vagrant/certs/server-cert.pem "
|
"/%s/certs/server-cert.pem "
|
||||||
"/home/vagrant/certs/ca.pem ",
|
"/%s/certs/ca.pem ",
|
||||||
services[i].service,
|
services[i].service,
|
||||||
services[i].listener,
|
services[i].listener,
|
||||||
services[i].port);
|
services[i].port,
|
||||||
|
test_->maxscales->access_homedir[0],
|
||||||
|
test_->maxscales->access_homedir[0],
|
||||||
|
test_->maxscales->access_homedir[0]);
|
||||||
test_->stop_timeout();
|
test_->stop_timeout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,3 +22,10 @@ std::string get_mdbci_lables(const char *labels_string)
|
|||||||
}
|
}
|
||||||
return mdbci_labels;
|
return mdbci_labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool check_label(std::string labels, std::string label)
|
||||||
|
{
|
||||||
|
std::string labels_ext = std::string(";") + labels + std::string(";");
|
||||||
|
std::string label_ext = std::string(";") + label + std::string(";");
|
||||||
|
return (labels_ext.find(label_ext, 0) != std::string::npos);
|
||||||
|
}
|
||||||
|
|||||||
@ -29,3 +29,11 @@ const labels_table_t labels_table [] __attribute__((unused)) =
|
|||||||
* @return Labels string in the 'mdbci up' --labels parameter format
|
* @return Labels string in the 'mdbci up' --labels parameter format
|
||||||
*/
|
*/
|
||||||
std::string get_mdbci_lables(const char * labels_string);
|
std::string get_mdbci_lables(const char * labels_string);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief check_label Checks if givel lable belogs to current test labels
|
||||||
|
* @param labels String with all labels of the test
|
||||||
|
* @param label Labels to find
|
||||||
|
* @return true if label present
|
||||||
|
*/
|
||||||
|
bool check_label(std::string labels, std::string label);
|
||||||
|
|||||||
@ -299,6 +299,12 @@ TestConnections::TestConnections(int argc, char* argv[])
|
|||||||
|
|
||||||
mdbci_labels = get_mdbci_lables(labels);
|
mdbci_labels = get_mdbci_lables(labels);
|
||||||
|
|
||||||
|
if (check_label(std::string(labels), "BACKEND_SSL"))
|
||||||
|
{
|
||||||
|
backend_ssl = true;
|
||||||
|
tprintf("Test has BACKEND_SSL label");
|
||||||
|
}
|
||||||
|
|
||||||
std::string delimiter = std::string (",");
|
std::string delimiter = std::string (",");
|
||||||
size_t pos_start = 0, pos_end, delim_len = delimiter.length();
|
size_t pos_start = 0, pos_end, delim_len = delimiter.length();
|
||||||
std::string label;
|
std::string label;
|
||||||
|
|||||||
Reference in New Issue
Block a user