From ba4bcdbbe84a42e0346c0e36abf0d1cbc5007444 Mon Sep 17 00:00:00 2001 From: Steven Dake Date: Tue, 5 Apr 2016 11:32:20 -0400 Subject: [PATCH] Change waiting on mariadb.pid Previously the code looked at mariadb.pid, but this seemed flakey in function. It seemed racey and prone to failure on slower connections to a registry. The original task was extremely complex and it didnt really verify that the MariaDB was ready to serve connections. Use wait_for with a regex instead. Change-Id: I3aafac04f03639b08e0ef4d6a9c9e1a4499f000c Closes-Bug: #1564278 --- ansible/roles/mariadb/tasks/start.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/ansible/roles/mariadb/tasks/start.yml b/ansible/roles/mariadb/tasks/start.yml index 57313a918a..2c4e955b0c 100644 --- a/ansible/roles/mariadb/tasks/start.yml +++ b/ansible/roles/mariadb/tasks/start.yml @@ -14,12 +14,9 @@ ( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] ) - name: Waiting for MariaDB service to be ready - command: "docker exec mariadb ls /var/lib/mysql/mariadb.pid" - register: bootstrap_result - when: delegate_host != 'None' or - ( groups['mariadb'] | length ) == 1 or - ( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] ) - until: bootstrap_result|success - changed_when: False - retries: 6 - delay: 10 + wait_for: + host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}" + port: "{{ mariadb_port }}" + connect_timeout: 1 + timeout: 60 + search_regex: "MariaDB"