From dddf1a8ab07cd2d039199839cd5fe43efdc6ae82 Mon Sep 17 00:00:00 2001 From: pavel Date: Fri, 24 Oct 2025 22:07:41 +0300 Subject: [PATCH] 2207 --- files/ansible-playbooks/sot-updater.yml | 33 +++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/files/ansible-playbooks/sot-updater.yml b/files/ansible-playbooks/sot-updater.yml index 4f5d650..37449f7 100644 --- a/files/ansible-playbooks/sot-updater.yml +++ b/files/ansible-playbooks/sot-updater.yml @@ -283,18 +283,31 @@ failed_when: false ignore_errors: true - - name: Dev1 | Normalize banner → X.X.X-rYYYY + # (1) Show what we got from banner so we can see what we’re parsing + - name: Dev1 | Debug raw banner + when: dev1_banner is defined + delegate_to: localhost + debug: + msg: + - "DEV1 banner raw: {{ (dev1_banner.stdout | default('') | trim) | regex_replace('\n',' ') }}" + + # (2) Strip timestamp/anything after a pipe + - name: Dev1 | Strip trailing ' | ...' delegate_to: localhost set_fact: - dev1_fw_clean: >- - {{ - ( - (dev1_banner.stdout | default('') | trim ) - | regex_replace('\\s*\\|.*$', '') # drop ' | timestamp' - | regex_replace('(?i)\\s*rev\\.?\\s*([0-9]+)\\s*$', '-r\\1') - | regex_search('[0-9]+\\.[0-9]+\\.[0-9]+-r[0-9]+') - ) | default('', true) - }} + dev1_no_ts: "{{ (dev1_banner.stdout | default('') | trim) | regex_replace('\\|.*$', '') }}" + + # (3) Convert 'rev YYYY' to '-rYYYY' (case-insensitive, using explicit flag) + - name: Dev1 | Convert 'rev YYYY' → '-rYYYY' + delegate_to: localhost + set_fact: + dev1_rev_dash: "{{ dev1_no_ts | regex_replace('rev\\.?\\s*([0-9]+)\\s*$', '-r\\1', ignorecase=True) }}" + + # (4) Extract the canonical core X.X.X-rYYYY (or empty if not found) + - name: Dev1 | Extract X.X.X-rYYYY core + delegate_to: localhost + set_fact: + dev1_fw_clean: "{{ dev1_rev_dash | regex_search('[0-9]+\\.[0-9]+\\.[0-9]+-r[0-9]+') | default('', true) }}" - name: Journal if DEV1 normalization failed (no core) when: (dev1_fw_clean | default('') | length) == 0