From 7bf2426ff8521eb9ed41c11aa40ffd4c3bd021e4 Mon Sep 17 00:00:00 2001 From: Jimmy McCrory Date: Wed, 31 Oct 2018 16:37:21 -0700 Subject: [PATCH] Retry waiting for initial nova-compute with rescue Sometimes the nova-compute service doesn't seem to be able to register itself on its initial service start. Use a block/rescue to restart the service so a reregistration can be attempted. Change-Id: Ic82804cc23b89f1cd5bb3a08b74cdcbf29265345 --- tasks/nova_compute_wait.yml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) 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"