This commit is contained in:
2025-11-04 18:07:55 +02:00
parent 9c7ad84e8d
commit 1db4bb6cdb

View File

@@ -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('<none>')) }}'"
- "upgrade_cmd parsed: '{{ nb_upgrade_cmd | default('') }}' (len={{ (nb_upgrade_cmd | default('')) | length }})"
- "upgrade_cmd line: {{ nb_upgrade_cmd_line | default('<none>') }}"
- "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)"