MXS-1845 Relax cluster operation support requirements

Support for more complicated topologies is quite close to completion and
in any case the function was too aggressive.
This commit is contained in:
Esa Korhonen
2018-10-03 13:59:41 +03:00
parent 4a01410742
commit a1b3a005dd

View File

@ -1700,7 +1700,7 @@ void MariaDBMonitor::check_cluster_operations_support()
&& server->m_version != MariaDBServer::version::MARIADB_100) && server->m_version != MariaDBServer::version::MARIADB_100)
{ {
supported = false; supported = false;
auto reason = string_printf("The version of server '%s' is not supported. Failover/switchover " auto reason = string_printf("The version of server %s is not supported. Failover/switchover "
"requires MariaDB 10.X.", "requires MariaDB 10.X.",
server->name()); server->name());
printer.cat(all_reasons, reason); printer.cat(all_reasons, reason);
@ -1708,29 +1708,16 @@ void MariaDBMonitor::check_cluster_operations_support()
if (server->is_slave() && !server->m_slave_status.empty()) if (server->is_slave() && !server->m_slave_status.empty())
{ {
if (server->m_node.parents.size() > 1) for (const auto& slave_conn : server->m_slave_status)
{ {
supported = false; if (slave_conn.gtid_io_pos.empty())
auto reason = string_printf("Server '%s' is replicating or attempting to replicate from " {
"multiple masters.", supported = false;
server->name()); auto reason = string_printf("%s is not using gtid-replication.",
printer.cat(all_reasons, reason); slave_conn.to_short_string(server->name()).c_str());
printer.cat(all_reasons, reason);
}
} }
else if (server->m_slave_status[0].gtid_io_pos.empty())
{
supported = false;
auto reason = string_printf("Server '%s' is not using gtid-replication.", server->name());
printer.cat(all_reasons, reason);
}
}
if (server->is_relay_master())
{
supported = false;
auto reason = string_printf("Server '%s' is a relay. Only topologies with one replication "
"layer are supported.",
server->name());
printer.cat(all_reasons, reason);
} }
} }
@ -1743,9 +1730,7 @@ void MariaDBMonitor::check_cluster_operations_support()
"after the above issues have been resolved."; "after the above issues have been resolved.";
string p1 = string_printf(PROBLEMS, all_reasons.c_str()); string p1 = string_printf(PROBLEMS, all_reasons.c_str());
string p2 = string_printf(RE_ENABLE_FMT, "failover", CN_AUTO_FAILOVER, m_monitor->name); string p2 = string_printf(RE_ENABLE_FMT, "failover", CN_AUTO_FAILOVER, m_monitor->name);
string p3 = string_printf(RE_ENABLE_FMT, string p3 = string_printf(RE_ENABLE_FMT, "switchover", CN_SWITCHOVER_ON_LOW_DISK_SPACE,
"switchover",
CN_SWITCHOVER_ON_LOW_DISK_SPACE,
m_monitor->name); m_monitor->name);
string total_msg = p1 + " " + p2 + " " + p3; string total_msg = p1 + " " + p2 + " " + p3;
MXS_ERROR("%s", total_msg.c_str()); MXS_ERROR("%s", total_msg.c_str());