diff --git a/lib/Admin_FlushVariables.cpp b/lib/Admin_FlushVariables.cpp index 4efefb9f2..97d44932a 100644 --- a/lib/Admin_FlushVariables.cpp +++ b/lib/Admin_FlushVariables.cpp @@ -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::iterator it = resultset->rows.begin(); it != resultset->rows.end(); ++it) { SQLite3_row* r = *it; const char* value = r->fields[1]; diff --git a/lib/MySQL_Monitor.cpp b/lib/MySQL_Monitor.cpp index d589ad89f..e324f4278 100644 --- a/lib/MySQL_Monitor.cpp +++ b/lib/MySQL_Monitor.cpp @@ -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 diff --git a/lib/Query_Processor.cpp b/lib/Query_Processor.cpp index eb01382e8..9d5bb2c6e 100644 --- a/lib/Query_Processor.cpp +++ b/lib/Query_Processor.cpp @@ -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) diff --git a/test/tap/groups/default-g1/.gitkeep b/test/tap/groups/default-g1/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/tap/groups/default-g1/pre-proxysql.bash b/test/tap/groups/default-g1/pre-proxysql.bash new file mode 100755 index 000000000..19233894b --- /dev/null +++ b/test/tap/groups/default-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/default-g2/.gitkeep b/test/tap/groups/default-g2/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/tap/groups/default-g2/pre-proxysql.bash b/test/tap/groups/default-g2/pre-proxysql.bash new file mode 100755 index 000000000..19233894b --- /dev/null +++ b/test/tap/groups/default-g2/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/default-g3/.gitkeep b/test/tap/groups/default-g3/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/tap/groups/default-g3/pre-proxysql.bash b/test/tap/groups/default-g3/pre-proxysql.bash new file mode 100755 index 000000000..19233894b --- /dev/null +++ b/test/tap/groups/default-g3/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/default-g4/.gitkeep b/test/tap/groups/default-g4/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/tap/groups/default-g4/pre-proxysql.bash b/test/tap/groups/default-g4/pre-proxysql.bash new file mode 100755 index 000000000..19233894b --- /dev/null +++ b/test/tap/groups/default-g4/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/groups.json b/test/tap/groups/groups.json index 09627cadb..5061fe30b 100644 --- a/test/tap/groups/groups.json +++ b/test/tap/groups/groups.json @@ -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" ], diff --git a/test/tap/groups/mysql84-g1/pre-proxysql.bash b/test/tap/groups/mysql84-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql84-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql90-g1/pre-proxysql.bash b/test/tap/groups/mysql90-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql90-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql91-g1/pre-proxysql.bash b/test/tap/groups/mysql91-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql91-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql92-g1/pre-proxysql.bash b/test/tap/groups/mysql92-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql92-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql93-g1/pre-proxysql.bash b/test/tap/groups/mysql93-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql93-g1/pre-proxysql.bash @@ -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 diff --git a/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash new file mode 100755 index 000000000..5c9ad9cd1 --- /dev/null +++ b/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash @@ -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