MXS-2220 Read server version using public methods
Version related fields have been removed from the public class.
This commit is contained in:
		| @ -127,11 +127,10 @@ void GaleraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
| { | ||||
|     MYSQL_ROW row; | ||||
|     MYSQL_RES* result; | ||||
|     char* server_string; | ||||
|  | ||||
|     /* get server version string */ | ||||
|     mxs_mysql_update_server_version(monitored_server->con, monitored_server->server); | ||||
|     server_string = monitored_server->server->version_string; | ||||
|     mxs_mysql_update_server_version(monitored_server->server, monitored_server->con); | ||||
|     auto server_string = monitored_server->server->version_string(); | ||||
|  | ||||
|     /* Check if the the Galera FSM shows this node is joined to the cluster */ | ||||
|     const char* cluster_member = | ||||
| @ -150,7 +149,7 @@ void GaleraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|             MXS_ERROR("Unexpected result for \"%s\". " | ||||
|                       "Expected 2 columns. MySQL Version: %s", | ||||
|                       cluster_member, | ||||
|                       server_string); | ||||
|                       server_string.c_str()); | ||||
|             return; | ||||
|         } | ||||
|         GaleraNode info = {}; | ||||
| @ -193,7 +192,7 @@ void GaleraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|                 } | ||||
|                 /* Check if the node is a donor and is using xtrabackup, in this case it can stay alive */ | ||||
|                 else if (strcmp(row[1], "2") == 0 && m_availableWhenDonor == 1 | ||||
|                          && using_xtrabackup(monitored_server, server_string)) | ||||
|                          && using_xtrabackup(monitored_server, server_string.c_str())) | ||||
|                 { | ||||
|                     info.joined = 1; | ||||
|                 } | ||||
|  | ||||
| @ -1494,7 +1494,8 @@ void MariaDBMonitor::check_cluster_operations_support() | ||||
|             supported = false; | ||||
|             auto reason = string_printf("The version of '%s' (%s) is not supported. Failover/switchover " | ||||
|                                         "requires MariaDB 10.0.2 or later.", | ||||
|                                         server->name(), server->m_server_base->server->version_string); | ||||
|                                         server->name(), | ||||
|                                         server->m_server_base->server->version_string().c_str()); | ||||
|             printer.cat(all_reasons, reason); | ||||
|         } | ||||
|  | ||||
|  | ||||
| @ -887,20 +887,18 @@ bool MariaDBServer::update_slave_status(string* errmsg_out) | ||||
|  | ||||
| void MariaDBServer::update_server_version() | ||||
| { | ||||
|     m_srv_type = server_type::UNKNOWN; | ||||
|     auto conn = m_server_base->con; | ||||
|     auto srv = m_server_base->server; | ||||
|     mxs_mysql_update_server_version(srv, conn); | ||||
|  | ||||
|     /* Get server version string, also get/set numeric representation. This function does not query the | ||||
|      * server, since the data was obtained when connecting. */ | ||||
|     mxs_mysql_update_server_version(conn, srv); | ||||
|  | ||||
|     // Check whether this server is a MaxScale Binlog Server. | ||||
|     m_srv_type = server_type::UNKNOWN; // TODO: Use type information in SERVER directly | ||||
|     auto server_type = srv->type(); | ||||
|     MYSQL_RES* result; | ||||
|     if (strcasestr(srv->version_string, "clustrix") != nullptr) | ||||
|     if (server_type == SERVER::Type::CLUSTRIX) | ||||
|     { | ||||
|         m_srv_type = server_type::CLUSTRIX; | ||||
|     } | ||||
|     // Check whether this server is a MaxScale Binlog Server. | ||||
|     else if (mxs_mysql_query(conn, "SELECT @@maxscale_version") == 0 | ||||
|              && (result = mysql_store_result(conn)) != NULL) | ||||
|     { | ||||
| @ -912,7 +910,7 @@ void MariaDBServer::update_server_version() | ||||
|         /* Not a binlog server, check version number and supported features. */ | ||||
|         m_srv_type = server_type::NORMAL; | ||||
|         m_capabilities = Capabilities(); | ||||
|         SERVER::Version info = srv->get_version(); | ||||
|         SERVER::Version info = srv->version(); | ||||
|         auto major = info.major; | ||||
|         auto minor = info.minor; | ||||
|         auto patch = info.patch; | ||||
| @ -921,7 +919,7 @@ void MariaDBServer::update_server_version() | ||||
|         { | ||||
|             m_capabilities.basic_support = true; | ||||
|             // For more specific features, at least MariaDB 10.X is needed. | ||||
|             if (srv->server_type == SERVER_TYPE_MARIADB && major >= 10) | ||||
|             if (server_type == SERVER::Type::MARIADB && major >= 10) | ||||
|             { | ||||
|                 // 10.0.2 or 10.1.X or greater than 10 | ||||
|                 if (((minor == 0 && patch >= 2)  || minor >= 1) || major > 10) | ||||
| @ -938,7 +936,7 @@ void MariaDBServer::update_server_version() | ||||
|         else | ||||
|         { | ||||
|             MXS_ERROR("MariaDB/MySQL version of '%s' (%s) is less than 5.5, which is not supported. " | ||||
|                       "The server is ignored by the monitor.", name(), srv->version_string); | ||||
|                       "The server is ignored by the monitor.", name(), srv->version_string().c_str()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -81,15 +81,13 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|     int isslave = 0; | ||||
|     int ismaster = 0; | ||||
|     unsigned long int server_version = 0; | ||||
|     char* server_string; | ||||
|  | ||||
|  | ||||
|     /* get server version from current server */ | ||||
|     server_version = mysql_get_server_version(monitored_server->con); | ||||
|  | ||||
|     /* get server version string */ | ||||
|     mxs_mysql_update_server_version(monitored_server->con, monitored_server->server); | ||||
|     server_string = monitored_server->server->version_string; | ||||
|     mxs_mysql_update_server_version(monitored_server->server, monitored_server->con); | ||||
|     auto server_string = monitored_server->server->version_string(); | ||||
|  | ||||
|     /* get server_id form current node */ | ||||
|     if (mxs_mysql_query(monitored_server->con, "SELECT @@server_id") == 0 | ||||
| @ -102,7 +100,7 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|             mysql_free_result(result); | ||||
|             MXS_ERROR("Unexpected result for 'SELECT @@server_id'. Expected 1 column." | ||||
|                       " MySQL Version: %s", | ||||
|                       server_string); | ||||
|                       server_string.c_str()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
| @ -141,7 +139,7 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|                 mysql_free_result(result); | ||||
|                 MXS_ERROR("\"SHOW ALL SLAVES STATUS\" returned less than the expected" | ||||
|                           " amount of columns. Expected 42 columns MySQL Version: %s", | ||||
|                           server_string); | ||||
|                           server_string.c_str()); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
| @ -211,7 +209,7 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|                                   "replication tree cannot be resolved for server %s." | ||||
|                                   " MySQL Version: %s", | ||||
|                                   monitored_server->server->name, | ||||
|                                   server_string); | ||||
|                                   server_string.c_str()); | ||||
|                         monitored_server->log_version_err = false; | ||||
|                     } | ||||
|                 } | ||||
| @ -220,7 +218,7 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|                     MXS_ERROR("\"SHOW SLAVE STATUS\" " | ||||
|                               "returned less than the expected amount of columns. " | ||||
|                               "Expected 40 columns. MySQL Version: %s", | ||||
|                               server_string); | ||||
|                               server_string.c_str()); | ||||
|                 } | ||||
|                 return; | ||||
|             } | ||||
| @ -269,7 +267,7 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|             mysql_free_result(result); | ||||
|             MXS_ERROR("Unexpected result for \"SHOW GLOBAL VARIABLES LIKE 'read_only'\". " | ||||
|                       "Expected 2 columns. MySQL Version: %s", | ||||
|                       server_string); | ||||
|                       server_string.c_str()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|  | ||||
| @ -47,11 +47,9 @@ void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|     MYSQL_ROW row; | ||||
|     MYSQL_RES* result; | ||||
|     int isjoined = 0; | ||||
|     char* server_string; | ||||
|  | ||||
|     /* get server version string */ | ||||
|     mxs_mysql_update_server_version(monitored_server->con, monitored_server->server); | ||||
|     server_string = monitored_server->server->version_string; | ||||
|     mxs_mysql_update_server_version(monitored_server->server, monitored_server->con); | ||||
|  | ||||
|     /* Check if the the SQL node is able to contact one or more data nodes */ | ||||
|     if (mxs_mysql_query(monitored_server->con, "SHOW STATUS LIKE 'Ndb_number_of_ready_data_nodes'") == 0 | ||||
| @ -63,7 +61,7 @@ void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|             MXS_ERROR("Unexpected result for \"SHOW STATUS LIKE " | ||||
|                       "'Ndb_number_of_ready_data_nodes'\". Expected 2 columns." | ||||
|                       " MySQL Version: %s", | ||||
|                       server_string); | ||||
|                       monitored_server->server->version_string().c_str()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
| @ -91,7 +89,7 @@ void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server) | ||||
|             MXS_ERROR("Unexpected result for \"SHOW STATUS LIKE 'Ndb_cluster_node_id'\". " | ||||
|                       "Expected 2 columns." | ||||
|                       " MySQL Version: %s", | ||||
|                       server_string); | ||||
|                       monitored_server->server->version_string().c_str()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Esa Korhonen
					Esa Korhonen