diff --git a/mikrotikbackup_clean.yml b/mikrotikbackup_clean.yml index 9c8bb02..e121c7c 100644 --- a/mikrotikbackup_clean.yml +++ b/mikrotikbackup_clean.yml @@ -65,28 +65,41 @@ register: update_check tags: [upgrade, never] - # 👉 FIX: separate normalization step - name: Normalize update output set_fact: - _update_text: "{{ update_check.stdout[0] | replace('\r','') }}" + _update_text: "{{ update_check.stdout[0] | replace('\r', '') }}" + tags: [upgrade, never] + + # ⬇️ Add this to see exactly what RouterOS returns before parsing + - name: Debug raw update output + ansible.builtin.debug: + msg: "{{ _update_text }}" tags: [upgrade, never] - name: Parse installed and latest versions set_fact: installed_version: >- {{ - (_update_text | regex_findall('installed-version:\\s*([0-9A-Za-z.]+)'))[0] - if (_update_text | regex_findall('installed-version:\\s*([0-9A-Za-z.]+)')) + (_update_text | regex_findall('(?:installed|current)-version:[ ]*([0-9A-Za-z.]+)'))[0] + if (_update_text | regex_findall('(?:installed|current)-version:[ ]*([0-9A-Za-z.]+)')) else 'unknown' }} latest_version: >- {{ - (_update_text | regex_findall('latest-version:\\s*([0-9A-Za-z.]+)'))[0] - if (_update_text | regex_findall('latest-version:\\s*([0-9A-Za-z.]+)')) + (_update_text | regex_findall('(?:latest|newest)-version:[ ]*([0-9A-Za-z.]+)'))[0] + if (_update_text | regex_findall('(?:latest|newest)-version:[ ]*([0-9A-Za-z.]+)')) else 'unknown' }} tags: [upgrade, never] + - name: Fail if versions could not be parsed + ansible.builtin.fail: + msg: > + Could not parse versions from update output. + Raw text was: {{ _update_text }} + when: installed_version == 'unknown' or latest_version == 'unknown' + tags: [upgrade, never] + - name: Debug parsed versions ansible.builtin.debug: msg: