summaryrefslogtreecommitdiff
path: root/test/integration/targets/yum
diff options
context:
space:
mode:
authorMartin Krizek <martin.krizek@gmail.com>2017-11-21 09:40:58 +0100
committerGitHub <noreply@github.com>2017-11-21 09:40:58 +0100
commit3c1fb9b54742f146fd34b1ad4534e703aeee3c48 (patch)
tree506a28783e2251bca0ce4c38eb0d2251342209e6 /test/integration/targets/yum
parent0ddf092ae3ab8c484cc07d095c4007fda7f491b2 (diff)
downloadansible-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/aliases2
-rw-r--r--test/integration/targets/yum/files/create-repo.py41
-rw-r--r--test/integration/targets/yum/meta/main.yml1
-rw-r--r--test/integration/targets/yum/tasks/repo.yml1140
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