Use common functions in mxs1678_relay_master
The code had a note in that states that the test uses custom code backported from 2.2 and that it should be updated to use common code once merged into 2.2. Added a small sleep to make sure the monitor picks up the changes in the topology.
This commit is contained in:
@ -7,54 +7,6 @@
|
|||||||
#include <set>
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
typedef std::set<std::string> StringSet;
|
|
||||||
|
|
||||||
// Note: This is backported from 2.2 and can be replaced with MaxScales::get_server_status once merged
|
|
||||||
StringSet state(TestConnections& test, const char* name)
|
|
||||||
{
|
|
||||||
StringSet rval;
|
|
||||||
int exit_code;
|
|
||||||
char* res = test.maxscales->ssh_node_output_f(0, true, &exit_code,
|
|
||||||
"maxadmin list servers|grep \'%s\'", name);
|
|
||||||
char* pipe = strrchr(res, '|');
|
|
||||||
|
|
||||||
if (res && pipe)
|
|
||||||
{
|
|
||||||
pipe++;
|
|
||||||
char* tok = strtok(pipe, ",");
|
|
||||||
|
|
||||||
while (tok)
|
|
||||||
{
|
|
||||||
char* p = tok;
|
|
||||||
char *end = strchr(tok, '\n');
|
|
||||||
if (!end)
|
|
||||||
{
|
|
||||||
end = strchr(tok, '\0');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trim leading whitespace
|
|
||||||
while (p < end && isspace(*p))
|
|
||||||
{
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trim trailing whitespace
|
|
||||||
while (end > tok && isspace(*end))
|
|
||||||
{
|
|
||||||
*end-- = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
rval.insert(p);
|
|
||||||
tok = strtok(NULL, ",\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
free(res);
|
|
||||||
|
|
||||||
return rval;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TestConnections test(argc, argv);
|
TestConnections test(argc, argv);
|
||||||
@ -63,6 +15,7 @@ int main(int argc, char** argv)
|
|||||||
execute_query(test.repl->nodes[3], "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d",
|
execute_query(test.repl->nodes[3], "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d",
|
||||||
test.repl->IP_private[2], test.repl->port[2]);
|
test.repl->IP_private[2], test.repl->port[2]);
|
||||||
execute_query(test.repl->nodes[3], "START SLAVE");
|
execute_query(test.repl->nodes[3], "START SLAVE");
|
||||||
|
sleep(5);
|
||||||
|
|
||||||
StringSet master = {"Master", "Running"};
|
StringSet master = {"Master", "Running"};
|
||||||
StringSet slave = {"Slave", "Running"};
|
StringSet slave = {"Slave", "Running"};
|
||||||
@ -74,10 +27,10 @@ int main(int argc, char** argv)
|
|||||||
test.tprintf("%s", output);
|
test.tprintf("%s", output);
|
||||||
free(output);
|
free(output);
|
||||||
|
|
||||||
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
test.add_result(test.maxscales->get_server_status("server1") != master, "server1 is not a master");
|
||||||
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
test.add_result(test.maxscales->get_server_status("server2") != slave, "server2 is not a slave");
|
||||||
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
test.add_result(test.maxscales->get_server_status("server3") != relay_master, "server3 is not a relay master");
|
||||||
test.add_result(state(test, "server4") != slave, "server4 is not a slave");
|
test.add_result(test.maxscales->get_server_status("server4") != slave, "server4 is not a slave");
|
||||||
|
|
||||||
execute_query(test.repl->nodes[2], "STOP SLAVE IO_THREAD");
|
execute_query(test.repl->nodes[2], "STOP SLAVE IO_THREAD");
|
||||||
sleep(10);
|
sleep(10);
|
||||||
@ -86,10 +39,10 @@ int main(int argc, char** argv)
|
|||||||
output = test.maxscales->ssh_node_output(0, "maxadmin list servers", true, &exit_code);
|
output = test.maxscales->ssh_node_output(0, "maxadmin list servers", true, &exit_code);
|
||||||
test.tprintf("%s", output);
|
test.tprintf("%s", output);
|
||||||
free(output);
|
free(output);
|
||||||
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
test.add_result(test.maxscales->get_server_status("server1") != master, "server1 is not a master");
|
||||||
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
test.add_result(test.maxscales->get_server_status( "server2") != slave, "server2 is not a slave");
|
||||||
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
test.add_result(test.maxscales->get_server_status("server3") != relay_master, "server3 is not a relay master");
|
||||||
test.add_result(state(test, "server4") != slave, "server4 is not a slave");
|
test.add_result(test.maxscales->get_server_status("server4") != slave, "server4 is not a slave");
|
||||||
|
|
||||||
test.repl->fix_replication();
|
test.repl->fix_replication();
|
||||||
return test.global_result;
|
return test.global_result;
|
||||||
|
|||||||
Reference in New Issue
Block a user