Skip to content

Commit

Permalink
Merge pull request #508 from vitessio/fix-async
Browse files Browse the repository at this point in the history
Fix async poll
  • Loading branch information
frouioui authored Feb 1, 2024
2 parents eda3cba + af9560f commit 7256a21
Show file tree
Hide file tree
Showing 5 changed files with 173 additions and 12 deletions.
9 changes: 9 additions & 0 deletions ansible/roles/vitess_build/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@
# limitations under the License.

---
- name: ensure vitess tmp directory
become: yes
become_user: root
file:
state: directory
path: '{{ vitess_root }}/tmp'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'

- name: Update Vitess
become: yes
become_user: root
Expand Down
2 changes: 0 additions & 2 deletions ansible/roles/vtgate/tasks/clean.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
loop: '{{ gateways }}'
loop_control:
loop_var: gateway
async: 600 # Maximum time to wait for all tasks to complete in seconds
poll: 0 # Polling interval, 0 means don't poll and wait for completion

- name: remove old config
become: yes
Expand Down
45 changes: 41 additions & 4 deletions ansible/roles/vtgate/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,50 @@
name: "vtgate"
tasks_from: systemd

- name: install config files
include_tasks: vtgate.yml
- name: ensure vtgate directory
become: yes
become_user: root
loop: '{{ gateways }}'
loop_control:
loop_var: gateway
async: 600
poll: 0
file:
state: directory
path: '{{ vitess_root }}/tmp/vtgate-{{ gateway.id }}'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'

- name: install config
become: yes
become_user: root
loop: '{{ gateways }}'
loop_control:
loop_var: gateway
async: 600 # Maximum time to wait for all tasks to complete in seconds
poll: 0 # Polling interval, 0 means don't poll and wait for completion
async: 600
poll: 0
template:
src: 'vtgate.conf.j2'
dest: '/etc/vitess/conf/vtgate-{{ gateway.id }}.conf'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'
mode: '0644'

- name: start vtgate
become: yes
become_user: root
loop: '{{ gateways }}'
loop_control:
loop_var: gateway
async: 600
poll: 0
when:
- enable_vtgate | bool
service:
name: 'vtgate@{{ gateway.id }}'
enabled: yes
state: started
changed_when: false

- name: Turn on loadbalancing
vars:
Expand Down
2 changes: 0 additions & 2 deletions ansible/roles/vttablet/tasks/clean.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
loop: '{{ all_tablets }}'
loop_control:
loop_var: tablet
async: 600 # Maximum time to wait for all tasks to complete in seconds
poll: 0 # Polling interval, 0 means don't poll and wait for completion

- name: remove old config
become: yes
Expand Down
127 changes: 123 additions & 4 deletions ansible/roles/vttablet/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,130 @@
- name: install systemd units
include_tasks: systemd.yml

- name: Install config files
include_tasks: vttablet.yml
- name: ensure vttablet directory
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
file:
state: directory
path: '{{ vitess_root }}/tmp/vttablet-{{ tablet.id }}'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'

- name: install vttablet config
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600 # Maximum time to wait for all tasks to complete in seconds
poll: 0 # Polling interval, 0 means don't poll and wait for completion
async: 600
poll: 0
template:
src: 'vttablet.conf.j2'
dest: '/etc/vitess/conf/vttablet-{{ tablet.id }}.conf'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'
mode: '0644'

- name: install extra cnf config
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
template:
src: 'extra_my.cnf.j2'
dest: '/etc/vitess/extra_my{{ tablet.id }}.cnf'
owner: '{{ vitess_user }}'
group: '{{ vitess_group }}'
mode: '0644'

- name: start mysqlctld
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
when:
- enable_vttablet | bool
service:
name: 'mysqlctld@{{ tablet.id }}'
enabled: yes
state: started
changed_when: false

- name: start mysqld exporter
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
when:
- enable_vttablet | bool
service:
name: 'mysqld_exporter@{{ tablet.id }}'
enabled: yes
state: started
changed_when: false

- name: wait for mysql socket
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
when:
- enable_vttablet | bool
wait_for:
path: '{{ vitess_root }}/socket/mysql{{ tablet.id }}.sock'
delay: 5
timeout: 60
state: present
msg: "mysql socket needs to be present {{ vitess_root }}/socket/mysql{{ tablet.id }}.sock"
ignore_errors: true

- name: wait for mysqlctl socket
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
when:
- enable_vttablet | bool
wait_for:
path: '{{ vitess_root }}/socket/mysqlctl{{ tablet.id }}.sock'
delay: 5
timeout: 60
state: present
msg: "mysqlctl socket needs to be present at {{ vitess_root }}/socket/mysqlctl{{ tablet.id }}.sock"
ignore_errors: true

- name: start vttablet
become: yes
become_user: root
loop: '{{ tablets }}'
loop_control:
loop_var: tablet
async: 600
poll: 0
when:
- enable_vttablet | bool
service:
name: 'vttablet@{{ tablet.id }}'
enabled: yes
state: started
changed_when: false

0 comments on commit 7256a21

Please sign in to comment.