diff --git a/tasks/nova_compute_wait.yml b/tasks/nova_compute_wait.yml index d6d5cdb1..2d0f5855 100644 --- a/tasks/nova_compute_wait.yml +++ b/tasks/nova_compute_wait.yml @@ -21,10 +21,26 @@ set_fact: _wait_nova_bin: "{{ hostvars[first_conductor]['nova_bin'] | default(nova_bin) }}" -- name: Wait for the nova-compute service to initialize - command: "{{ _wait_nova_bin }}/openstack --os-cloud default compute service list --service nova-compute --format value --column Host" - changed_when: false - register: _compute_host_list - retries: 10 - delay: 5 - until: "compute_host_to_wait_for in _compute_host_list.stdout_lines" +- block: + - name: Wait for the nova-compute service to initialize + command: "{{ _wait_nova_bin }}/openstack --os-cloud default compute service list --service nova-compute --format value --column Host" + changed_when: false + register: _compute_host_list + retries: 10 + delay: 5 + until: "compute_host_to_wait_for in _compute_host_list.stdout_lines" + + rescue: + - name: Restart nova-compute service + service: + name: "{{ nova_services['nova-compute']['service_name'] }}" + state: restarted + delegate_to: "{{ compute_host_to_wait_for }}" + + - name: Wait for the nova-compute service to initialize + command: "{{ _wait_nova_bin }}/openstack --os-cloud default compute service list --service nova-compute --format value --column Host" + changed_when: false + register: _compute_host_list + retries: 10 + delay: 5 + until: "compute_host_to_wait_for in _compute_host_list.stdout_lines"