mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
66adabfd42
* implementing disable_excludes * add check for yum version * limit choices * add testcases for disable_exclude * fix formating * add documentation * syntax fix for test case * fix indentation * need to ignore errors when we want to do a test that fails * test disable_excludes with zip and not sos * add tests for yum < 3.4 not supported * fix formating * centos 6.1 does not support map * drop unsupported selectattr * cleanup testcases * fix test cases beloging to wrong test scenarion (propper when) * evaluate expression * minor test fixes * check output of msg
658 lines
No EOL
15 KiB
YAML
658 lines
No EOL
15 KiB
YAML
# UNINSTALL
|
|
- name: uninstall sos
|
|
yum: name=sos state=removed
|
|
register: yum_result
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
ignore_errors: True
|
|
register: rpm_result
|
|
|
|
- name: verify uninstallation of sos
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "rpm_result is failed"
|
|
|
|
# UNINSTALL AGAIN
|
|
- name: uninstall sos again in check mode
|
|
yum: name=sos state=removed
|
|
check_mode: true
|
|
register: yum_result
|
|
|
|
- name: verify no change on re-uninstall in check mode
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
- name: uninstall sos again
|
|
yum: name=sos state=removed
|
|
register: yum_result
|
|
|
|
- name: verify no change on re-uninstall
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
# INSTALL
|
|
- name: install sos in check mode
|
|
yum: name=sos state=present
|
|
check_mode: true
|
|
register: yum_result
|
|
|
|
- name: verify installation of sos in check mode
|
|
assert:
|
|
that:
|
|
- "yum_result is changed"
|
|
|
|
- name: install sos
|
|
yum: name=sos state=present
|
|
register: yum_result
|
|
|
|
- name: verify installation of sos
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
|
|
# INSTALL AGAIN
|
|
- name: install sos again in check mode
|
|
yum: name=sos state=present
|
|
check_mode: true
|
|
register: yum_result
|
|
- name: verify no change on second install in check mode
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
- name: install sos again
|
|
yum: name=sos state=present
|
|
register: yum_result
|
|
- name: verify no change on second install
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
# INSTALL AGAIN WITH LATEST
|
|
- name: install sos again with state latest in check mode
|
|
yum: name=sos state=latest
|
|
check_mode: true
|
|
register: yum_result
|
|
- name: verify install sos again with state latest in check mode
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
- name: install sos again with state latest idempotence
|
|
yum: name=sos state=latest
|
|
register: yum_result
|
|
- name: verify install sos again with state latest idempotence
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
# INSTALL WITH LATEST
|
|
- name: uninstall sos
|
|
yum: name=sos state=removed
|
|
register: yum_result
|
|
- name: verify uninstall sos
|
|
assert:
|
|
that:
|
|
- "yum_result is successful"
|
|
|
|
- name: install sos with state latest in check mode
|
|
yum: name=sos state=latest
|
|
check_mode: true
|
|
register: yum_result
|
|
- name: verify install sos with state latest in check mode
|
|
assert:
|
|
that:
|
|
- "yum_result is changed"
|
|
|
|
- name: install sos with state latest
|
|
yum: name=sos state=latest
|
|
register: yum_result
|
|
- name: verify install sos with state latest
|
|
assert:
|
|
that:
|
|
- "yum_result is changed"
|
|
|
|
- name: install sos with state latest idempotence
|
|
yum: name=sos state=latest
|
|
register: yum_result
|
|
- name: verify install sos with state latest idempotence
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
# Multiple packages
|
|
- name: uninstall sos and bc
|
|
yum: name=sos,bc state=removed
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
ignore_errors: True
|
|
register: rpm_sos_result
|
|
|
|
- name: check bc with rpm
|
|
shell: rpm -q bc
|
|
ignore_errors: True
|
|
register: rpm_bc_result
|
|
|
|
- name: verify packages installed
|
|
assert:
|
|
that:
|
|
- "rpm_sos_result is failed"
|
|
- "rpm_bc_result is failed"
|
|
|
|
- name: install sos and bc as comma separated
|
|
yum: name=sos,bc state=present
|
|
register: yum_result
|
|
|
|
- name: verify packages installed
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
|
|
- name: check bc with rpm
|
|
shell: rpm -q bc
|
|
|
|
- name: uninstall sos and bc
|
|
yum: name=sos,bc state=removed
|
|
register: yum_result
|
|
|
|
- name: install sos and bc as list
|
|
yum:
|
|
name:
|
|
- sos
|
|
- bc
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify packages installed
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
|
|
- name: check bc with rpm
|
|
shell: rpm -q bc
|
|
|
|
- name: uninstall sos and bc
|
|
yum: name=sos,bc state=removed
|
|
register: yum_result
|
|
|
|
- name: install sos and bc as comma separated with spaces
|
|
yum:
|
|
name: "sos, bc"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify packages installed
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos
|
|
|
|
- name: check bc with rpm
|
|
shell: rpm -q bc
|
|
|
|
- name: uninstall sos and bc
|
|
yum: name=sos,bc state=removed
|
|
|
|
- name: install non-existent rpm
|
|
yum: 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 is failed
|
|
|
|
# Install in installroot='/'
|
|
- name: install sos
|
|
yum: name=sos state=present installroot='/'
|
|
register: yum_result
|
|
|
|
- name: verify installation of sos
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: check sos with rpm
|
|
shell: rpm -q sos --root=/
|
|
|
|
- name: uninstall sos
|
|
yum:
|
|
name: sos
|
|
installroot: '/'
|
|
state: removed
|
|
register: yum_result
|
|
|
|
- name: install group
|
|
yum:
|
|
name: "@Development Tools"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify installation of the group
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: install the group again
|
|
yum:
|
|
name: "@Development Tools"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify nothing changed
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "not yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: install the group again but also with a package that is not yet installed
|
|
yum:
|
|
name:
|
|
- "@Development Tools"
|
|
- sos
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify sos is installed
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: try to install the group again, with --check to check 'changed'
|
|
yum:
|
|
name: "@Development Tools"
|
|
state: present
|
|
check_mode: yes
|
|
register: yum_result
|
|
|
|
- name: verify nothing changed
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: try to install non existing group
|
|
yum:
|
|
name: "@non-existing-group"
|
|
state: present
|
|
register: yum_result
|
|
ignore_errors: True
|
|
|
|
- name: verify installation of the non existing group failed
|
|
assert:
|
|
that:
|
|
- "yum_result is failed"
|
|
- "not yum_result is changed"
|
|
- "yum_result is failed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: try to install non existing file
|
|
yum:
|
|
name: /tmp/non-existing-1.0.0.fc26.noarch.rpm
|
|
state: present
|
|
register: yum_result
|
|
ignore_errors: yes
|
|
|
|
- name: verify installation failed
|
|
assert:
|
|
that:
|
|
- "yum_result is failed"
|
|
- "not yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
|
|
- name: try to install from non existing url
|
|
yum:
|
|
name: http://non-existing.com/non-existing-1.0.0.fc26.noarch.rpm
|
|
state: present
|
|
register: yum_result
|
|
ignore_errors: yes
|
|
|
|
- name: verify installation failed
|
|
assert:
|
|
that:
|
|
- "yum_result is failed"
|
|
- "not yum_result is changed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
|
|
- name: use latest to install httpd
|
|
yum:
|
|
name: httpd
|
|
state: latest
|
|
register: yum_result
|
|
|
|
- name: verify httpd was installed
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
|
|
- name: uninstall httpd
|
|
yum:
|
|
name: httpd
|
|
state: removed
|
|
|
|
- name: update httpd only if it exists
|
|
yum:
|
|
name: httpd
|
|
state: latest
|
|
update_only: yes
|
|
register: yum_result
|
|
|
|
- name: verify httpd not installed
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
- "'Packages providing httpd not installed due to update_only specified' in yum_result.results"
|
|
|
|
- name: try to install not compatible arch rpm, should fail
|
|
yum:
|
|
name: http://download.fedoraproject.org/pub/epel/7/ppc64le/Packages/b/banner-1.3.4-3.el7.ppc64le.rpm
|
|
state: present
|
|
register: yum_result
|
|
ignore_errors: True
|
|
|
|
- name: verify that yum failed
|
|
assert:
|
|
that:
|
|
- "not yum_result is changed"
|
|
- "yum_result is failed"
|
|
|
|
# setup for testing installing an RPM from url
|
|
|
|
- set_fact:
|
|
pkg_name: fpaste
|
|
|
|
- name: cleanup
|
|
yum:
|
|
name: "{{ pkg_name }}"
|
|
state: absent
|
|
|
|
- set_fact:
|
|
pkg_url: http://download.fedoraproject.org/pub/epel/7/x86_64/Packages/f/fpaste-0.3.7.4.1-1.el7.noarch.rpm
|
|
# setup end
|
|
|
|
- name: download an rpm
|
|
get_url:
|
|
url: "{{ pkg_url }}"
|
|
dest: "/tmp/{{ pkg_name }}.rpm"
|
|
|
|
- name: install the downloaded rpm
|
|
yum:
|
|
name: "/tmp/{{ pkg_name }}.rpm"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify installation
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
- "yum_result is not failed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: install the downloaded rpm again
|
|
yum:
|
|
name: "/tmp/{{ pkg_name }}.rpm"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify installation
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "not yum_result is changed"
|
|
- "yum_result is not failed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: clean up
|
|
yum:
|
|
name: "{{ pkg_name }}"
|
|
state: absent
|
|
|
|
- name: install from url
|
|
yum:
|
|
name: "{{ pkg_url }}"
|
|
state: present
|
|
register: yum_result
|
|
|
|
- name: verify installation
|
|
assert:
|
|
that:
|
|
- "yum_result is success"
|
|
- "yum_result is changed"
|
|
- "yum_result is not failed"
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'changed' in yum_result"
|
|
- "'msg' in yum_result"
|
|
- "'results' in yum_result"
|
|
|
|
- name: Create a temp RPM file which does not contain nevra information
|
|
file:
|
|
name: "/tmp/non_existent_pkg.rpm"
|
|
state: touch
|
|
|
|
- name: Try installing RPM file which does not contain nevra information
|
|
yum:
|
|
name: "/tmp/non_existent_pkg.rpm"
|
|
state: present
|
|
register: no_nevra_info_result
|
|
ignore_errors: yes
|
|
|
|
- name: Verify RPM failed to install
|
|
assert:
|
|
that:
|
|
- "'changed' in no_nevra_info_result"
|
|
- "'msg' in no_nevra_info_result"
|
|
- "'Failed to get nevra information from RPM package' in no_nevra_info_result.msg"
|
|
|
|
- name: Delete a temp RPM file
|
|
file:
|
|
name: "/tmp/non_existent_pkg.rpm"
|
|
state: absent
|
|
|
|
- name: get yum version
|
|
yum:
|
|
list: yum
|
|
register: yum_version
|
|
|
|
- name: set yum_version of installed version
|
|
set_fact:
|
|
yum_version: "{%- if item.yumstate == 'installed' -%}{{ item.version }}{%- else -%}{{ yum_version }}{%- endif -%}"
|
|
with_items: "{{ yum_version.results }}"
|
|
|
|
- name: check whether yum supports disableexcludes (>= 3.4)
|
|
set_fact:
|
|
supports_disable_excludes: "{{ yum_version is version_compare('3.4.0', '>=') }}"
|
|
|
|
- name: uninstall zip
|
|
yum: name=zip state=removed
|
|
|
|
- name: check zip with rpm
|
|
shell: rpm -q zip
|
|
ignore_errors: True
|
|
register: rpm_zip_result
|
|
|
|
- name: verify zip is uninstalled
|
|
assert:
|
|
that:
|
|
- "rpm_zip_result is failed"
|
|
|
|
- name: exclude zip
|
|
lineinfile:
|
|
dest: /etc/yum.conf
|
|
regexp: (^exclude=)(.)*
|
|
line: "exclude=zip*"
|
|
state: present
|
|
|
|
# begin test case where disable_excludes is supported
|
|
- name: Try install zip without disable_excludes
|
|
yum: name=zip state=latest
|
|
register: yum_zip_result
|
|
ignore_errors: True
|
|
when: supports_disable_excludes
|
|
|
|
- name: verify zip did not install because it is in exclude list
|
|
assert:
|
|
that:
|
|
- "yum_zip_result is failed"
|
|
when: supports_disable_excludes
|
|
|
|
- name: install zip with disable_excludes
|
|
yum: name=zip state=latest disable_excludes=all
|
|
register: yum_zip_result_using_excludes
|
|
when: supports_disable_excludes
|
|
|
|
- name: verify zip did install using disable_excludes=all
|
|
assert:
|
|
that:
|
|
- "yum_zip_result_using_excludes is success"
|
|
- "yum_zip_result_using_excludes is changed"
|
|
- "yum_zip_result_using_excludes is not failed"
|
|
when: supports_disable_excludes
|
|
|
|
- name: remove exclude zip (cleanup yum.conf)
|
|
lineinfile:
|
|
dest: /etc/yum.conf
|
|
regexp: (^exclude=zip*)
|
|
line: "exclude="
|
|
state: present
|
|
when: supports_disable_excludes
|
|
# end test case where disable_excludes is supported
|
|
|
|
# begin test case where disable_excludes is not supported
|
|
- name: Try install zip with disable_excludes
|
|
yum: name=zip state=latest disable_excludes=all
|
|
register: yum_fail_zip_result_old_yum
|
|
ignore_errors: True
|
|
when: not supports_disable_excludes
|
|
|
|
- name: verify packages did not install because yum version is unsupported
|
|
assert:
|
|
that:
|
|
- "yum_fail_zip_result_old_yum is failed"
|
|
when: not supports_disable_excludes
|
|
|
|
- name: verify yum module outputs
|
|
assert:
|
|
that:
|
|
- "'is available in yum version 3.4 and onwards.' in yum_fail_zip_result_old_yum.msg"
|
|
when: not supports_disable_excludes
|
|
|
|
- name: remove exclude zip (cleanup yum.conf)
|
|
lineinfile:
|
|
dest: /etc/yum.conf
|
|
regexp: (^exclude=zip*)
|
|
line: "exclude="
|
|
state: present
|
|
when: not supports_disable_excludes
|
|
|
|
- name: install zip (bring test env in same state as when testing started)
|
|
yum: name=zip state=latest
|
|
register: yum_zip_result_old_yum
|
|
when: not supports_disable_excludes
|
|
|
|
- name: verify zip installed
|
|
assert:
|
|
that:
|
|
- "yum_zip_result_old_yum is success"
|
|
- "yum_zip_result_old_yum is changed"
|
|
- "yum_zip_result_old_yum is not failed"
|
|
when: not supports_disable_excludes
|
|
# end test case where disable_excludes is not supported |