mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add RHEL 9.0, FreeBSD 13.1, Ubuntu 22.04 and Fedora 36 to CI, fix bug in filesystem module (#4700) (#4709)
* Add RHEL 9.0 and FreeBSD 13.1 to CI.
* RHEL 9 has no pyOpenSSL apparently.
* Adjust URL for EPEL.
* Fix cargo install on FreeBSD 13.1.
* Add Ubuntu 22.04 and Fedora 36 to CI.
* Fix logic.
* filesystem: do not die output line does not contain ':'
* Skip django_manage tests on RHEL 9 as well.
* homectl tests don't work with RHEL 9.0.
* Improve error handling, improve fatresize output handling.
* Skip Fedora 36.
* Skip filesystem vfat tests on Ubuntu 22.04.
There, resizing fails with a bug:
Bug: Assertion (disk != NULL) at ../../libparted/disk.c:1620 in function ped_disk_get_partition_by_sector() failed.
* 'trusty' is 14.04. Adding 22.04 to skip list.
* Skip jail tests for FreeBSD 13.1.
* Add config for postgres on Ubuntu 22.04.
* Make CentOS 6 happy.
* Adjust postgres version.
* Try installing EPEL a bit differently.
* Skip ufw and iso_extract tests on RHEL 9.
* Skip odbc tests on RHEL 9.
* Skip RHEL 9.0 for snap tests.
* Add changelog fragment for filesystem code changes.
(cherry picked from commit 319c29c2a2
)
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
6f14461d0b
commit
1cd0afd3df
24 changed files with 96 additions and 28 deletions
|
@ -223,12 +223,12 @@ stages:
|
|||
test: macos/12.0
|
||||
- name: RHEL 7.9
|
||||
test: rhel/7.9
|
||||
- name: RHEL 8.5
|
||||
test: rhel/8.5
|
||||
- name: RHEL 9.0
|
||||
test: rhel/9.0
|
||||
- name: FreeBSD 12.3
|
||||
test: freebsd/12.3
|
||||
- name: FreeBSD 13.0
|
||||
test: freebsd/13.0
|
||||
- name: FreeBSD 13.1
|
||||
test: freebsd/13.1
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
|
@ -329,14 +329,14 @@ stages:
|
|||
test: centos7
|
||||
- name: Fedora 34
|
||||
test: fedora34
|
||||
- name: Fedora 35
|
||||
test: fedora35
|
||||
- name: Fedora 36
|
||||
test: fedora36
|
||||
- name: openSUSE 15
|
||||
test: opensuse15
|
||||
- name: Ubuntu 18.04
|
||||
test: ubuntu1804
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu2004
|
||||
- name: Ubuntu 22.04
|
||||
test: ubuntu2204
|
||||
- name: Alpine 3
|
||||
test: alpine3
|
||||
groups:
|
||||
|
|
3
changelogs/fragments/4700-code-changes.yml
Normal file
3
changelogs/fragments/4700-code-changes.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
bugfixes:
|
||||
- "filesystem - improve error messages when output cannot be parsed by including newlines in escaped form (https://github.com/ansible-collections/community.general/pull/4700)."
|
||||
- "filesystem - handle ``fatresize --info`` output lines without ``:`` (https://github.com/ansible-collections/community.general/pull/4700)."
|
|
@ -268,7 +268,7 @@ class Ext(Filesystem):
|
|||
if None not in (block_size, block_count):
|
||||
break
|
||||
else:
|
||||
raise ValueError(out)
|
||||
raise ValueError(repr(out))
|
||||
|
||||
return block_size * block_count
|
||||
|
||||
|
@ -319,7 +319,7 @@ class XFS(Filesystem):
|
|||
if None not in (block_size, block_count):
|
||||
break
|
||||
else:
|
||||
raise ValueError(out)
|
||||
raise ValueError(repr(out))
|
||||
|
||||
return block_size * block_count
|
||||
|
||||
|
@ -364,7 +364,7 @@ class Btrfs(Filesystem):
|
|||
for line in stdout.splitlines():
|
||||
if "Device size" in line:
|
||||
return int(line.split()[-1])
|
||||
raise ValueError(stdout)
|
||||
raise ValueError(repr(stdout))
|
||||
|
||||
|
||||
class Ocfs2(Filesystem):
|
||||
|
@ -405,7 +405,7 @@ class F2fs(Filesystem):
|
|||
if None not in (sector_size, sector_count):
|
||||
break
|
||||
else:
|
||||
raise ValueError(out)
|
||||
raise ValueError(repr(out))
|
||||
|
||||
return sector_size * sector_count
|
||||
|
||||
|
@ -428,12 +428,15 @@ class VFAT(Filesystem):
|
|||
dummy, out, dummy = self.module.run_command([cmd, '--info', str(dev)], check_rc=True, environ_update=self.LANG_ENV)
|
||||
fssize = None
|
||||
for line in out.splitlines()[1:]:
|
||||
param, value = line.split(':', 1)
|
||||
if param.strip() == 'Size':
|
||||
parts = line.split(':', 1)
|
||||
if len(parts) < 2:
|
||||
continue
|
||||
param, value = parts
|
||||
if param.strip() in ('Size', 'Cur size'):
|
||||
fssize = int(value.strip())
|
||||
break
|
||||
else:
|
||||
raise ValueError(out)
|
||||
raise ValueError(repr(out))
|
||||
|
||||
return fssize
|
||||
|
||||
|
@ -477,7 +480,7 @@ class UFS(Filesystem):
|
|||
if None not in (fragmentsize, providersize):
|
||||
break
|
||||
else:
|
||||
raise ValueError(out)
|
||||
raise ValueError(repr(out))
|
||||
|
||||
return fragmentsize * providersize
|
||||
|
||||
|
|
|
@ -7,8 +7,18 @@
|
|||
- set_fact:
|
||||
has_cargo: true
|
||||
when:
|
||||
- ansible_system != 'FreeBSD' or ansible_distribution_version is version('13.0', '>')
|
||||
- ansible_system != 'FreeBSD'
|
||||
- ansible_distribution != 'MacOSX'
|
||||
- ansible_distribution != 'RedHat' or ansible_distribution_version is version('8.0', '>=')
|
||||
- ansible_distribution != 'CentOS' or ansible_distribution_version is version('7.0', '>=')
|
||||
- ansible_distribution != 'Ubuntu' or ansible_distribution_version is version('18', '>=')
|
||||
|
||||
- block:
|
||||
- name: Install rust (containing cargo)
|
||||
package:
|
||||
name: rust
|
||||
state: present
|
||||
- set_fact:
|
||||
has_cargo: true
|
||||
when:
|
||||
- ansible_system == 'FreeBSD' and ansible_distribution_version is version('13.0', '>')
|
||||
|
|
|
@ -7,3 +7,4 @@ skip/rhel8.2
|
|||
skip/rhel8.3
|
||||
skip/rhel8.4
|
||||
skip/rhel8.5
|
||||
skip/rhel9.0
|
||||
|
|
|
@ -58,6 +58,9 @@
|
|||
- 'not (item.0.key == "vfat" and ansible_distribution == "Debian")' # TODO: figure out why it fails, fix it!
|
||||
# vfat resizing fails on ArchLinux
|
||||
- 'not (item.0.key == "vfat" and ansible_distribution == "Archlinux")' # TODO: figure out why it fails, fix it!
|
||||
# vfat resizing fails on Ubuntu 22.04
|
||||
- 'not (item.0.key == "vfat" and ansible_distribution == "Ubuntu" and (ansible_facts.distribution_major_version | int == 22))'
|
||||
# TODO: figure out why it fails, fix it!
|
||||
# btrfs-progs cannot be installed on ArchLinux
|
||||
- 'not (item.0.key == "btrfs" and ansible_distribution == "Archlinux")' # TODO: figure out why it fails, fix it!
|
||||
|
||||
|
|
|
@ -3,3 +3,4 @@ skip/aix
|
|||
skip/freebsd
|
||||
skip/osx
|
||||
skip/macos
|
||||
skip/rhel9.0 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
|
||||
|
|
|
@ -174,3 +174,4 @@
|
|||
when:
|
||||
- systemd_version.rc == 0 and (systemd_version.stdout | regex_search('[0-9][0-9][0-9]') | int >= 245) and homectl_version.rc == 0
|
||||
- ansible_distribution != 'Archlinux' # TODO!
|
||||
- ansible_distribution != 'Fedora' or ansible_distribution_major_version|int < 36 # TODO!
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
shippable/posix/group1
|
||||
needs/target/setup_epel
|
||||
destructive
|
||||
skip/aix
|
||||
skip/osx # FIXME
|
||||
skip/rhel9.0 # FIXME
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
dependencies:
|
||||
- setup_pkg_mgr
|
||||
- setup_epel
|
||||
- setup_remote_tmp_dir
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
- set_fact:
|
||||
output_test_dir: '{{ remote_tmp_dir }}/test_iso_extract'
|
||||
|
||||
- name: Install EPEL repository (RHEL only)
|
||||
include_role:
|
||||
name: setup_epel
|
||||
when:
|
||||
- ansible_distribution in ['RedHat', 'CentOS']
|
||||
- ansible_distribution_major_version is version('9', '<')
|
||||
|
||||
- name: Install 7zip
|
||||
import_tasks: 7zip.yml
|
||||
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
- name: Install EPEL repository (RHEL only)
|
||||
include_role:
|
||||
name: setup_epel
|
||||
when:
|
||||
- ansible_distribution in ['RedHat', 'CentOS']
|
||||
- ansible_distribution_major_version is version('9', '<')
|
||||
|
||||
- name: create required directories
|
||||
become: yes
|
||||
|
|
|
@ -6,4 +6,4 @@
|
|||
- include: ubuntu.yml
|
||||
when:
|
||||
- ansible_distribution == 'Ubuntu'
|
||||
- ansible_distribution_release not in ['trusty', 'focal']
|
||||
- ansible_distribution_release not in ['focal', 'jammy']
|
||||
|
|
|
@ -3,4 +3,5 @@ shippable/posix/group1
|
|||
skip/osx
|
||||
skip/macos
|
||||
skip/rhel8.0
|
||||
skip/rhel9.0
|
||||
skip/freebsd
|
||||
|
|
|
@ -461,7 +461,10 @@
|
|||
# NOTE: FreeBSD 12.0 test runner receives a "connection reset by peer" after ~20% downloaded so we are
|
||||
# only running this on 12.1 or higher
|
||||
#
|
||||
when: ansible_distribution_version is version('12.01', '>=')
|
||||
# NOTE: FreeBSD 13.1 fails to update the package catalogue for unknown reasons (someone with FreeBSD
|
||||
# knowledge has to take a look)
|
||||
#
|
||||
when: ansible_distribution_version is version('12.01', '>=') and ansible_distribution_version is version('13.1', '<')
|
||||
block:
|
||||
- name: Setup testjail
|
||||
include: setup-testjail.yml
|
||||
|
|
|
@ -7,4 +7,14 @@
|
|||
yum:
|
||||
name: https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/setup_epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm
|
||||
disable_gpg_check: true
|
||||
when: ansible_facts.distribution in ['RedHat', 'CentOS']
|
||||
when:
|
||||
- ansible_facts.distribution in ['RedHat', 'CentOS']
|
||||
- ansible_facts.distribution_major_version == '6'
|
||||
|
||||
- name: Install EPEL
|
||||
yum:
|
||||
name: https://ci-files.testing.ansible.com/test/integration/targets/setup_epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm
|
||||
disable_gpg_check: true
|
||||
when:
|
||||
- ansible_facts.distribution in ['RedHat', 'CentOS']
|
||||
- ansible_facts.distribution_major_version != '6'
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
cryptography_package_name: python-cryptography
|
||||
cryptography_package_name_python3: python3-cryptography
|
||||
openssl_package_name: openssl
|
||||
cryptography_from_pip: false
|
|
@ -0,0 +1,8 @@
|
|||
postgresql_packages:
|
||||
- "postgresql"
|
||||
- "postgresql-common"
|
||||
- "python3-psycopg2"
|
||||
|
||||
pg_hba_location: "/etc/postgresql/14/main/pg_hba.conf"
|
||||
pg_dir: "/var/lib/postgresql/14/main"
|
||||
pg_ver: 14
|
1
tests/integration/targets/setup_snap/aliases
Normal file
1
tests/integration/targets/setup_snap/aliases
Normal file
|
@ -0,0 +1 @@
|
|||
needs/target/setup_epel
|
|
@ -1,3 +1,2 @@
|
|||
dependencies:
|
||||
- setup_pkg_mgr
|
||||
- setup_epel
|
||||
|
|
1
tests/integration/targets/setup_snap/tasks/D-RedHat-9.0.yml
Symbolic link
1
tests/integration/targets/setup_snap/tasks/D-RedHat-9.0.yml
Symbolic link
|
@ -0,0 +1 @@
|
|||
nothing.yml
|
|
@ -8,6 +8,13 @@
|
|||
debug:
|
||||
msg: "Distribution '{{ ansible_facts.distribution }}', version '{{ ansible_facts.distribution_version }}', OS family '{{ ansible_facts.os_family }}'"
|
||||
|
||||
- name: Install EPEL repository (RHEL only)
|
||||
include_role:
|
||||
name: setup_epel
|
||||
when:
|
||||
- ansible_distribution in ['RedHat', 'CentOS']
|
||||
- ansible_distribution_major_version is version('9', '<')
|
||||
|
||||
- name: Include distribution specific tasks
|
||||
include_tasks: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
|
|
|
@ -3,10 +3,9 @@ skip/aix
|
|||
skip/osx
|
||||
skip/macos
|
||||
skip/freebsd
|
||||
skip/rhel8.0
|
||||
skip/rhel8.0b
|
||||
skip/rhel8.1b
|
||||
skip/rhel8.0 # FIXME
|
||||
skip/rhel9.0 # FIXME
|
||||
skip/docker
|
||||
needs/root
|
||||
destructive
|
||||
needs/target/setup_epel
|
||||
destructive
|
||||
|
|
|
@ -8,7 +8,9 @@
|
|||
- name: Install EPEL repository (RHEL only)
|
||||
include_role:
|
||||
name: setup_epel
|
||||
when: ansible_distribution == 'RedHat'
|
||||
when:
|
||||
- ansible_distribution in ['RedHat', 'CentOS']
|
||||
- ansible_distribution_major_version is version('9', '<')
|
||||
- name: Install iptables (SuSE only)
|
||||
package:
|
||||
name: iptables
|
||||
|
|
Loading…
Reference in a new issue