Merge branch 'v3.0_qp_mem_leak_fix' into v3.0_extended_query_protocol

pull/5044/head
Rahim Kanji 10 months ago
commit 1135a34d38

@ -737,9 +737,7 @@ void ProxySQL_Admin::flush_pgsql_variables___database_to_runtime(SQLite3DB* db,
return;
}
else {
GloPTH->wrlock();
const char* previous_default_client_encoding = GloPTH->get_variable_string((char*)"default_client_encoding");
assert(previous_default_client_encoding);
GloPTH->wrlock();
for (std::vector<SQLite3_row*>::iterator it = resultset->rows.begin(); it != resultset->rows.end(); ++it) {
SQLite3_row* r = *it;
const char* value = r->fields[1];

@ -693,9 +693,9 @@ void MySQL_Monitor_State_Data::init_async() {
query_ += std::string(hostname) + ":" + std::to_string(port);
}
#else
// MySQL-8: Query dependent on 'COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE'; deprecating the previously
// From MySQL-8: Query dependent on 'COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE'; deprecating the previously
// used `sys.gr_member_routing_candidate_status` view.
if (strncasecmp(this->mysql->server_version, "8", 1) == 0) {
if (mysql_get_server_version(mysql) >= 80000) {
query_ = MYSQL_8_GR_QUERY;
} else {
// If not MySQL 8 we default back to the old check

@ -129,6 +129,10 @@ static void __delete_query_rule(QP_rule_t *qr) {
free(qr->username);
if (qr->schemaname)
free(qr->schemaname);
if (qr->client_addr)
free(qr->client_addr);
if (qr->proxy_addr)
free(qr->proxy_addr);
if (qr->match_digest)
free(qr->match_digest);
if (qr->match_pattern)

@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
# Start ProxySQL Cluster if available
$JENKINS_SCRIPTS_PATH/cluster_start.bash
$JENKINS_SCRIPTS_PATH/cluster_init.bash
# wait for cluster to stabilize
sleep 10

@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
# Start ProxySQL Cluster if available
$JENKINS_SCRIPTS_PATH/cluster_start.bash
$JENKINS_SCRIPTS_PATH/cluster_init.bash
# wait for cluster to stabilize
sleep 10

@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
# Start ProxySQL Cluster if available
$JENKINS_SCRIPTS_PATH/cluster_start.bash
$JENKINS_SCRIPTS_PATH/cluster_init.bash
# wait for cluster to stabilize
sleep 10

@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
# Start ProxySQL Cluster if available
$JENKINS_SCRIPTS_PATH/cluster_start.bash
$JENKINS_SCRIPTS_PATH/cluster_init.bash
# wait for cluster to stabilize
sleep 10

@ -1,27 +1,27 @@
{
"admin-listen_on_unix-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_show_create_table-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_show_fields_from-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_show_table_status-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_various_commands2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_various_commands3-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin_various_commands-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"basic-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"admin-listen_on_unix-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_show_create_table-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_show_fields_from-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_show_table_status-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_various_commands2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_various_commands3-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"admin_various_commands-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"basic-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"charset_unsigned_int-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"clickhouse_php_conn-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"envvars-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"firewall_commands1-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"kill_connection2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"kill_connection3-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"kill_connection-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"envvars-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"firewall_commands1-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"kill_connection2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"kill_connection3-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"kill_connection-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"max_connections_ff-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"multiple_prepared_statements-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-fast_forward-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql_hostgroup_attributes_config_file-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql_hostgroup_attributes-servers_defaults-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-init_connect-1-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-init_connect-2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-last_insert_id-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-init_connect-1-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"mysql-init_connect-2-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"mysql-last_insert_id-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1","mysql84-g1","mysql84-gr-g1","mysql90-g1","mysql90-gr-g1","mysql91-g1","mysql91-gr-g1","mysql92-g1","mysql92-gr-g1","mysql93-g1","mysql93-gr-g1" ],
"mysql-mirror1-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql-protocol_compression_level-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],
"mysql_query_logging_memory-t" : [ "default-g1","mysql-auto_increment_delay_multiplex=0-g1","mysql-multiplexing=false-g1","mysql-query_digests=0-g1","mysql-query_digests_keep_comment=1-g1" ],

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10

@ -0,0 +1,81 @@
#!/usr/bin/env bash
#
# change infra config
# inherits env from tester script
#
[[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert
INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//')
# destroy running infras
$JENKINS_SCRIPTS_PATH/infra-default/docker-compose-destroy.bash
# cleanup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_users; \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
DELETE FROM mysql_servers; \
DELETE FROM mysql_replication_hostgroups; \
DELETE FROM mysql_group_replication_hostgroups; \
DELETE FROM mysql_galera_hostgroups; \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
DELETE FROM mysql_query_rules; \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
DELETE FROM pgsql_users; \
LOAD PGSQL USERS TO RUNTIME; \
SAVE PGSQL USERS TO DISK; \
DELETE FROM pgsql_servers; \
LOAD PGSQL SERVERS TO RUNTIME; \
SAVE PGSQL SERVERS TO DISK; \
#DELETE FROM pgsql_query_rules; \
#LOAD PGSQL QUERY RULES TO RUNTIME; \
#SAVE PGSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# load environment for infra
source $JENKINS_SCRIPTS_PATH/${INFRA}/.env
# Start infra
$JENKINS_SCRIPTS_PATH/infra-docker-hoster/docker-compose-init.bash
$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash
# create default users
for MYUSER in root user testuser sbtest1 sbtest2 sbtest3 sbtest4 ssluser ; do
# FIXME: using 0 as default hostgroup
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
INSERT OR IGNORE INTO mysql_users (username,password,active,default_hostgroup,comment) values ('${MYUSER}','${MYUSER}',1,${WHG},'${INFRA}'); \
UPDATE mysql_users SET default_hostgroup=0,comment='${INFRA}' WHERE username='${MYUSER}'; \
" 2>&1 | grep -vP 'mysql: .?Warning'
done
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
LOAD MYSQL USERS TO RUNTIME; \
SAVE MYSQL USERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default hostgroups
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_servers WHERE hostgroup_id IN (0,1,2,3); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (0,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql1.${INFRA}',3306,1,'mysql1.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql2.${INFRA}',3306,1,'mysql2.${INFRA}'); \
INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (1,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \
LOAD MYSQL SERVERS TO RUNTIME; \
SAVE MYSQL SERVERS TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# create default routing
mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " \
DELETE FROM mysql_query_rules WHERE destination_hostgroup IN (0,1,2,3,4); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (1,1,'root','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (2,1,'root','^SELECT',1,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (4,1,'testuser','^SELECT.*FOR UPDATE',0,1); \
INSERT INTO mysql_query_rules (rule_id,active,username,match_digest,destination_hostgroup,apply) VALUES (5,1,'testuser','^SELECT',1,1); \
LOAD MYSQL QUERY RULES TO RUNTIME; \
SAVE MYSQL QUERY RULES TO DISK; \
" 2>&1 | grep -vP 'mysql: .?Warning'
# wait for infra to stabilize
sleep 10
Loading…
Cancel
Save