1# Copyright: (c) 2019, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru> 2# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 3 4# Tests for master_use_gtid parameter. 5# https://github.com/ansible/ansible/pull/62648 6 7############################# 8# master_use_gtid: "disabled" 9############################# 10 11# Auxiliary step: 12- name: Get master status 13 mysql_replication: 14 login_host: 127.0.0.1 15 login_port: "{{ primary_db.port }}" 16 mode: getmaster 17 register: primary_status 18 19# Set master_use_gtid disabled: 20- name: Run replication 21 mysql_replication: 22 login_host: 127.0.0.1 23 login_port: "{{ replica_db.port }}" 24 mode: changemaster 25 master_host: 127.0.0.1 26 master_port: "{{ primary_db.port }}" 27 master_user: "{{ replication_user }}" 28 master_password: "{{ replication_pass }}" 29 master_log_file: mysql-bin.000001 30 master_log_pos: '{{ primary_status.Position }}' 31 master_use_gtid: disabled 32 register: result 33 34- assert: 35 that: 36 - result is changed 37 38# Start standby for further tests: 39- name: Start standby 40 mysql_replication: 41 login_host: 127.0.0.1 42 login_port: "{{ primary_db.port }}" 43 mode: startslave 44 45- name: Get standby status 46 mysql_replication: 47 login_host: 127.0.0.1 48 login_port: "{{ replica_db.port }}" 49 mode: getslave 50 register: slave_status 51 52- assert: 53 that: 54 - slave_status.Using_Gtid == 'No' 55 56# Stop standby for further tests: 57- name: Stop standby 58 mysql_replication: 59 login_host: 127.0.0.1 60 login_port: "{{ replica_db.port }}" 61 mode: stopslave 62 63################################ 64# master_use_gtid: "current_pos" 65################################ 66 67# Auxiliary step: 68- name: Get master status 69 mysql_replication: 70 login_host: 127.0.0.1 71 login_port: "{{ primary_db.port }}" 72 mode: getmaster 73 register: primary_status 74 75# Set master_use_gtid current_pos: 76- name: Run replication 77 mysql_replication: 78 login_host: 127.0.0.1 79 login_port: "{{ replica_db.port }}" 80 mode: changemaster 81 master_host: 127.0.0.1 82 master_port: "{{ primary_db.port }}" 83 master_user: "{{ replication_user }}" 84 master_password: "{{ replication_pass }}" 85 master_log_file: mysql-bin.000001 86 master_log_pos: '{{ primary_status.Position }}' 87 master_use_gtid: current_pos 88 register: result 89 90- assert: 91 that: 92 - result is changed 93 94# Start standby for further tests: 95- name: Start standby 96 mysql_replication: 97 login_host: 127.0.0.1 98 login_port: "{{ primary_db.port }}" 99 mode: startslave 100 101- name: Get standby status 102 mysql_replication: 103 login_host: 127.0.0.1 104 login_port: "{{ replica_db.port }}" 105 mode: getslave 106 register: slave_status 107 108- assert: 109 that: 110 - slave_status.Using_Gtid == 'Current_Pos' 111 112# Stop standby for further tests: 113- name: Stop standby 114 mysql_replication: 115 login_host: 127.0.0.1 116 login_port: "{{ replica_db.port }}" 117 mode: stopslave 118 119############################## 120# master_use_gtid: "slave_pos" 121############################## 122 123# Auxiliary step: 124- name: Get master status 125 mysql_replication: 126 login_host: 127.0.0.1 127 login_port: "{{ primary_db.port }}" 128 mode: getmaster 129 register: primary_status 130 131# Set master_use_gtid slave_pos: 132- name: Run replication 133 mysql_replication: 134 login_host: 127.0.0.1 135 login_port: "{{ replica_db.port }}" 136 mode: changemaster 137 master_host: 127.0.0.1 138 master_port: "{{ primary_db.port }}" 139 master_user: "{{ replication_user }}" 140 master_password: "{{ replication_pass }}" 141 master_log_file: mysql-bin.000001 142 master_log_pos: '{{ primary_status.Position }}' 143 master_use_gtid: slave_pos 144 register: result 145 146- assert: 147 that: 148 - result is changed 149 150# Start standby for further tests: 151- name: Start standby 152 mysql_replication: 153 login_host: 127.0.0.1 154 login_port: "{{ primary_db.port }}" 155 mode: startslave 156 157- name: Get standby status 158 mysql_replication: 159 login_host: 127.0.0.1 160 login_port: "{{ replica_db.port }}" 161 mode: getslave 162 register: slave_status 163 164- assert: 165 that: 166 - slave_status.Using_Gtid == 'Slave_Pos' 167 168# Stop standby for further tests: 169- name: Stop standby 170 mysql_replication: 171 login_host: 127.0.0.1 172 login_port: "{{ replica_db.port }}" 173 mode: stopslave 174