# We have a test repo set up with a valid updateinfo.xml which is referenced # from its repomd.xml. - block: - set_fact: updateinfo_repo: https://ci-files.testing.ansible.com/test/integration/targets/setup_rpm_repo/repo-with-updateinfo - name: Install the test repo yum_repository: name: test-repo-with-updateinfo description: test-repo-with-updateinfo baseurl: "{{ updateinfo_repo }}" gpgcheck: no - name: Install old versions of toaster and oven dnf: name: - "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm" - "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm" disable_gpg_check: true - name: Ask for pending updates dnf: name: '*' state: latest update_only: true disable_gpg_check: true disablerepo: '*' enablerepo: test-repo-with-updateinfo register: update_no_filter - assert: that: - update_no_filter is changed - '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_no_filter.results' - '"Installed: oven-1.2.3.5-1.el8.noarch" in update_no_filter.results' - '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_no_filter.results' - '"Removed: oven-1.2.3.4-1.el8.noarch" in update_no_filter.results' - name: Install old versions of toaster and oven dnf: name: - "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm" - "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm" allow_downgrade: true disable_gpg_check: true - name: Ask for pending updates with security=true dnf: name: '*' state: latest update_only: true disable_gpg_check: true security: true disablerepo: '*' enablerepo: test-repo-with-updateinfo register: update_security - assert: that: - update_security is changed - '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_security.results' - '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_security.results' - '"Installed: oven-1.2.3.5-1.el8.noarch" not in update_security.results' - '"Removed: oven-1.2.3.4-1.el8.noarch" not in update_security.results' - name: Install old versions of toaster and oven dnf: name: - "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm" - "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm" allow_downgrade: true disable_gpg_check: true - name: Ask for pending updates with bugfix=true dnf: name: '*' state: latest update_only: true disable_gpg_check: true bugfix: true disablerepo: '*' enablerepo: test-repo-with-updateinfo register: update_bugfix - assert: that: - update_bugfix is changed - '"Installed: toaster-1.2.3.5-1.el8.noarch" not in update_bugfix.results' - '"Removed: toaster-1.2.3.4-1.el8.noarch" not in update_bugfix.results' - '"Installed: oven-1.2.3.5-1.el8.noarch" in update_bugfix.results' - '"Removed: oven-1.2.3.4-1.el8.noarch" in update_bugfix.results' - name: Install old versions of toaster and oven dnf: name: - "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm" - "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm" allow_downgrade: true disable_gpg_check: true - name: Verify toaster is not upgraded with state=installed dnf: name: "{{ item }}" state: installed register: installed loop: - toaster - toaster.noarch - toaster-1.2.3.4-1.el8.noarch - assert: that: "installed.results | map(attribute='changed') is not any" - name: Ask for pending updates with bugfix=true and security=true dnf: name: '*' state: latest update_only: true disable_gpg_check: true bugfix: true security: true disablerepo: '*' enablerepo: test-repo-with-updateinfo register: update_bugfix - assert: that: - update_bugfix is changed - '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_bugfix.results' - '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_bugfix.results' - '"Installed: oven-1.2.3.5-1.el8.noarch" in update_bugfix.results' - '"Removed: oven-1.2.3.4-1.el8.noarch" in update_bugfix.results' - name: Install old version of toaster again dnf: name: "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm" allow_downgrade: true disable_gpg_check: true - name: Verify toaster is upgraded with state=latest dnf: name: toaster.noarch state: latest register: result - assert: that: result.changed always: - name: Remove installed packages dnf: name: - toaster - oven state: absent - name: Remove the repo yum_repository: name: test-repo-with-updateinfo state: absent tags: - filters