Drafting support for SSL connections in Monitor

connleak
René Cannaò 10 years ago
parent 884724c110
commit 414c5cf52a

@ -243,6 +243,7 @@ class MySQL_Monitor_State_Data {
int ST;
char *hostname;
int port;
bool use_ssl;
struct event *ev_mysql;
MYSQL *mysql;
struct event_base *base;
@ -253,7 +254,7 @@ class MySQL_Monitor_State_Data {
MYSQL_ROW *row;
unsigned int repl_lag;
unsigned int hostgroup_id;
MySQL_Monitor_State_Data(char *h, int p, struct event_base *b) {
MySQL_Monitor_State_Data(char *h, int p, struct event_base *b, bool _use_ssl=0) {
task_id=MON_CONNECT;
mysql=NULL;
result=NULL;
@ -263,6 +264,7 @@ class MySQL_Monitor_State_Data {
hostname=strdup(h);
port=p;
base=b;
use_ssl=_use_ssl;
ST=0;
ev_mysql=NULL;
}
@ -756,7 +758,9 @@ void * MySQL_Monitor::monitor_connect() {
SQLite3_result *resultset=NULL;
int i=0;
MySQL_Monitor_State_Data **sds=NULL;
char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers";
//char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers";
// add support for SSL
char *query=(char *)"SELECT hostname, port, MAX(use_ssl) use_ssl FROM mysql_servers GROUP BY hostname, port";
unsigned int glover;
t1=monotonic_time();
@ -793,7 +797,7 @@ void * MySQL_Monitor::monitor_connect() {
sds=(MySQL_Monitor_State_Data **)malloc(resultset->rows_count * sizeof(MySQL_Monitor_State_Data *));
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base);
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base, atoi(r->fields[2]));
sds[i]->task_id=MON_CONNECT;
connect__num_active_connections++;
total_connect__num_active_connections++;
@ -889,7 +893,9 @@ void * MySQL_Monitor::monitor_ping() {
SQLite3_result *resultset=NULL;
MySQL_Monitor_State_Data **sds=NULL;
int i=0;
char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers WHERE status!='OFFLINE_HARD'";
//char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers WHERE status!='OFFLINE_HARD'";
// add support for SSL
char *query=(char *)"SELECT hostname, port, MAX(use_ssl) use_ssl FROM mysql_servers WHERE status!='OFFLINE_HARD' GROUP BY hostname, port";
t1=monotonic_time();
glover=GloMTH->get_global_version();
@ -924,7 +930,7 @@ void * MySQL_Monitor::monitor_ping() {
sds=(MySQL_Monitor_State_Data **)malloc(resultset->rows_count * sizeof(MySQL_Monitor_State_Data *));
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base);
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base, atoi(r->fields[2]));
sds[i]->task_id=MON_PING;
ping__num_active_connections++;
total_ping__num_active_connections++;
@ -1130,7 +1136,9 @@ void * MySQL_Monitor::monitor_read_only() {
SQLite3_result *resultset=NULL;
MySQL_Monitor_State_Data **sds=NULL;
int i=0;
char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers JOIN mysql_replication_hostgroups ON hostgroup_id=writer_hostgroup OR hostgroup_id=reader_hostgroup WHERE status!='OFFLINE_HARD'";
//char *query=(char *)"SELECT DISTINCT hostname, port FROM mysql_servers JOIN mysql_replication_hostgroups ON hostgroup_id=writer_hostgroup OR hostgroup_id=reader_hostgroup WHERE status!='OFFLINE_HARD'";
// add support for SSL
char *query=(char *)"SELECT hostname, port, MAX(use_ssl) use_ssl FROM mysql_servers JOIN mysql_replication_hostgroups ON hostgroup_id=writer_hostgroup OR hostgroup_id=reader_hostgroup WHERE status!='OFFLINE_HARD' GROUP BY hostname, port";
t1=monotonic_time();
glover=GloMTH->get_global_version();
@ -1167,7 +1175,7 @@ void * MySQL_Monitor::monitor_read_only() {
sds=(MySQL_Monitor_State_Data **)malloc(resultset->rows_count * sizeof(MySQL_Monitor_State_Data *));
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base);
sds[i] = new MySQL_Monitor_State_Data(r->fields[0],atoi(r->fields[1]),libevent_base, atoi(r->fields[2]));
sds[i]->task_id=MON_READ_ONLY;
// sds[i]->hostgroup_id=atoi(r->fields[0]);
// sds[i]->repl_lag=atoi(r->fields[3]);
@ -1309,7 +1317,9 @@ void * MySQL_Monitor::monitor_replication_lag() {
SQLite3_result *resultset=NULL;
MySQL_Monitor_State_Data **sds=NULL;
int i=0;
char *query=(char *)"SELECT hostgroup_id, hostname, port, max_replication_lag FROM mysql_servers WHERE max_replication_lag > 0 AND status NOT LIKE 'OFFLINE%'";
//char *query=(char *)"SELECT hostgroup_id, hostname, port, max_replication_lag FROM mysql_servers WHERE max_replication_lag > 0 AND status NOT LIKE 'OFFLINE%'";
// add support for SSL
char *query=(char *)"SELECT hostgroup_id, hostname, port, max_replication_lag, use_ssl FROM mysql_servers WHERE max_replication_lag > 0 AND status NOT LIKE 'OFFLINE%'";
t1=monotonic_time();
glover=GloMTH->get_global_version();
@ -1346,7 +1356,7 @@ void * MySQL_Monitor::monitor_replication_lag() {
sds=(MySQL_Monitor_State_Data **)malloc(resultset->rows_count * sizeof(MySQL_Monitor_State_Data *));
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
sds[i] = new MySQL_Monitor_State_Data(r->fields[1],atoi(r->fields[2]),libevent_base);
sds[i] = new MySQL_Monitor_State_Data(r->fields[1],atoi(r->fields[2]),libevent_base, atoi(r->fields[4]));
sds[i]->task_id=MON_REPLICATION_LAG;
sds[i]->hostgroup_id=atoi(r->fields[0]);
sds[i]->repl_lag=atoi(r->fields[3]);

Loading…
Cancel
Save