diff --git a/files/ansible-playbooks/update-indoor.yml b/files/ansible-playbooks/update-indoor.yml index aaa8ecc..e7ff53f 100644 --- a/files/ansible-playbooks/update-indoor.yml +++ b/files/ansible-playbooks/update-indoor.yml @@ -1008,54 +1008,14 @@ # <<< END ADDED >>> # --- SAFE expected target derivation (split into separate set_fact tasks) --- - - name: Derive expected indoor firmware from image filename (safe – base) - delegate_to: localhost - ansible.builtin.set_fact: - _img_base: "{{ image_filename | regex_replace('\\.bin$','') }}" - when: au_delay_sec is defined - - name: Derive X.Y.Z core from image filename (if any) + - name: Compute expected firmware core "X.Y.Z-rNNNN" from image filename (strict) delegate_to: localhost ansible.builtin.set_fact: - _img_ver_core: >- + expected_fw_core: >- {{ - (_img_base is search('[0-9]+\\.[0-9]+\\.[0-9]+')) - | ternary( - (_img_base | regex_replace('.*?([0-9]+\\.[0-9]+\\.[0-9]+).*','\\1')), - '' - ) - }} - when: au_delay_sec is defined - - - name: Derive rev number from -rNNNN (preferred) - delegate_to: localhost - ansible.builtin.set_fact: - _img_rev_num: >- - {{ - (_img_base is search('-r[0-9]+')) - | ternary( - (_img_base | regex_replace('.*-r([0-9]+).*','\\1')), - '' - ) - }} - when: au_delay_sec is defined - - - name: If no -rNNNN, try 'rev NNNN' (case-insensitive) - delegate_to: localhost - ansible.builtin.set_fact: - _img_rev_num: >- - {{ - (_img_rev_num | length) > 0 - | ternary( - _img_rev_num, - ( - (_img_base is search('(?i)rev[^0-9]*[0-9]+')) - | ternary( - (_img_base | regex_replace('.*(?i)rev[^0-9]*([0-9]+).*','\\1')), - '' - ) - ) - ) + image_filename + | regex_replace('.*?([0-9]+\.[0-9]+\.[0-9]+)-r([0-9]+).*','\1-r\2') }} when: au_delay_sec is defined