This commit is contained in:
2025-11-04 16:25:50 +02:00
parent c9cb98839a
commit c33329164f

View File

@@ -80,35 +80,35 @@
- "raw stdout (joined): {{ nb_preflight.stdout | default('') | trim }}" - "raw stdout (joined): {{ nb_preflight.stdout | default('') | trim }}"
# --- Parse the OK line robustly (token-based) --- # --- Parse the OK line robustly (token-based) ---
- name: "NB preflight | Parse OK line (token)" - name: "NB preflight | Parse OK line (token)"
when: nb_script.stat.exists when: nb_script.stat.exists
delegate_to: localhost delegate_to: localhost
vars: vars:
nb_lines: >- nb_lines: >-
{{ (nb_preflight.stdout | default('') | regex_replace('\r','')) | split('\n') | map('trim') | list }} {{ (nb_preflight.stdout | default('') | regex_replace('\r','')) | split('\n') | map('trim') | list }}
nb_ok_line: >- nb_ok_line: >-
{{ (nb_lines | select('match', '^OK\\s+') | list | last | default('')) }} {{ (nb_lines | select('match', '^OK\\s+') | list | last | default('')) }}
nb_tokens: >- nb_tokens: >-
{{ (nb_ok_line | regex_replace('^OK\\s+', '')).split() }} {{ (nb_ok_line | regex_replace('^OK\\s+', '')).split() }}
nb_kv: >- nb_kv: >-
{{ {{
dict( dict(
nb_tokens nb_tokens
| select('match', '^[a-zA-Z_]+=') | select('match', '^[a-zA-Z_]+=')
| map('split', '=', 1) | map('split', '=', 1)
| map('list') | map('list')
) )
}} }}
set_fact: set_fact:
nb_ok: "{{ (nb_preflight.rc | default(1)) == 0 and (nb_ok_line | length) > 0 }}" nb_ok: "{{ (nb_preflight.rc | default(1)) == 0 and (nb_ok_line | length) > 0 }}"
nb_dev: "{{ (nb_tokens | first | default('')) if (nb_tokens|length>0) else '' }}" nb_dev: "{{ (nb_tokens | first | default('')) if (nb_tokens|length>0) else '' }}"
nb_ip: "{{ nb_kv.get('ip', '') }}" nb_ip: "{{ nb_kv.get('ip', '') }}"
nb_fw: "{{ nb_kv.get('fw', '') }}" nb_fw: "{{ nb_kv.get('fw', '') }}"
nb_node: "{{ nb_kv.get('node', '') }}" nb_node: "{{ nb_kv.get('node', '') }}"
nb_sector: "{{ nb_kv.get('sector', '') }}" nb_sector: "{{ nb_kv.get('sector', '') }}"
nb_small: "{{ nb_kv.get('small', '') }}" nb_small: "{{ nb_kv.get('small', '') }}"
nb_ok_line: "{{ nb_ok_line }}" nb_ok_line: "{{ nb_ok_line }}"
# --- Detect "cloud vs NetBox (before update) was different" # --- Detect "cloud vs NetBox (before update) was different"
# Match any of the script's change-indicator lines: # Match any of the script's change-indicator lines: