From 9c7ad84e8d178a43d6acde56c2e8b09e8c554dd4 Mon Sep 17 00:00:00 2001 From: pavel Date: Tue, 4 Nov 2025 18:06:08 +0200 Subject: [PATCH] 18:06 --- .../sot-updater-upgradecmd.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/files/ansible-playbooks/sot-updater-upgradecmd.yml b/files/ansible-playbooks/sot-updater-upgradecmd.yml index d59a8ec..537b0cd 100644 --- a/files/ansible-playbooks/sot-updater-upgradecmd.yml +++ b/files/ansible-playbooks/sot-updater-upgradecmd.yml @@ -109,21 +109,15 @@ nb_small: "{{ nb_kv.get('small', '') }}" nb_ok_line: "{{ nb_ok_line }}" - # --- Extract upgrade_cmd from nb_onedevice_update.py output --- + # --- Extract upgrade_cmd from nb_onedevice_update.py output (regex, robust) --- - name: "NB preflight | Capture upgrade_cmd from stdout" when: nb_script.stat.exists delegate_to: localhost vars: - up_line: >- - {{ - ( - (nb_preflight.stdout | default('') | regex_replace('\r','')) - | split('\n') | map('trim') - ) - | select('search', '^NB:\\s+upgrade_cmd=') - | list | last | default('') - }} - up_val_raw: "{{ up_line | regex_replace('^NB:\\s+upgrade_cmd=', '') | trim }}" + 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: >- {{ @@ -137,7 +131,7 @@ delegate_to: localhost ansible.builtin.debug: msg: - - "upgrade_cmd line: {{ up_line | default('') }}" + - "upgrade_cmd raw match: '{{ (up_matches | first | default('')) }}'" - "upgrade_cmd parsed: '{{ nb_upgrade_cmd | default('') }}' (len={{ (nb_upgrade_cmd | default('')) | length }})"