From 7490af1783cef631a91e75d147d46722a0764a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Mon, 9 Jun 2025 08:02:08 +0000 Subject: [PATCH 1/8] Group Replication support for MySQL 8.4 and 9.x Closes #4954 --- lib/MySQL_Monitor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 96dd2dbd75df4faf17122a8fa59f93a1310f5a82 Mon Sep 17 00:00:00 2001 From: Miro Stauder Date: Thu, 19 Jun 2025 08:10:09 +0000 Subject: [PATCH 2/8] start proxysql cluster for default groups --- test/tap/groups/default-g1/.gitkeep | 0 test/tap/groups/default-g1/pre-proxysql.bash | 13 +++++++++++++ test/tap/groups/default-g2/.gitkeep | 0 test/tap/groups/default-g2/pre-proxysql.bash | 13 +++++++++++++ test/tap/groups/default-g3/.gitkeep | 0 test/tap/groups/default-g3/pre-proxysql.bash | 13 +++++++++++++ test/tap/groups/default-g4/.gitkeep | 0 test/tap/groups/default-g4/pre-proxysql.bash | 13 +++++++++++++ 8 files changed, 52 insertions(+) delete mode 100644 test/tap/groups/default-g1/.gitkeep create mode 100644 test/tap/groups/default-g1/pre-proxysql.bash delete mode 100644 test/tap/groups/default-g2/.gitkeep create mode 100644 test/tap/groups/default-g2/pre-proxysql.bash delete mode 100644 test/tap/groups/default-g3/.gitkeep create mode 100644 test/tap/groups/default-g3/pre-proxysql.bash delete mode 100644 test/tap/groups/default-g4/.gitkeep create mode 100644 test/tap/groups/default-g4/pre-proxysql.bash 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 100644 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 100644 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 100644 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 100644 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 From 6379e6d8ab94a9db39fb521b57fb7e9e9d1c926b Mon Sep 17 00:00:00 2001 From: Miro Stauder Date: Thu, 19 Jun 2025 08:10:47 +0000 Subject: [PATCH 3/8] add initial groups for arbitrary infra as default --- test/tap/groups/groups.json | 34 +++++++-------- test/tap/groups/mysql84-g1/pre-proxysql.bash | 44 ++++++++++++++++++++ test/tap/groups/mysql90-g1/pre-proxysql.bash | 44 ++++++++++++++++++++ test/tap/groups/mysql91-g1/pre-proxysql.bash | 44 ++++++++++++++++++++ test/tap/groups/mysql92-g1/pre-proxysql.bash | 44 ++++++++++++++++++++ test/tap/groups/mysql93-g1/pre-proxysql.bash | 44 ++++++++++++++++++++ 6 files changed, 237 insertions(+), 17 deletions(-) create mode 100644 test/tap/groups/mysql84-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql90-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql91-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql92-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql93-g1/pre-proxysql.bash diff --git a/test/tap/groups/groups.json b/test/tap/groups/groups.json index 09627cadb..8e95df972 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" ], - "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" ], + "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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql84-g1","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql84-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql90-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql91-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql92-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql93-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +# wait for infra to stabilize +sleep 10 From 909dfd644e52f849a384168e97554983e58e265d Mon Sep 17 00:00:00 2001 From: Miro Stauder Date: Fri, 20 Jun 2025 07:48:55 +0000 Subject: [PATCH 4/8] add more groups for group-replication infras --- test/tap/groups/groups.json | 34 +++++++------- .../groups/mysql84-gr-g1/pre-proxysql.bash | 44 +++++++++++++++++++ .../groups/mysql90-gr-g1/pre-proxysql.bash | 44 +++++++++++++++++++ .../groups/mysql91-gr-g1/pre-proxysql.bash | 44 +++++++++++++++++++ .../groups/mysql92-gr-g1/pre-proxysql.bash | 44 +++++++++++++++++++ .../groups/mysql93-gr-g1/pre-proxysql.bash | 44 +++++++++++++++++++ 6 files changed, 237 insertions(+), 17 deletions(-) create mode 100644 test/tap/groups/mysql84-gr-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql90-gr-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql91-gr-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql92-gr-g1/pre-proxysql.bash create mode 100644 test/tap/groups/mysql93-gr-g1/pre-proxysql.bash diff --git a/test/tap/groups/groups.json b/test/tap/groups/groups.json index 8e95df972..de7fe6268 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","mysql84-g1","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql84-g1","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","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" ], "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","mysql84-g1","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql84-g1","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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","mysql90-g1","mysql91-g1","mysql92-g1","mysql93-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-gr-g1/pre-proxysql.bash b/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash new file mode 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS 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 100644 index 000000000..6be54bd06 --- /dev/null +++ b/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash @@ -0,0 +1,44 @@ +#!/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 "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') + +# load environment for infra +source $JENKINS_SCRIPTS_PATH/${INFRA}/.env + +# Start infra +$JENKINS_SCRIPTS_PATH/${INFRA}/docker-compose-init.bash + +# make infra default +mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ +UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +LOAD MYSQL USERS TO RUNTIME; \ +SAVE MYSQL USERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +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 (2,'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}'); \ +#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'mysql3.${INFRA}',3306,1,'mysql3.${INFRA}'); \ +LOAD MYSQL SERVERS TO RUNTIME; \ +SAVE MYSQL SERVERS TO DISK; \ +" 2>&1 | grep -vP 'mysql: .?Warning' + +# wait for infra to stabilize +sleep 10 From 565d9999feb6c4373cfcf9b74f12d67ead4bba0c Mon Sep 17 00:00:00 2001 From: Miro Stauder Date: Fri, 20 Jun 2025 10:41:47 +0000 Subject: [PATCH 5/8] make group infra the default one --- test/tap/groups/default-g1/pre-proxysql.bash | 0 test/tap/groups/default-g2/pre-proxysql.bash | 0 test/tap/groups/default-g3/pre-proxysql.bash | 0 test/tap/groups/default-g4/pre-proxysql.bash | 0 test/tap/groups/mysql84-g1/pre-proxysql.bash | 65 +++++++++++++++---- .../groups/mysql84-gr-g1/pre-proxysql.bash | 65 +++++++++++++++---- test/tap/groups/mysql90-g1/pre-proxysql.bash | 65 +++++++++++++++---- .../groups/mysql90-gr-g1/pre-proxysql.bash | 65 +++++++++++++++---- test/tap/groups/mysql91-g1/pre-proxysql.bash | 65 +++++++++++++++---- .../groups/mysql91-gr-g1/pre-proxysql.bash | 65 +++++++++++++++---- test/tap/groups/mysql92-g1/pre-proxysql.bash | 65 +++++++++++++++---- .../groups/mysql92-gr-g1/pre-proxysql.bash | 65 +++++++++++++++---- test/tap/groups/mysql93-g1/pre-proxysql.bash | 65 +++++++++++++++---- .../groups/mysql93-gr-g1/pre-proxysql.bash | 65 +++++++++++++++---- 14 files changed, 510 insertions(+), 140 deletions(-) mode change 100644 => 100755 test/tap/groups/default-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/default-g2/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/default-g3/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/default-g4/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql84-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql84-gr-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql90-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql90-gr-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql91-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql91-gr-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql92-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql92-gr-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql93-g1/pre-proxysql.bash mode change 100644 => 100755 test/tap/groups/mysql93-gr-g1/pre-proxysql.bash diff --git a/test/tap/groups/default-g1/pre-proxysql.bash b/test/tap/groups/default-g1/pre-proxysql.bash old mode 100644 new mode 100755 diff --git a/test/tap/groups/default-g2/pre-proxysql.bash b/test/tap/groups/default-g2/pre-proxysql.bash old mode 100644 new mode 100755 diff --git a/test/tap/groups/default-g3/pre-proxysql.bash b/test/tap/groups/default-g3/pre-proxysql.bash old mode 100644 new mode 100755 diff --git a/test/tap/groups/default-g4/pre-proxysql.bash b/test/tap/groups/default-g4/pre-proxysql.bash old mode 100644 new mode 100755 diff --git a/test/tap/groups/mysql84-g1/pre-proxysql.bash b/test/tap/groups/mysql84-g1/pre-proxysql.bash old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql84-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql84-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql84-gr-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql90-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql90-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql90-gr-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql91-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql91-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql91-gr-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql92-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql92-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql92-gr-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql93-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql93-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 old mode 100644 new mode 100755 index 6be54bd06..5c9ad9cd1 --- a/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash +++ b/test/tap/groups/mysql93-gr-g1/pre-proxysql.bash @@ -6,39 +6,76 @@ [[ $(mysql --skip-ssl-verify-server-cert -h 2>&1) =~ skip-ssl-verify-server-cert ]] || export SSLOPT=--skip-ssl-verify-server-cert -INFRA=infra-$(basename "$0" | sed 's/-g[0-9]//' | sed 's/_.*//') +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 -# make infra default -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='root'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='user'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='testuser'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest1'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest2'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest3'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='sbtest4'; \ -UPDATE mysql_users SET default_hostgroup=${WHG},comment='${INFRA}' WHERE username='ssluser'; \ +# 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' -mysql ${SSLOPT} -h127.0.0.1 -P6032 -uadmin -padmin -e " +# 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 (2,'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}'); \ -#INSERT INTO mysql_servers (hostgroup_id,hostname,port,max_replication_lag,comment) VALUES (2,'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 From ce2c943482695d52f8325ac3f86a84158b59e68b Mon Sep 17 00:00:00 2001 From: Miro Stauder Date: Mon, 23 Jun 2025 07:09:04 +0000 Subject: [PATCH 6/8] update groups.json --- test/tap/groups/groups.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tap/groups/groups.json b/test/tap/groups/groups.json index de7fe6268..5061fe30b 100644 --- a/test/tap/groups/groups.json +++ b/test/tap/groups/groups.json @@ -7,7 +7,7 @@ "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","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","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" ], From bc6f95a1fbd979f3af8f7e0c86600b9fefe6c301 Mon Sep 17 00:00:00 2001 From: Rahim Kanji Date: Wed, 9 Jul 2025 00:20:39 +0500 Subject: [PATCH 7/8] Removed previous_default_client_encoding variable --- lib/Admin_FlushVariables.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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]; From d3fec0cac7761e8f0d9d10137970388e9dd1ff55 Mon Sep 17 00:00:00 2001 From: Rahim Kanji Date: Wed, 9 Jul 2025 00:34:25 +0500 Subject: [PATCH 8/8] Deallocate client_addr and proxy_addr memory in __delete_query_rule --- lib/Query_Processor.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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)