apt: disable ubuntu repos to not change test env

(cherry picked from commit 0c86df33a4)
pull/48736/head
Martin Krizek 6 years ago committed by Toshio Kuratomi
parent 373e91fcf0
commit 82baf1c746

@ -1,2 +1 @@
apt_foreign_arch: i386 apt_foreign_arch: i386
hello_old_version: 2.6-1

@ -16,16 +16,6 @@
# along with Ansible. If not, see <http://www.gnu.org/licenses/>. # along with Ansible. If not, see <http://www.gnu.org/licenses/>.
- block: - block:
- block:
- include: 'repo.yml'
always:
- apt_repository:
repo: "deb file:{{ repodir }} ./"
state: absent
- file:
name: "{{ repodir }}"
state: absent
- include: 'apt.yml' - include: 'apt.yml'
- include: 'apt-multiarch.yml' - include: 'apt-multiarch.yml'
@ -34,44 +24,15 @@
- include: 'apt-builddep.yml' - include: 'apt-builddep.yml'
- include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type=dist force_apt_get={{ False | bool }}" - block:
- include: 'repo.yml'
- name: Check if aptitude is installed always:
command: dpkg-query --show --showformat='${db:Status-Abbrev}' aptitude - apt_repository:
register: aptitude_status repo: "deb file:{{ repodir }} ./"
- name: Remove aptitude, if installed, to test fall-back to apt-get
apt:
pkg: aptitude
state: absent state: absent
when: - file:
- aptitude_status.stdout.find('ii') != -1 name: "{{ repodir }}"
- include: "upgrade.yml aptitude_present={{ False | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
with_items:
- { upgrade_type: safe, force_apt_get: False }
- { upgrade_type: full, force_apt_get: False }
- { upgrade_type: safe, force_apt_get: True }
- { upgrade_type: full, force_apt_get: True }
- name: (Re-)Install aptitude, run same tests again
apt:
pkg: aptitude
state: present
- include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
with_items:
- { upgrade_type: safe, force_apt_get: False }
- { upgrade_type: full, force_apt_get: False }
- { upgrade_type: safe, force_apt_get: True }
- { upgrade_type: full, force_apt_get: True }
- name: Remove aptitude if not originally present
apt:
pkg: aptitude
state: absent state: absent
when:
- aptitude_status.stdout.find('ii') == -1
when: when:
- ansible_distribution in ('Ubuntu', 'Debian') - ansible_distribution in ('Ubuntu', 'Debian')

@ -33,12 +33,64 @@
- "apt_result is success" - "apt_result is success"
- "dpkg_result is success" - "dpkg_result is success"
- "'1.0.1' in dpkg_result.stdout" - "'1.0.1' in dpkg_result.stdout"
always:
- name: Clean up
apt:
name: foo
state: absent
allow_unauthenticated: yes
# https://github.com/ansible/ansible/issues/30638
- block:
- 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
# https://github.com/ansible/ansible/issues/35900 - 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 - name: Clean up
apt: apt:
name: foo name: foo
state: absent state: absent
allow_unauthenticated: yes
# https://github.com/ansible/ansible/issues/35900
- block:
- name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
- name: Install foobar, installs foo as a dependency - name: Install foobar, installs foo as a dependency
apt: apt:
@ -61,14 +113,21 @@
that: that:
- "dpkg_result is failed" - "dpkg_result is failed"
# https://github.com/ansible/ansible/issues/26298 always:
- name: Clean up - name: Clean up
apt: apt:
name: "{{ item }}" pkg: foo,foobar
state: absent state: absent
with_items: autoclean: yes
- foo
- foobar - name: Restore ubuntu repos
command: mv /etc/apt/sources.list.backup /etc/apt/sources.list
# https://github.com/ansible/ansible/issues/26298
- block:
- name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
- name: Install foobar, installs foo as a dependency - name: Install foobar, installs foo as a dependency
apt: apt:
@ -141,50 +200,54 @@
that: that:
- "autoclean_result is not changed" - "autoclean_result is not changed"
# https://github.com/ansible/ansible/issues/30638 always:
- name: Fail to install foo=1.0.1 since foo is not installed and only_upgrade is set - name: Clean up
apt: apt:
name: foo=1.0.1 pkg: foo,foobar
state: installed state: absent
only_upgrade: yes autoclean: yes
allow_unauthenticated: yes
ignore_errors: yes
register: apt_result
- name: Check that foo was not upgraded - name: Restore ubuntu repos
assert: command: mv /etc/apt/sources.list.backup /etc/apt/sources.list
that:
- "apt_result is not changed"
- apt:
name: foo=1.0.0
allow_unauthenticated: yes
- name: Upgrade foo to 1.0.1 - name: Upgrades
block:
- include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type=dist force_apt_get={{ False | bool }}"
- name: Check if aptitude is installed
command: dpkg-query --show --showformat='${db:Status-Abbrev}' aptitude
register: aptitude_status
- name: Remove aptitude, if installed, to test fall-back to apt-get
apt: apt:
name: foo=1.0.1 pkg: aptitude
state: installed state: absent
only_upgrade: yes when:
allow_unauthenticated: yes - aptitude_status.stdout.find('ii') != -1
register: apt_result
- name: Check install with dpkg - include: "upgrade.yml aptitude_present={{ False | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
shell: dpkg-query -l foo with_items:
register: dpkg_result - { upgrade_type: safe, force_apt_get: False }
- { upgrade_type: full, force_apt_get: False }
- { upgrade_type: safe, force_apt_get: True }
- { upgrade_type: full, force_apt_get: True }
- name: Check if install was successful - name: (Re-)Install aptitude, run same tests again
assert: apt:
that: pkg: aptitude
- "apt_result is success" state: present
- "dpkg_result is success"
- "'1.0.1' in dpkg_result.stdout"
always: - include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
- name: Clean up with_items:
- { upgrade_type: safe, force_apt_get: False }
- { upgrade_type: full, force_apt_get: False }
- { upgrade_type: safe, force_apt_get: True }
- { upgrade_type: full, force_apt_get: True }
- name: Remove aptitude if not originally present
apt: apt:
name: "{{ item }}" pkg: aptitude
state: absent state: absent
allow_unauthenticated: yes when:
with_items: - aptitude_status.stdout.find('ii') == -1
- foo
- foobar

@ -1,35 +1,41 @@
--- - block:
#### Tests for upgrade/download functions in modules/packaging/os/apt.py #### - name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
- name: download and install old version of hello command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
apt: "deb=https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/apt/hello_{{ hello_old_version }}_amd64.deb"
- name: check hello version - name: install foo-1.0.0
shell: dpkg -s hello | grep Version | awk '{print $2}' apt:
register: hello_version name: foo=1.0.0
state: present
allow_unauthenticated: yes
- name: check foo version
shell: dpkg -s foo | grep Version | awk '{print $2}'
register: foo_version
- name: ensure the correct version of hello has been installed - name: ensure the correct version of foo has been installed
assert: assert:
that: that:
- "{{ hello_version.stdout }}=={{ hello_old_version }}" - "'1.0.0' in foo_version.stdout"
- name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version, force_apt_get: {{force_apt_get}}" - name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version, force_apt_get: {{force_apt_get}}"
apt: apt:
upgrade: "{{ upgrade_type }}" upgrade: "{{ upgrade_type }}"
force_apt_get: "{{ force_apt_get }}" force_apt_get: "{{ force_apt_get }}"
force: yes
register: upgrade_result register: upgrade_result
- name: check hello version - name: check foo version
shell: dpkg -s hello | grep Version | awk '{print $2}' shell: dpkg -s foo | grep Version | awk '{print $2}'
register: hello_version register: foo_version
- name: check that warning is not given when force_apt_get set - name: check that warning is not given when force_apt_get set
assert: assert:
that: that:
- "'warnings' not in upgrade_result" - "'warnings' not in upgrade_result"
when: when:
- force_apt_get - force_apt_get
- name: check that warning is given when aptitude not found and force_apt_get not set - name: check that warning is given when aptitude not found and force_apt_get not set
assert: assert:
that: that:
- "'Could not find aptitude. Using apt-get instead' in upgrade_result.warnings[0]" - "'Could not find aptitude. Using apt-get instead' in upgrade_result.warnings[0]"
@ -37,25 +43,30 @@
- not aptitude_present - not aptitude_present
- not force_apt_get - not force_apt_get
- name: check that old version upgraded correctly - name: check that old version upgraded correctly
assert: assert:
that: that:
- "{{ hello_version.stdout }}!={{ hello_old_version }}" - "'1.0.0' not in foo_version.stdout"
- "{{ hello_version.changed }}" - "{{ foo_version.changed }}"
- name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version (Idempotant)" - name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version (Idempotant)"
apt: apt:
upgrade: "{{ upgrade_type }}" upgrade: "{{ upgrade_type }}"
force_apt_get: "{{ force_apt_get }}" force_apt_get: "{{ force_apt_get }}"
force: yes
register: second_upgrade_result register: second_upgrade_result
- name: check that nothing has changed (Idempotant) - name: check that nothing has changed (Idempotant)
assert: assert:
that: that:
- "second_upgrade_result.changed == false" - "second_upgrade_result.changed == false"
- name: remove hello always:
- name: Clean up
apt: apt:
pkg: hello pkg: foo,foobar
state: absent state: absent
autoclean: yes autoclean: yes
- name: Restore ubuntu repos
command: mv /etc/apt/sources.list.backup /etc/apt/sources.list

Loading…
Cancel
Save