diff --git a/files/ansible-playbooks/sot-updater.yml b/files/ansible-playbooks/sot-updater.yml index 74c4add..74778a6 100644 --- a/files/ansible-playbooks/sot-updater.yml +++ b/files/ansible-playbooks/sot-updater.yml @@ -125,12 +125,17 @@ failed_when: false ignore_errors: true - - name: Dev1 | Normalize banner (X.X.X-rYYYY) + - name: Dev1 | Normalize banner (convert 'rev' → '-r' and extract) delegate_to: localhost + run_once: true set_fact: dev1_fw_clean: >- {{ - (dev1_banner.stdout | default('') | regex_search('[0-9]+\\.[0-9]+\\.[0-9]+-r[0-9]+')) + ( + (dev1_banner.stdout | default('') | trim) + | regex_replace('[Rr][Ee][Vv]\\.?\\s*([0-9]+)', '-r\\1') + | regex_search('[0-9]+\\.[0-9]+\\.[0-9]+-r[0-9]+') + ) | default('', true) | trim }} @@ -202,14 +207,32 @@ failed_when: false ignore_errors: true - - name: Dev2 | Extract firmware version line + - name: Dev2 | Extract firmware version line (prefer 'rev', else first non-empty) delegate_to: localhost + run_once: true set_fact: indoor_fw_norm: >- {{ - (dev2_firmux.stdout | default('') | regex_search('.*\\brev\\s*[0-9]+.*')) - | default('', true) - | trim + ( + ( + dev2_firmux.stdout | default('') | regex_replace('\r','') + ) | split('\n') + | map('trim') + | select('truthy') + | list + ) | select('match', '(?i).*\\brev\\s*[0-9]+.*') + | list + | first + | default( + ((dev2_firmux.stdout | default('') | regex_replace('\r','')) + | split('\n') + | map('trim') + | select('truthy') + | list + | first + | default('')) + ) + | trim }} - name: Publish Dev2 indoor_fwver