|
|
|
- block:
|
|
|
|
- name: Install foo package version 1.0.0
|
|
|
|
apt:
|
|
|
|
name: foo=1.0.0
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
register: apt_result
|
|
|
|
|
|
|
|
- name: Check install with dpkg
|
|
|
|
shell: dpkg-query -l foo
|
|
|
|
register: dpkg_result
|
|
|
|
|
|
|
|
- name: Check if install was successful
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "apt_result is success"
|
|
|
|
- "dpkg_result is success"
|
|
|
|
- "'1.0.0' in dpkg_result.stdout"
|
|
|
|
|
|
|
|
- name: Update to foo version 1.0.1
|
|
|
|
apt:
|
|
|
|
name: foo
|
|
|
|
state: latest
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
register: apt_result
|
|
|
|
|
|
|
|
- name: Check install with dpkg
|
|
|
|
shell: dpkg-query -l foo
|
|
|
|
register: dpkg_result
|
|
|
|
|
|
|
|
- name: Check if install was successful
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "apt_result is success"
|
|
|
|
- "dpkg_result is success"
|
|
|
|
- "'1.0.1' in dpkg_result.stdout"
|
|
|
|
|
|
|
|
# https://github.com/ansible/ansible/issues/35900
|
|
|
|
- name: Clean up
|
|
|
|
apt:
|
|
|
|
name: foo
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: Install foobar, installs foo as a dependency
|
|
|
|
apt:
|
|
|
|
name: foobar=1.0.0
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
|
|
|
|
- name: Upgrade foobar to a version which does not depend on foo, autoremove should remove foo
|
|
|
|
apt:
|
|
|
|
upgrade: dist
|
|
|
|
autoremove: yes
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
|
|
|
|
- name: Check foo with dpkg
|
|
|
|
shell: dpkg-query -l foo
|
|
|
|
register: dpkg_result
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
- name: Check that foo was removed by autoremove
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "dpkg_result is failed"
|
|
|
|
|
|
|
|
# https://github.com/ansible/ansible/issues/26298
|
|
|
|
- name: Clean up
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: absent
|
|
|
|
with_items:
|
|
|
|
- foo
|
|
|
|
- foobar
|
|
|
|
|
|
|
|
- name: Install foobar, installs foo as a dependency
|
|
|
|
apt:
|
|
|
|
name: foobar=1.0.0
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
|
|
|
|
- name: Upgrade foobar to a version which does not depend on foo
|
|
|
|
apt:
|
|
|
|
upgrade: dist
|
|
|
|
force: yes # workaround for --allow-unauthenticated used along with upgrade
|
|
|
|
|
|
|
|
- name: autoremove should remove foo
|
|
|
|
apt:
|
|
|
|
autoremove: yes
|
|
|
|
register: autoremove_result
|
|
|
|
|
|
|
|
- name: Check that autoremove correctly reports changed=True
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "autoremove_result is changed"
|
|
|
|
|
|
|
|
- name: Check foo with dpkg
|
|
|
|
shell: dpkg-query -l foo
|
|
|
|
register: dpkg_result
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
- name: Check that foo was removed by autoremove
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "dpkg_result is failed"
|
|
|
|
|
|
|
|
- name: Nothing to autoremove
|
|
|
|
apt:
|
|
|
|
autoremove: yes
|
|
|
|
register: autoremove_result
|
|
|
|
|
|
|
|
- name: Check that autoremove correctly reports changed=False
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "autoremove_result is not changed"
|
|
|
|
|
|
|
|
- name: Create a fake .deb file for autoclean to remove
|
|
|
|
file:
|
|
|
|
name: /var/cache/apt/archives/python3-q_2.4-1_all.deb
|
|
|
|
state: touch
|
|
|
|
|
|
|
|
- name: autoclean fake .deb file
|
|
|
|
apt:
|
|
|
|
autoclean: yes
|
|
|
|
register: autoclean_result
|
|
|
|
|
|
|
|
- name: Check if the .deb file exists
|
|
|
|
stat:
|
|
|
|
path: /var/cache/apt/archives/python3-q_2.4-1_all.deb
|
|
|
|
register: stat_result
|
|
|
|
|
|
|
|
- name: Check that autoclean correctly reports changed=True and file was removed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "autoclean_result is changed"
|
|
|
|
- "not stat_result.stat.exists"
|
|
|
|
|
|
|
|
- name: Nothing to autoclean
|
|
|
|
apt:
|
|
|
|
autoclean: yes
|
|
|
|
register: autoclean_result
|
|
|
|
|
|
|
|
- name: Check that autoclean correctly reports changed=False
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "autoclean_result is not changed"
|
|
|
|
|
|
|
|
# https://github.com/ansible/ansible/issues/30638
|
|
|
|
- name: Fail to install foo=1.0.1 since foo is not installed and only_upgrade is set
|
|
|
|
apt:
|
|
|
|
name: foo=1.0.1
|
|
|
|
state: installed
|
|
|
|
only_upgrade: yes
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
ignore_errors: yes
|
|
|
|
register: apt_result
|
|
|
|
|
|
|
|
- name: Check that foo was not upgraded
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "apt_result is not changed"
|
|
|
|
|
|
|
|
- apt:
|
|
|
|
name: foo=1.0.0
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
|
|
|
|
- name: Upgrade foo to 1.0.1
|
|
|
|
apt:
|
|
|
|
name: foo=1.0.1
|
|
|
|
state: installed
|
|
|
|
only_upgrade: yes
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
register: apt_result
|
|
|
|
|
|
|
|
- name: Check install with dpkg
|
|
|
|
shell: dpkg-query -l foo
|
|
|
|
register: dpkg_result
|
|
|
|
|
|
|
|
- name: Check if install was successful
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "apt_result is success"
|
|
|
|
- "dpkg_result is success"
|
|
|
|
- "'1.0.1' in dpkg_result.stdout"
|
|
|
|
|
|
|
|
always:
|
|
|
|
- name: Clean up
|
|
|
|
apt:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: absent
|
|
|
|
allow_unauthenticated: yes
|
|
|
|
with_items:
|
|
|
|
- foo
|
|
|
|
- foobar
|