diff --git a/roles/version_update_single_node/tasks/main.yml b/roles/version_update_single_node/tasks/main.yml index 9f6a70665..e2ceb9907 100644 --- a/roles/version_update_single_node/tasks/main.yml +++ b/roles/version_update_single_node/tasks/main.yml @@ -57,7 +57,7 @@ include_tasks: shutdown_vms.yml vars: scale_computing_hypercore_shutdown_vms: "{{ vm_info }}" - when: vms.records != [] + when: scale_computing_hypercore_shutdown_vms.records != [] # ----------------- UPDATE -------------------- @@ -79,7 +79,7 @@ include_tasks: restart_vms.yml vars: scale_computing_hypercore_restart_vms: "{{ vm_info }}" - when: vms.records != [] + when: scale_computing_hypercore_restart_vms.records != [] - name: Check if updating to desired version failed ansible.builtin.fail: diff --git a/roles/version_update_single_node/tasks/shutdown_vms.yml b/roles/version_update_single_node/tasks/shutdown_vms.yml index a9b926b9b..2c51d80fc 100644 --- a/roles/version_update_single_node/tasks/shutdown_vms.yml +++ b/roles/version_update_single_node/tasks/shutdown_vms.yml @@ -6,17 +6,6 @@ loop: "{{ scale_computing_hypercore_shutdown_vms.records }}" register: running_vms -- name: Shutdown running VMs - scale_computing.hypercore.vm_params: - vm_name: "{{ item.vm_name }}" - power_state: shutdown - when: - - item.power_state == 'started' - - (scale_computing_hypercore_shutdown_tags == []) or (scale_computing_hypercore_shutdown_tags | intersect(item.tags)) - loop: "{{ scale_computing_hypercore_shutdown_vms.records }}" - register: vm_shutdown_result - ignore_errors: true # if VMs fail to shut down without force, error will occur, so we skip and try on to shut down with force - - name: Set fact version_update_all_vms_stopped to initial false ansible.builtin.set_fact: version_update_all_vms_stopped: false @@ -27,10 +16,6 @@ loop: "{{ range(0, (scale_computing_hypercore_shutdown_wait_time / 10.0) | round(0, 'ceil') | int) | list }}" when: not version_update_all_vms_stopped -- name: Show shutdown results - ansible.builtin.debug: - var: vm_shutdown_result - - name: Force shutdown the remaining running VMs scale_computing.hypercore.vm_params: vm_name: "{{ item.item.vm_name }}" diff --git a/roles/version_update_single_node/tasks/wait_vm_shutdown.yml b/roles/version_update_single_node/tasks/wait_vm_shutdown.yml index 1df8bab06..bee170576 100644 --- a/roles/version_update_single_node/tasks/wait_vm_shutdown.yml +++ b/roles/version_update_single_node/tasks/wait_vm_shutdown.yml @@ -1,6 +1,23 @@ --- - name: Wait on VMs to shutdown block: + - name: Shutdown running VMs + scale_computing.hypercore.vm_params: + vm_name: "{{ single_vm.vm_name }}" + power_state: shutdown + when: + - single_vm.power_state == 'started' + - (scale_computing_hypercore_shutdown_tags == []) or (scale_computing_hypercore_shutdown_tags | intersect(single_vm.tags)) + loop: "{{ scale_computing_hypercore_shutdown_vms.records }}" + loop_control: + loop_var: single_vm + register: vm_shutdown_result + ignore_errors: true # if VMs fail to shut down without force, error will occur, so we skip and try on to shut down with force + + - name: Show shutdown results + ansible.builtin.debug: + var: vm_shutdown_result + - name: Get all available running VMs scale_computing.hypercore.vm_info: register: version_update_vms