From 678236afc58b7c49178f50667c5d14c1488083ac Mon Sep 17 00:00:00 2001 From: Ana Zobec Date: Mon, 8 May 2023 11:06:44 +0200 Subject: [PATCH 1/3] Fix version_update_single_node to send shutdown request multiple times. --- roles/version_update_single_node/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/version_update_single_node/tasks/main.yml b/roles/version_update_single_node/tasks/main.yml index 9f6a70665..50121824f 100644 --- a/roles/version_update_single_node/tasks/main.yml +++ b/roles/version_update_single_node/tasks/main.yml @@ -57,6 +57,7 @@ include_tasks: shutdown_vms.yml vars: scale_computing_hypercore_shutdown_vms: "{{ vm_info }}" + loop: "{{ range(0, (scale_computing_hypercore_shutdown_wait_time / 10.0) | round(0, 'ceil') | int) | list }}" when: vms.records != [] # ----------------- UPDATE -------------------- From b5a3a86bb3c1b647eaa81c45b69461688cdf04f9 Mon Sep 17 00:00:00 2001 From: Ana Zobec Date: Mon, 8 May 2023 13:16:43 +0200 Subject: [PATCH 2/3] Move task 'Shutdown running VMs' from to 'wait_vm_shutdown'. --- roles/version_update_single_node/tasks/main.yml | 5 ++--- .../tasks/shutdown_vms.yml | 15 --------------- .../tasks/wait_vm_shutdown.yml | 17 +++++++++++++++++ .../tasks/main.yml | 4 ++-- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/roles/version_update_single_node/tasks/main.yml b/roles/version_update_single_node/tasks/main.yml index 50121824f..e2ceb9907 100644 --- a/roles/version_update_single_node/tasks/main.yml +++ b/roles/version_update_single_node/tasks/main.yml @@ -57,8 +57,7 @@ include_tasks: shutdown_vms.yml vars: scale_computing_hypercore_shutdown_vms: "{{ vm_info }}" - loop: "{{ range(0, (scale_computing_hypercore_shutdown_wait_time / 10.0) | round(0, 'ceil') | int) | list }}" - when: vms.records != [] + when: scale_computing_hypercore_shutdown_vms.records != [] # ----------------- UPDATE -------------------- @@ -80,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 diff --git a/tests/integration/targets/role_version_update_single_node/tasks/main.yml b/tests/integration/targets/role_version_update_single_node/tasks/main.yml index eb9fffeb1..044dfaedd 100644 --- a/tests/integration/targets/role_version_update_single_node/tasks/main.yml +++ b/tests/integration/targets/role_version_update_single_node/tasks/main.yml @@ -1,8 +1,8 @@ --- - environment: SC_HOST: "{{ sc_host }}" - SC_USERNAME: "{{ sc_config[sc_host].sc_username }}" - SC_PASSWORD: "{{ sc_config[sc_host].sc_password }}" + SC_USERNAME: "{{ sc_username_50 }}" + SC_PASSWORD: "{{ sc_password_50 }}" SC_TIMEOUT: "{{ sc_timeout }}" vars: From 94352e56aed82aed07253609e64ad82a3a9c4e29 Mon Sep 17 00:00:00 2001 From: Justin Cinkelj Date: Mon, 8 May 2023 15:30:34 +0200 Subject: [PATCH 3/3] CI revert unneeded change Signed-off-by: Justin Cinkelj --- .../targets/role_version_update_single_node/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/targets/role_version_update_single_node/tasks/main.yml b/tests/integration/targets/role_version_update_single_node/tasks/main.yml index 044dfaedd..eb9fffeb1 100644 --- a/tests/integration/targets/role_version_update_single_node/tasks/main.yml +++ b/tests/integration/targets/role_version_update_single_node/tasks/main.yml @@ -1,8 +1,8 @@ --- - environment: SC_HOST: "{{ sc_host }}" - SC_USERNAME: "{{ sc_username_50 }}" - SC_PASSWORD: "{{ sc_password_50 }}" + SC_USERNAME: "{{ sc_config[sc_host].sc_username }}" + SC_PASSWORD: "{{ sc_config[sc_host].sc_password }}" SC_TIMEOUT: "{{ sc_timeout }}" vars: