- name: Wait for connection
  ansible.builtin.wait_for_connection:
    timeout: '{{ file_wait_seconds }}'

- name: Check if file exists
  ansible.builtin.file:
    path: '{{ file_wait_path }}'
    state: file
  register: file_wait_check
  until: file_wait_check is succeeded
  retries: '{{ file_wait_seconds // file_wait_delay }}'
  delay: '{{ file_wait_delay }}'
  ignore_unreachable: true
  ignore_errors: true

- name: If host restarted, try again
  when: file_wait_check is unreachable
  block:
    - name: Show number of reboots
      ansible.builtin.debug:
        msg: 'Number of reboots left: {{ file_wait_reboots_left }}'

    - name: Decrement number of reboots
      ansible.builtin.set_fact:
        file_wait_reboots_left: '{{ (file_wait_reboots_left | int) - 1 }}'

    - name: Retry if there're more reboots
      ansible.builtin.include_tasks: check.yml
      when: (file_wait_reboots_left | int >= 0)