Merge branch '2.3' into 2.4
This commit is contained in:
121
system-test/mxs922_bad_server.cpp
Normal file
121
system-test/mxs922_bad_server.cpp
Normal file
@ -0,0 +1,121 @@
|
||||
/**
|
||||
* @file mxs922_bad_server.cpp MXS-922: Server removal test
|
||||
*
|
||||
*/
|
||||
|
||||
#include <maxtest/testconnections.hh>
|
||||
|
||||
#define MONITOR_NAME "mysql-monitor"
|
||||
#define SERVICE_NAME "rwsplit-service"
|
||||
|
||||
void add_servers(TestConnections* test)
|
||||
{
|
||||
test->tprintf("Adding the servers");
|
||||
test->set_timeout(120);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " MONITOR_NAME, i + 1);
|
||||
test->maxscales->ssh_node_f(0, true, "maxadmin add server server%d " SERVICE_NAME, i + 1);
|
||||
}
|
||||
test->stop_timeout();
|
||||
}
|
||||
|
||||
void remove_servers(TestConnections* test)
|
||||
{
|
||||
test->tprintf("Remove the servers");
|
||||
test->set_timeout(120);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
test->maxscales->ssh_node_f(0, true, "maxadmin remove server server%d " MONITOR_NAME, i + 1);
|
||||
test->maxscales->ssh_node_f(0, true, "maxadmin remove server server%d " SERVICE_NAME, i + 1);
|
||||
}
|
||||
test->stop_timeout();
|
||||
}
|
||||
|
||||
void destroy_servers(TestConnections* test)
|
||||
{
|
||||
test->tprintf("Destroy the servers");
|
||||
test->set_timeout(120);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
test->maxscales->ssh_node_f(0, true, "maxadmin destroy server server%d", i + 1);
|
||||
}
|
||||
test->stop_timeout();
|
||||
}
|
||||
|
||||
void do_query(TestConnections* test, bool should_fail)
|
||||
{
|
||||
test->tprintf("Trying to query, expecting %s", should_fail ? "failure" : "success");
|
||||
test->set_timeout(120);
|
||||
|
||||
test->maxscales->connect_maxscale(0);
|
||||
|
||||
bool failed = execute_query(test->maxscales->conn_rwsplit[0], "select @@server_id") == 0;
|
||||
|
||||
const char* msg = should_fail ?
|
||||
"Query was successful when failure was expected." :
|
||||
"Query failed when success was expected.";
|
||||
|
||||
test->add_result(failed == should_fail, "%s", msg);
|
||||
test->maxscales->close_maxscale_connections(0);
|
||||
|
||||
test->stop_timeout();
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
TestConnections* test = new TestConnections(argc, argv);
|
||||
|
||||
test->tprintf("Creating servers with bad addresses");
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
test->maxscales->ssh_node_f(0,
|
||||
true,
|
||||
"maxadmin create server server%d 3306 %s",
|
||||
i + 1,
|
||||
test->repl->IP_private[i]);
|
||||
}
|
||||
|
||||
/** Add the servers to the monitor and service */
|
||||
add_servers(test);
|
||||
|
||||
do_query(test, true);
|
||||
|
||||
/** Remove and destroy servers from monitor and service */
|
||||
remove_servers(test);
|
||||
destroy_servers(test);
|
||||
|
||||
test->tprintf("Create the servers with correct parameters");
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
test->maxscales->ssh_node_f(0,
|
||||
true,
|
||||
"maxadmin create server server%d %s %d",
|
||||
i + 1,
|
||||
test->repl->IP_private[i],
|
||||
test->repl->port[i]);
|
||||
}
|
||||
|
||||
/** Add the servers again */
|
||||
add_servers(test);
|
||||
|
||||
test->tprintf("Wait for the monitor to see the new servers");
|
||||
sleep(2);
|
||||
|
||||
do_query(test, false);
|
||||
|
||||
/** Remove everything */
|
||||
remove_servers(test);
|
||||
destroy_servers(test);
|
||||
|
||||
do_query(test, true);
|
||||
|
||||
test->check_maxscale_processes(0, 1);
|
||||
int rval = test->global_result;
|
||||
delete test;
|
||||
return rval;
|
||||
}
|
||||
Reference in New Issue
Block a user