18:07
This commit is contained in:
@@ -109,31 +109,36 @@
|
|||||||
nb_small: "{{ nb_kv.get('small', '') }}"
|
nb_small: "{{ nb_kv.get('small', '') }}"
|
||||||
nb_ok_line: "{{ nb_ok_line }}"
|
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"
|
- name: "NB preflight | Capture upgrade_cmd from stdout"
|
||||||
when: nb_script.stat.exists
|
when: nb_script.stat.exists
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
vars:
|
vars:
|
||||||
stdout_clean: "{{ (nb_preflight.stdout | default('') | regex_replace('\r','')) }}"
|
stdout_clean: "{{ (nb_preflight.stdout | default('') | regex_replace('\r','')) }}"
|
||||||
# Find all lines like: NB: upgrade_cmd=...
|
up_line: >-
|
||||||
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: >-
|
|
||||||
{{
|
{{
|
||||||
'' 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:
|
set_fact:
|
||||||
|
nb_upgrade_cmd_line: "{{ up_line }}"
|
||||||
nb_upgrade_cmd: "{{ up_val_clean }}"
|
nb_upgrade_cmd: "{{ up_val_clean }}"
|
||||||
|
nb_upgrade_cmd_len: "{{ (up_val_clean | length) }}"
|
||||||
|
|
||||||
- name: "NB preflight | Debug upgrade_cmd"
|
- name: "NB preflight | Debug upgrade_cmd"
|
||||||
when: nb_script.stat.exists
|
when: nb_script.stat.exists
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg:
|
msg:
|
||||||
- "upgrade_cmd raw match: '{{ (up_matches | first | default('<none>')) }}'"
|
- "upgrade_cmd line: {{ nb_upgrade_cmd_line | default('<none>') }}"
|
||||||
- "upgrade_cmd parsed: '{{ nb_upgrade_cmd | default('') }}' (len={{ (nb_upgrade_cmd | default('')) | length }})"
|
- "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)
|
# --- Detect "cloud vs NetBox (before update) was different" (regex-free, robust)
|
||||||
- name: "NB preflight | Detect whether IP changed (pre-update)"
|
- name: "NB preflight | Detect whether IP changed (pre-update)"
|
||||||
|
|||||||
Reference in New Issue
Block a user