mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
introduce module_utils.urls.fetch_file as a wrapper to download and save files (#19172)
* module_utils.urls: add fetch_file function * apt: use fetch_file instead of own download() * unarchive: use fetch_file instead of own codecopy * apt: add test for deb=http://… * unarchive: add test for a remote file download and unarchive * yum: replace fetch_rpm_from_url by fetch_file * use NamedTemporaryFile * don't add a dot to fileext, it's already there
This commit is contained in:
committed by
Martin Krizek
parent
c8ed5c29e9
commit
7c66c90afc
@@ -8,6 +8,16 @@
|
||||
python_apt: python3-apt
|
||||
when: ansible_python_version is version('3', '>=')
|
||||
|
||||
- name: use Debian mirror
|
||||
set_fact:
|
||||
distro_mirror: http://ftp.debian.org/debian
|
||||
when: ansible_distribution == 'Debian'
|
||||
|
||||
- name: use Ubuntu mirror
|
||||
set_fact:
|
||||
distro_mirror: http://archive.ubuntu.com/ubuntu
|
||||
when: ansible_distribution == 'Ubuntu'
|
||||
|
||||
# UNINSTALL 'python-apt'
|
||||
# The `apt` module has the smarts to auto-install `python-apt`. To test, we
|
||||
# will first uninstall `python-apt`.
|
||||
@@ -132,6 +142,18 @@
|
||||
- name: uninstall hello with apt
|
||||
apt: pkg=hello state=absent purge=yes
|
||||
|
||||
- name: install deb file from URL
|
||||
apt: deb="{{ distro_mirror }}/pool/main/h/hello/hello_{{ hello_version.stdout }}_{{ hello_architecture.stdout }}.deb"
|
||||
register: apt_url
|
||||
|
||||
- name: verify installation of hello
|
||||
assert:
|
||||
that:
|
||||
- "apt_url.changed"
|
||||
|
||||
- name: uninstall hello with apt
|
||||
apt: pkg=hello state=absent purge=yes
|
||||
|
||||
- name: force install of deb
|
||||
apt: deb="/var/cache/apt/archives/hello_{{ hello_version.stdout }}_{{ hello_architecture.stdout }}.deb" force=true
|
||||
register: dpkg_force
|
||||
|
||||
@@ -590,3 +590,23 @@
|
||||
|
||||
- name: remove our tar.gz unarchive destination
|
||||
file: path={{ output_dir }}/test-unarchive-tar-gz state=absent
|
||||
|
||||
# Test downloading a file before unarchiving it
|
||||
- name: create our unarchive destination
|
||||
file: path={{output_dir}}/test-unarchive-tar-gz state=directory
|
||||
|
||||
- name: unarchive a tar from an URL
|
||||
unarchive:
|
||||
src: "https://releases.ansible.com/ansible/ansible-latest.tar.gz"
|
||||
dest: "{{ output_dir }}/test-unarchive-tar-gz"
|
||||
mode: "0700"
|
||||
remote_src: yes
|
||||
register: unarchive13
|
||||
|
||||
- name: Test that unarchive succeeded
|
||||
assert:
|
||||
that:
|
||||
- "unarchive13.changed == true"
|
||||
|
||||
- name: remove our tar.gz unarchive destination
|
||||
file: path={{ output_dir }}/test-unarchive-tar-gz state=absent
|
||||
|
||||
Reference in New Issue
Block a user