diff --git a/files/ansible-playbooks/sot-updater.yml b/files/ansible-playbooks/sot-updater.yml index d319e08..a1e1762 100644 --- a/files/ansible-playbooks/sot-updater.yml +++ b/files/ansible-playbooks/sot-updater.yml @@ -80,35 +80,35 @@ - "raw stdout (joined): {{ nb_preflight.stdout | default('') | trim }}" - # --- Parse the OK line robustly (token-based) --- - - name: "NB preflight | Parse OK line (token)" - when: nb_script.stat.exists - delegate_to: localhost - vars: - nb_lines: >- - {{ (nb_preflight.stdout | default('') | regex_replace('\r','')) | split('\n') | map('trim') | list }} - nb_ok_line: >- - {{ (nb_lines | select('match', '^OK\\s+') | list | last | default('')) }} - nb_tokens: >- - {{ (nb_ok_line | regex_replace('^OK\\s+', '')).split() }} - nb_kv: >- - {{ - dict( - nb_tokens - | select('match', '^[a-zA-Z_]+=') - | map('split', '=', 1) - | map('list') - ) - }} - set_fact: - 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_ip: "{{ nb_kv.get('ip', '') }}" - nb_fw: "{{ nb_kv.get('fw', '') }}" - nb_node: "{{ nb_kv.get('node', '') }}" - nb_sector: "{{ nb_kv.get('sector', '') }}" - nb_small: "{{ nb_kv.get('small', '') }}" - nb_ok_line: "{{ nb_ok_line }}" + # --- Parse the OK line robustly (token-based) --- + - name: "NB preflight | Parse OK line (token)" + when: nb_script.stat.exists + delegate_to: localhost + vars: + nb_lines: >- + {{ (nb_preflight.stdout | default('') | regex_replace('\r','')) | split('\n') | map('trim') | list }} + nb_ok_line: >- + {{ (nb_lines | select('match', '^OK\\s+') | list | last | default('')) }} + nb_tokens: >- + {{ (nb_ok_line | regex_replace('^OK\\s+', '')).split() }} + nb_kv: >- + {{ + dict( + nb_tokens + | select('match', '^[a-zA-Z_]+=') + | map('split', '=', 1) + | map('list') + ) + }} + set_fact: + 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_ip: "{{ nb_kv.get('ip', '') }}" + nb_fw: "{{ nb_kv.get('fw', '') }}" + nb_node: "{{ nb_kv.get('node', '') }}" + nb_sector: "{{ nb_kv.get('sector', '') }}" + nb_small: "{{ nb_kv.get('small', '') }}" + nb_ok_line: "{{ nb_ok_line }}" # --- Detect "cloud vs NetBox (before update) was different" # Match any of the script's change-indicator lines: