MXS-2243_labels Maxscale system tests prepare environment by themselves

maxscale-system-test changed in order to control test environment by itself.
Every test checks which machines are running, compare with list of needed machines
and start new VMs is they are missing in the running machines list.
Tests are executiong MDBCI commands, MDBCI executable should be in the PATH
This commit is contained in:
Timofey Turenko
2019-03-28 22:37:24 +02:00
parent 04f70879d2
commit fb96141dda
98 changed files with 1394 additions and 1660 deletions

View File

@ -17,6 +17,7 @@
#include <sstream>
#include <iostream>
#include <vector>
#include "envv.h"
namespace
{
@ -28,7 +29,8 @@ void Mariadb_nodes::require_gtid(bool value)
g_require_gtid = value;
}
Mariadb_nodes::Mariadb_nodes(const char *pref, const char *test_cwd, bool verbose):
Mariadb_nodes::Mariadb_nodes(const char *pref, const char *test_cwd, bool verbose,
std::string network_config):
v51(false)
{
use_ipv6 = false;
@ -37,6 +39,7 @@ Mariadb_nodes::Mariadb_nodes(const char *pref, const char *test_cwd, bool verbos
memset(blocked, 0, sizeof(blocked));
no_set_pos = false;
this->verbose = verbose;
this->network_config = network_config;
strcpy(test_dir, test_cwd);
read_env();
truncate_mariadb_logs();
@ -100,43 +103,21 @@ void Mariadb_nodes::close_connections()
}
}
void Mariadb_nodes::read_env()
{
char * env;
char env_name[64];
read_basic_env();
sprintf(env_name, "%s_user", prefix);
env = getenv(env_name);
if (env != NULL)
{
sscanf(env, "%s", user_name);
}
else
{
sprintf(user_name, "skysql");
}
user_name = readenv(env_name, "skysql");
sprintf(env_name, "%s_password", prefix);
env = getenv(env_name);
if (env != NULL)
{
sscanf(env, "%s", password);
}
else
{
sprintf(password, "skysql");
}
password = readenv(env_name, "skysql");
ssl = false;
sprintf(env_name, "%s_ssl", prefix);
env = getenv(env_name);
if ((env != NULL) && ((strcasecmp(env, "yes") == 0) || (strcasecmp(env, "true") == 0) ))
{
ssl = true;
}
ssl = readenv_bool(env_name, false);
if ((N > 0) && (N < 255))
{
@ -144,65 +125,34 @@ void Mariadb_nodes::read_env()
{
//reading ports
sprintf(env_name, "%s_%03d_port", prefix, i);
env = getenv(env_name);
if (env != NULL)
{
sscanf(env, "%d", &port[i]);
}
else
{
port[i] = 3306;
}
port[i] = readenv_int(env_name, 3306);
//reading sockets
sprintf(env_name, "%s_%03d_socket", prefix, i);
env = getenv(env_name);
if (env != NULL)
socket[i] = readenv(env_name, " ");
if (strcmp(socket[i], " "))
{
sprintf(socket[i], "%s", env);
sprintf(socket_cmd[i], "--socket=%s", env);
socket_cmd[i] = (char *) malloc(strlen(socket[i]) + 10);
sprintf(socket_cmd[i], "--socket=%s", socket[i]);
}
else
{
sprintf(socket[i], " ");
sprintf(socket_cmd[i], " ");
socket_cmd[i] = (char *) " ";
}
sprintf(env_name, "%s_%03d_socket_cmd", prefix, i);
setenv(env_name, socket_cmd[i], 1);
//reading start_db_command
sprintf(env_name, "%s_%03d_start_db_command", prefix, i);
env = getenv(env_name);
if (env != NULL)
{
sprintf(start_db_command[i], "%s", env);
}
else
{
sprintf(start_db_command[i], "%s", "service mysql start");
}
start_db_command[i] = readenv(env_name, (char *) "service mysql start");
//reading stop_db_command
sprintf(env_name, "%s_%03d_stop_db_command", prefix, i);
env = getenv(env_name);
if (env != NULL)
{
sprintf(stop_db_command[i], "%s", env);
}
else
{
sprintf(stop_db_command[i], "%s", "service mysql stop");
}
stop_db_command[i] = readenv(env_name, (char *) "service mysql stop");
//reading cleanup_db_command
sprintf(env_name, "%s_%03d_cleanup_db_command", prefix, i);
env = getenv(env_name);
if (env != NULL)
{
sprintf(cleanup_db_command[i], "%s", env);
}
else
{
sprintf(cleanup_db_command[i], "rm -rf /var/lib/mysql/*; killall -9 mysqld");
}
cleanup_db_command[i] = readenv(env_name, (char *) "rm -rf /var/lib/mysql/*; killall -9 mysqld");
}
}
}