From 1db4bb6cdb11b4358391f44e0f8f1c195a24b8d1 Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 4 Nov 2025 18:07:55 +0200 Subject: [PATCH] 18:07 --- .../sot-updater-upgradecmd.yml | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/files/ansible-playbooks/sot-updater-upgradecmd.yml b/files/ansible-playbooks/sot-updater-upgradecmd.yml index 537b0cd..5612258 100644 --- a/files/ansible-playbooks/sot-updater-upgradecmd.yml +++ b/files/ansible-playbooks/sot-updater-upgradecmd.yml @@ -109,31 +109,36 @@ nb_small: "{{ nb_kv.get('small', '') }}" nb_ok_line: "{{ nb_ok_line }}" - # --- Extract upgrade_cmd from nb_onedevice_update.py output (regex, robust) --- + # --- Extract upgrade_cmd from nb_onedevice_update.py output (robust, no cross-task vars) --- - name: "NB preflight | Capture upgrade_cmd from stdout" when: nb_script.stat.exists delegate_to: localhost vars: stdout_clean: "{{ (nb_preflight.stdout | default('') | regex_replace('\r','')) }}" - # Find all lines like: NB: upgrade_cmd=... - up_matches: "{{ stdout_clean | regex_findall('(?mi)^NB:\\s*upgrade_cmd=\\s*(.*)$') }}" - up_val_raw: "{{ (up_matches | first | default('')) | trim }}" - # Normalize None/null/empty to '' ; otherwise keep verbatim - up_val_clean: >- + up_line: >- {{ - '' if (up_val_raw | lower) in ['none', 'null', ''] else up_val_raw + stdout_clean + | split('\n') + | map('trim') + | select('match', '^NB:\\s*upgrade_cmd=') + | list + | last + | default('') }} + up_val_raw: "{{ up_line | regex_replace('^NB:\\s*upgrade_cmd=\\s*', '') | trim }}" + up_val_clean: "{{ '' if (up_val_raw | lower) in ['none','null',''] else up_val_raw }}" set_fact: + nb_upgrade_cmd_line: "{{ up_line }}" nb_upgrade_cmd: "{{ up_val_clean }}" + nb_upgrade_cmd_len: "{{ (up_val_clean | length) }}" - name: "NB preflight | Debug upgrade_cmd" when: nb_script.stat.exists delegate_to: localhost ansible.builtin.debug: msg: - - "upgrade_cmd raw match: '{{ (up_matches | first | default('')) }}'" - - "upgrade_cmd parsed: '{{ nb_upgrade_cmd | default('') }}' (len={{ (nb_upgrade_cmd | default('')) | length }})" - + - "upgrade_cmd line: {{ nb_upgrade_cmd_line | default('') }}" + - "upgrade_cmd parsed: '{{ nb_upgrade_cmd | default('') }}' (len={{ nb_upgrade_cmd_len | default(0) }})" # --- Detect "cloud vs NetBox (before update) was different" (regex-free, robust) - name: "NB preflight | Detect whether IP changed (pre-update)"