From 9092f4a10495af9f2def15518e81d4ae5ea5f102 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Sun, 28 Aug 2016 20:39:31 +0800 Subject: [PATCH] Fix removing nova_libvirt container issue Retry once when removing or upgrading nova_libvirt to ensure it is removed Closes-Bug: #1617741 Change-Id: I8b5046a438c0ef3599a4333bbe77333f0af323ff Signed-off-by: Jeffrey Zhang --- ansible/roles/nova/tasks/do_reconfigure.yml | 6 +++++- ansible/roles/nova/tasks/start_compute.yml | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ansible/roles/nova/tasks/do_reconfigure.yml b/ansible/roles/nova/tasks/do_reconfigure.yml index 2035fb0228..b551dd92ac 100644 --- a/ansible/roles/nova/tasks/do_reconfigure.yml +++ b/ansible/roles/nova/tasks/do_reconfigure.yml @@ -164,12 +164,16 @@ name: "{{ item[0]['name'] }}" action: "remove_container" register: remove_containers + until: remote_container|success + retries: "{{ item[0]['retries']|default(0) }}" when: - inventory_hostname in groups[item[0]['group']] - config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE' - item[2]['rc'] == 1 with_together: - - [{ name: nova_libvirt, group: compute }, + # NOTE(Jeffrey4l): retry 1 to remove nova_libvirt container because when + # guests running, nova_libvirt will raise error even though it is removed. + - [{ name: nova_libvirt, group: compute, retries: 1 }, { name: nova_ssh, group: compute }, { name: nova_conductor, group: nova-conductor }, { name: nova_api, group: nova-api }, diff --git a/ansible/roles/nova/tasks/start_compute.yml b/ansible/roles/nova/tasks/start_compute.yml index 7e79976b1b..7afe664a29 100644 --- a/ansible/roles/nova/tasks/start_compute.yml +++ b/ansible/roles/nova/tasks/start_compute.yml @@ -18,6 +18,11 @@ - "libvirtd:/var/lib/libvirt" - "nova_compute:/var/lib/nova/" - "nova_libvirt_qemu:/etc/libvirt/qemu" + register: start_nova_libvirt_container + # NOTE(Jeffrey4l): retry 1 to remove nova_libvirt container because when + # guests running, nova_libvirt will raise error even though it is removed. + retries: 1 + until: start_nova_libvirt_container|success when: inventory_hostname in groups['compute'] - name: Prepare volumes list