diff --git a/mikrotikbackup_clean.yml b/mikrotikbackup_clean.yml index 6ade657..e0935cb 100644 --- a/mikrotikbackup_clean.yml +++ b/mikrotikbackup_clean.yml @@ -88,14 +88,38 @@ tags: upgrade # ---------------------------- - # Parse versions (robust) + # Parse versions (FIXED) # ---------------------------- - name: Parse installed and latest versions ansible.builtin.set_fact: - installed_version: "{{ update_info.stdout[0] | regex_search('installed-version: ([^\\s]+)', '\\1') | default('unknown', true) }}" - latest_version: "{{ update_info.stdout[0] | regex_search('latest-version: ([^\\s]+)', '\\1') | default('unknown', true) }}" - update_status: "{{ update_info.stdout[0] | regex_search('status: (.+)', '\\1') | default('unknown', true) }}" - update_channel: "{{ update_info.stdout[0] | regex_search('channel: ([^\\s]+)', '\\1') | default('unknown', true) }}" + installed_version: >- + {{ + (update_info.stdout[0] + | regex_search('installed-version: ([^\\s]+)', '\\1') + | default(['unknown'], true)) + | first + }} + latest_version: >- + {{ + (update_info.stdout[0] + | regex_search('latest-version: ([^\\s]+)', '\\1') + | default(['unknown'], true)) + | first + }} + update_status: >- + {{ + (update_info.stdout[0] + | regex_search('status: (.+)', '\\1') + | default(['unknown'], true)) + | first + }} + update_channel: >- + {{ + (update_info.stdout[0] + | regex_search('channel: ([^\\s]+)', '\\1') + | default(['unknown'], true)) + | first + }} tags: upgrade - name: Debug parsed update info @@ -104,11 +128,11 @@ tags: upgrade # ---------------------------- - # Detect problems + # Detect problems (FIXED) # ---------------------------- - name: Detect update failure ansible.builtin.set_fact: - update_failed: "{{ 'error' in update_status | lower or 'failed' in update_status | lower }}" + update_failed: "{{ 'error' in (update_status | lower) or 'failed' in (update_status | lower) }}" tags: upgrade - name: Warn if update failed