# Ensure that python2-dnf is installed (This test is only like this in # stable-2.2 because we have not backported the feature that ensures the python # bindings are installed) - name: command: dnf install -y python2-dnf # UNINSTALL # With 'python2-dnf' uninstalled, the first call to 'dnf' should install # python2-dnf. - name: uninstall sos dnf: name: sos state: removed register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_result - debug: var=dnf_result - debug: var=rpm_result - name: verify uninstallation of sos assert: that: - "not dnf_result.failed | default(False)" - "rpm_result.rc == 1" # UNINSTALL AGAIN - name: uninstall sos dnf: name: sos state: removed register: dnf_result - name: verify no change on re-uninstall assert: that: - "not dnf_result.changed" # INSTALL - name: install sos dnf: name: sos state: present register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_result - debug: var=dnf_result - debug: var=rpm_result - name: verify installation of sos assert: that: - "not dnf_result.failed | default(False)" - "dnf_result.changed" - "rpm_result.rc == 0" - name: verify dnf module outputs assert: that: - "'changed' in dnf_result" - "'results' in dnf_result" # INSTALL AGAIN - name: install sos again dnf: name: sos state: present register: dnf_result - name: verify no change on second install assert: that: - "not dnf_result.changed" # Multiple packages - name: uninstall sos and sharutils dnf: name=sos,sharutils state=removed register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check sharutils with rpm shell: rpm -q sharutils failed_when: False register: rpm_sharutils_result - name: verify packages installed assert: that: - "rpm_sos_result.rc != 0" - "rpm_sharutils_result.rc != 0" - name: install sos and sharutils as comma separated dnf: name=sos,sharutils state=present register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check sharutils with rpm shell: rpm -q sharutils failed_when: False register: rpm_sharutils_result - name: verify packages installed assert: that: - "not dnf_result.failed | default(False)" - "dnf_result.changed" - "rpm_sos_result.rc == 0" - "rpm_sharutils_result.rc == 0" - name: uninstall sos and sharutils dnf: name=sos,sharutils state=removed register: dnf_result - name: install sos and sharutils as list dnf: name: - sos - sharutils state: present register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check sharutils with rpm shell: rpm -q sharutils failed_when: False register: rpm_sharutils_result - name: verify packages installed assert: that: - "not dnf_result.failed | default(False)" - "dnf_result.changed" - "rpm_sos_result.rc == 0" - "rpm_sharutils_result.rc == 0" - name: uninstall sos and sharutils dnf: name: "sos,sharutils" state: removed register: dnf_result - name: install sos and sharutils as comma separated with spaces dnf: name: "sos, sharutils" state: present register: dnf_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check sos with rpm shell: rpm -q sharutils failed_when: False register: rpm_sharutils_result - name: verify packages installed assert: that: - "not dnf_result.failed | default(False)" - "dnf_result.changed" - "rpm_sos_result.rc == 0" - "rpm_sharutils_result.rc == 0" - name: uninstall sos and sharutils dnf: name: - sos - sharutils state: removed - name: install non-existent rpm dnf: name: "{{ item }}" with_items: - does-not-exist register: non_existent_rpm ignore_errors: True - name: check non-existent rpm install failed assert: that: - non_existent_rpm|failed