You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/yum_repository/tasks/main.yml

200 lines
6.5 KiB
YAML

- name: Run tests
when: ansible_facts.distribution in ['CentOS', 'Fedora']
block:
- name: ensure {{ yum_repository_test_package }} is uninstalled to begin with
action: "{{ ansible_facts.pkg_mgr }}"
args:
name: "{{ yum_repository_test_package }}"
state: absent
- name: disable {{ yum_repository_test_repo.name }}
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
state: absent
- name: disable {{ yum_repository_test_repo.name }} (Idempotant)
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
state: absent
register: test_repo_remove
- name: check return values
assert:
that:
- "test_repo_remove.repo == yum_repository_test_repo.name"
- "test_repo_remove.state == 'absent'"
- name: check Idempotant
assert:
that: not test_repo_remove.changed
- name: install {{ yum_repository_test_package }}, which should fail
action: "{{ ansible_facts.pkg_mgr }}"
args:
name: "{{ yum_repository_test_package }}"
state: present
ignore_errors: yes
register: test_package_result
- name: check that install failed
assert:
that:
- test_package_result.failed
- test_package_result.msg in expected_messages
vars:
expected_messages:
- No package matching '{{ yum_repository_test_package }}' found available, installed or updated
- Failed to install some of the specified packages
- name: re-add {{ yum_repository_test_repo.name }}
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
description: "{{ yum_repository_test_repo.description }}"
baseurl: "{{ yum_repository_test_repo.baseurl }}"
gpgcheck: no
state: present
register: test_repo_add
- name: check return values
assert:
that:
- test_repo_add.repo == yum_repository_test_repo.name
- test_repo_add.state == 'present'
- name: get repolist
shell: yum repolist
register: repolist
until: repolist.rc == 0
retries: 5
- name: ensure {{ yum_repository_test_repo.name }} was added
assert:
that:
- yum_repository_test_repo.name in repolist.stdout
- test_repo_add.changed
- name: install {{ yum_repository_test_package }}
action: "{{ ansible_facts.pkg_mgr }}"
args:
name: "{{ yum_repository_test_package }}"
state: present
register: test_package_result
- name: check that {{ yum_repository_test_package }} was successfully installed
assert:
that:
- test_package_result.changed
- name: remove {{ yum_repository_test_package }}
action: "{{ ansible_facts.pkg_mgr }}"
args:
name: "{{ yum_repository_test_package }}"
state: absent
- name: change configuration of {{ yum_repository_test_repo.name }} repo
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
baseurl: "{{ yum_repository_test_repo.baseurl }}"
description: New description
async: no
countme: yes
enablegroups: no
file: "{{ yum_repository_test_repo.name ~ 2 }}"
ip_resolve: 4
keepalive: no
module_hotfixes: no
register: test_repo_add1
- name: Get repo file contents
slurp:
path: "{{ '/etc/yum.repos.d/' ~ yum_repository_test_repo.name ~ '2.repo' }}"
register: slurp
- name: check that options are correctly getting written to the repo file
assert:
that:
- "'async = 0' in repo_file_contents"
- "'name = New description' in repo_file_contents"
- "'countme = 1' in repo_file_contents"
- "'enablegroups = 0' in repo_file_contents"
- "'ip_resolve = 4' in repo_file_contents"
- "'keepalive = 0' in repo_file_contents"
- "'module_hotfixes = 0' in repo_file_contents"
vars:
repo_file_contents: "{{ slurp.content | b64decode }}"
- name: check new config doesn't change (Idempotant)
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
baseurl: "{{ yum_repository_test_repo.baseurl }}"
description: New description
async: no
countme: yes
enablegroups: no
file: "{{ yum_repository_test_repo.name ~ 2 }}"
ip_resolve: 4
keepalive: no
module_hotfixes: no
register: test_repo_add2
- name: check Idempotant
assert:
that:
- test_repo_add1 is changed
- test_repo_add2 is not changed
- name: re-enable the {{ yum_repository_test_repo.name }} repo
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
description: "{{ yum_repository_test_repo.description }}"
baseurl: "{{ yum_repository_test_repo.baseurl }}"
state: present
- name: re-enable the {{ yum_repository_test_repo.name }} repo (Idempotant)
yum_repository:
name: "{{ yum_repository_test_repo.name }}"
description: "{{ yum_repository_test_repo.description }}"
baseurl: "{{ yum_repository_test_repo.baseurl }}"
state: present
register: test_repo_add
- name: check Idempotant
assert:
that: test_repo_add is not changed
- name: Test list options
yum_repository:
name: listtest
description: Testing list feature
baseurl:
- "{{ yum_repository_test_repo.baseurl }}"
- "{{ yum_repository_test_repo.baseurl ~ 'another_baseurl' }}"
gpgkey:
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_facts.distribution_major_version }}
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG2-KEY-EPEL-{{ ansible_facts.distribution_major_version }}
exclude:
- aaa
- bbb
includepkgs:
- ccc
- ddd
notify: remove listtest repo
- name: Get repo file
slurp:
path: /etc/yum.repos.d/listtest.repo
register: slurp
- name: Assert that lists were properly inserted
assert:
that:
- yum_repository_test_repo.baseurl in repofile
- another_baseurl in repofile
- "'RPM-GPG-KEY-EPEL' in repofile"
- "'RPM-GPG2-KEY-EPEL' in repofile"
- "'aaa bbb' in repofile"
- "'ccc ddd' in repofile"
vars:
repofile: "{{ slurp.content | b64decode }}"
another_baseurl: "{{ yum_repository_test_repo.baseurl ~ 'another_baseurl' }}"