diff options
author | Martin Krizek <martin.krizek@gmail.com> | 2017-11-21 09:40:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-21 09:40:58 +0100 |
commit | 3c1fb9b54742f146fd34b1ad4534e703aeee3c48 (patch) | |
tree | 506a28783e2251bca0ce4c38eb0d2251342209e6 /test/integration/targets/yum | |
parent | 0ddf092ae3ab8c484cc07d095c4007fda7f491b2 (diff) | |
download | ansible-3c1fb9b54742f146fd34b1ad4534e703aeee3c48.tar.gz |
Use custom rpm repo script for dnf testing (#32737)
* Use custom rpm repo script for dnf testing
* Switch to a jinja2 test
Diffstat (limited to 'test/integration/targets/yum')
-rw-r--r-- | test/integration/targets/yum/aliases | 2 | ||||
-rw-r--r-- | test/integration/targets/yum/files/create-repo.py | 41 | ||||
-rw-r--r-- | test/integration/targets/yum/meta/main.yml | 1 | ||||
-rw-r--r-- | test/integration/targets/yum/tasks/repo.yml | 1140 |
4 files changed, 510 insertions, 674 deletions
diff --git a/test/integration/targets/yum/aliases b/test/integration/targets/yum/aliases index 8e7d715f9c..5d97a9be5e 100644 --- a/test/integration/targets/yum/aliases +++ b/test/integration/targets/yum/aliases @@ -1,2 +1,4 @@ destructive posix/ci/group1 +skip/freebsd +skip/osx diff --git a/test/integration/targets/yum/files/create-repo.py b/test/integration/targets/yum/files/create-repo.py deleted file mode 100644 index 6d5e1db312..0000000000 --- a/test/integration/targets/yum/files/create-repo.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python - - -import sys -from collections import namedtuple -import rpmfluff - - -RPM = namedtuple('RPM', ['name', 'version', 'release', 'epoch']) - - -SPECS = [ - RPM('foo', '1.0', '1', None), - RPM('foo', '1.0', '2', '1'), - RPM('foo', '1.1', '1', '1'), -] - - -def main(): - try: - arch = sys.argv[1] - except IndexError: - arch = 'x86_64' - - pkgs = [] - for spec in SPECS: - pkg = rpmfluff.SimpleRpmBuild(spec.name, spec.version, spec.release, [arch]) - pkg.epoch = spec.epoch - pkgs.append(pkg) - - repo = rpmfluff.YumRepoBuild(pkgs) - repo.make(arch) - - for pkg in pkgs: - pkg.clean() - - print(repo.repoDir) - - -if __name__ == "__main__": - main() diff --git a/test/integration/targets/yum/meta/main.yml b/test/integration/targets/yum/meta/main.yml index 07faa21776..73076d3562 100644 --- a/test/integration/targets/yum/meta/main.yml +++ b/test/integration/targets/yum/meta/main.yml @@ -1,2 +1,3 @@ dependencies: - prepare_tests + - setup_rpm_repo diff --git a/test/integration/targets/yum/tasks/repo.yml b/test/integration/targets/yum/tasks/repo.yml index 1b87106339..76bc96891b 100644 --- a/test/integration/targets/yum/tasks/repo.yml +++ b/test/integration/targets/yum/tasks/repo.yml @@ -1,634 +1,508 @@ -- name: Install epel repo which is missing on rhel-7 and is needed for rpmfluff - yum: - name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm - when: - - ansible_distribution in ['RedHat'] - -- name: Install rpmfluff and deps - yum: - name: "{{ item }}" - with_items: - - python-rpmfluff - - createrepo_c - - createrepo # used by el6 version of rpmfluff - -- name: Copy script for creating a repo - copy: - src: create-repo.py - dest: /tmp/create-repo.py - mode: 0755 - -- name: Create RPMs and put them into a repo - shell: "python /tmp/create-repo.py {{ ansible_architecture }}" - register: repo - -- set_fact: - repodir: "{{ repo.stdout_lines[-1] }}" - -- name: Install the repo - yum_repository: - name: "fake-{{ ansible_architecture }}" - description: "fake-{{ ansible_architecture }}" - baseurl: "file://{{ repodir }}" - gpgcheck: no - -- name: Create RPMs and put them into a repo (i686) - shell: "python /tmp/create-repo.py i686" - register: repo_i686 - -- set_fact: - repodir_i686: "{{ repo_i686.stdout_lines[-1] }}" - -- name: Install the repo (i686) - yum_repository: - name: "fake-i686" - description: "fake-i686" - baseurl: "file://{{ repodir_i686 }}" - gpgcheck: no - -- name: Create RPMs and put them into a repo (ppc64) - shell: "python /tmp/create-repo.py ppc64" - register: repo_ppc64 - -- set_fact: - repodir_ppc64: "{{ repo_ppc64.stdout_lines[-1] }}" - -- name: Install the repo (ppc64) - yum_repository: - name: "fake-ppc64" - description: "fake-ppc64" - baseurl: "file://{{ repodir_ppc64 }}" - gpgcheck: no -# ============================================================================ -- name: Install foo-1.0-1 - yum: - name: foo-1.0-1 - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-1 again - yum: - name: foo-1.0-1 - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1:1.0-2 - yum: - name: "foo-1:1.0-2.{{ ansible_architecture }}" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" - -- name: Remove foo - yum: - name: foo - state: absent -# ============================================================================ -- name: Install 1:foo-1.0-2 - yum: - name: "1:foo-1.0-2.{{ ansible_architecture }}" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-2 again - yum: - name: foo-1.0-2 - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Update to the latest foo - yum: - name: foo - state: latest - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.1-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-1 from a file (higher version is already installed) - yum: - name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.1-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" - -- name: Remove foo - yum: - name: foo - state: absent -# ============================================================================ -- name: Install foo-1.0-1 from a file - yum: - name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-1 from a file again - yum: - name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-2 from a file - yum: - name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Install foo-1.0-2 from a file again - yum: - name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm" - state: present - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Try to downgrade foo without allow_downgrade being set - yum: - name: foo-1.0-1 - state: present - allow_downgrade: no - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-2')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Downgrade foo - yum: - name: foo-1.0-1 - state: present - allow_downgrade: yes - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Update foo with update_only set - yum: - name: foo - state: latest - update_only: yes - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.1-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" - -- name: Remove foo - yum: - name: foo - state: absent -# ============================================================================ -- name: Try to update foo which is not installed, update_only is set - yum: - name: foo - state: latest - update_only: yes - register: yum_result - ignore_errors: yes - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - ignore_errors: yes - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 1" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Try to install incompatible arch - yum: - name: "{{ repodir_ppc64 }}/foo-1.0-1.ppc64.rpm" - state: present - register: yum_result - ignore_errors: yes - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - ignore_errors: yes - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 1" - - "yum_result.rc == 1" - - "not yum_result.changed" - - "yum_result|failed" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ -- name: Make sure latest foo is installed - yum: - name: foo - state: latest - -- name: Downgrade foo using rpm file - yum: - name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" - state: present - allow_downgrade: yes - register: yum_result - -- name: Check foo with rpm - shell: rpm -q foo - register: rpm_result - -- name: Verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout.startswith('foo-1.0-1')" - -- name: Verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" -# ============================================================================ - block: - - name: make sure foo is not installed - yum: - name: foo - state: absent - - - name: install foo both archs - yum: - name: "{{ item }}" - state: present - with_items: - - "{{ repodir }}/foo-1.1-1.x86_64.rpm" - - "{{ repodir_i686 }}/foo-1.1-1.i686.rpm" - - - name: try to install lower version of foo from rpm file, without allow_downgrade, just one arch - yum: - name: "{{ repodir_i686 }}/foo-1.0-1.i686.rpm" - state: present - register: yum_result - - - name: check foo with rpm - shell: rpm -q foo - register: rpm_result - - - name: verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "not yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout_lines[0].startswith('foo-1.1-1')" - - "rpm_result.stdout_lines[1].startswith('foo-1.1-1')" - - - name: verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" - when: ansible_architecture == "x86_64" -# ============================================================================ -- block: - - name: make sure foo is not installed - yum: - name: foo - state: absent - - - name: install foo both archs - yum: - name: "{{ item }}" - state: present - with_items: - - "{{ repodir }}/foo-1.0-1.x86_64.rpm" - - "{{ repodir_i686 }}/foo-1.0-1.i686.rpm" - - - name: Update both arch in one task using rpm files - yum: - name: "{{ repodir }}/foo-1.1-1.x86_64.rpm,{{ repodir_i686 }}/foo-1.1-1.i686.rpm" - state: present - register: yum_result - - - name: check foo with rpm - shell: rpm -q foo - register: rpm_result - - - name: verify installation - assert: - that: - - "rpm_result.rc == 0" - - "yum_result.rc == 0" - - "yum_result.changed" - - "not yum_result|failed" - - "rpm_result.stdout_lines[0].startswith('foo-1.1-1')" - - "rpm_result.stdout_lines[1].startswith('foo-1.1-1')" - - - name: verify yum module outputs - assert: - that: - - "'changed' in yum_result" - - "'msg' in yum_result" - - "'rc' in yum_result" - - "'results' in yum_result" - when: ansible_architecture == "x86_64" -# ============================================================================ + - name: Install foo-1.0-1 + yum: + name: foo-1.0-1 + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-1 again + yum: + name: foo-1.0-1 + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1:1.0-2 + yum: + name: "foo-1:1.0-2.{{ ansible_architecture }}" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + + - name: Remove foo + yum: + name: foo + state: absent + # ============================================================================ + - name: Install 1:foo-1.0-2 + yum: + name: "1:foo-1.0-2.{{ ansible_architecture }}" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-2 again + yum: + name: foo-1.0-2 + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Update to the latest foo + yum: + name: foo + state: latest + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.1-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-1 from a file (higher version is already installed) + yum: + name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.1-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + + - name: Remove foo + yum: + name: foo + state: absent + # ============================================================================ + - name: Install foo-1.0-1 from a file + yum: + name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-1 from a file again + yum: + name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-2 from a file + yum: + name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Install foo-1.0-2 from a file again + yum: + name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm" + state: present + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Try to downgrade foo without allow_downgrade being set + yum: + name: foo-1.0-1 + state: present + allow_downgrade: no + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-2')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Downgrade foo + yum: + name: foo-1.0-1 + state: present + allow_downgrade: yes + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Update foo with update_only set + yum: + name: foo + state: latest + update_only: yes + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.1-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + + - name: Remove foo + yum: + name: foo + state: absent + # ============================================================================ + - name: Try to update foo which is not installed, update_only is set + yum: + name: foo + state: latest + update_only: yes + register: yum_result + ignore_errors: yes + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + ignore_errors: yes + + - name: Verify installation + assert: + that: + - "rpm_result.rc == 1" + - "yum_result.rc == 0" + - "not yum_result.changed" + - "not yum_result is failed" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Try to install incompatible arch + yum: + name: "{{ repodir_ppc64 }}/foo-1.0-1.ppc64.rpm" + state: present + register: yum_result + ignore_errors: yes + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + ignore_errors: yes + + - name: Verify installation + assert: + that: + - "rpm_result.rc == 1" + - "yum_result.rc == 1" + - "not yum_result.changed" + - "yum_result is failed" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - name: Make sure latest foo is installed + yum: + name: foo + state: latest + + - name: Downgrade foo using rpm file + yum: + name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm" + state: present + allow_downgrade: yes + register: yum_result + + - name: Check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: Verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout.startswith('foo-1.0-1')" + + - name: Verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + # ============================================================================ + - block: + - name: make sure foo is not installed + yum: + name: foo + state: absent + + - name: install foo both archs + yum: + name: "{{ item }}" + state: present + with_items: + - "{{ repodir }}/foo-1.1-1.x86_64.rpm" + - "{{ repodir_i686 }}/foo-1.1-1.i686.rpm" + + - name: try to install lower version of foo from rpm file, without allow_downgrade, just one arch + yum: + name: "{{ repodir_i686 }}/foo-1.0-1.i686.rpm" + state: present + register: yum_result + + - name: check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: verify installation + assert: + that: + - "not yum_result.changed" + - "rpm_result.stdout_lines[0].startswith('foo-1.1-1')" + - "rpm_result.stdout_lines[1].startswith('foo-1.1-1')" + + - name: verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + when: ansible_architecture == "x86_64" + # ============================================================================ + - block: + - name: make sure foo is not installed + yum: + name: foo + state: absent + + - name: install foo both archs + yum: + name: "{{ item }}" + state: present + with_items: + - "{{ repodir }}/foo-1.0-1.x86_64.rpm" + - "{{ repodir_i686 }}/foo-1.0-1.i686.rpm" + + - name: Update both arch in one task using rpm files + yum: + name: "{{ repodir }}/foo-1.1-1.x86_64.rpm,{{ repodir_i686 }}/foo-1.1-1.i686.rpm" + state: present + register: yum_result + + - name: check foo with rpm + shell: rpm -q foo + register: rpm_result + + - name: verify installation + assert: + that: + - "yum_result.changed" + - "rpm_result.stdout_lines[0].startswith('foo-1.1-1')" + - "rpm_result.stdout_lines[1].startswith('foo-1.1-1')" + + - name: verify yum module outputs + assert: + that: + - "'msg' in yum_result" + - "'rc' in yum_result" + - "'results' in yum_result" + when: ansible_architecture == "x86_64" + # ============================================================================ + always: + - name: Clean up + yum: + name: foo + state: absent |