1
0
Fork 0
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)

* 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.
This commit is contained in:
Felix Fontein 2022-05-22 17:20:30 +02:00 committed by GitHub
parent 8421af1ea3
commit 319c29c2a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 96 additions and 28 deletions

View file

@ -177,12 +177,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
@ -253,14 +253,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:

View 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)."

View file

@ -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

View file

@ -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', '>')

View file

@ -7,3 +7,4 @@ skip/rhel8.2
skip/rhel8.3
skip/rhel8.4
skip/rhel8.5
skip/rhel9.0

View file

@ -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!

View file

@ -2,4 +2,5 @@ shippable/posix/group1
skip/aix
skip/freebsd
skip/osx
skip/macos
skip/macos
skip/rhel9.0 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/

View file

@ -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!

View file

@ -1,4 +1,6 @@
shippable/posix/group1
needs/target/setup_epel
destructive
skip/aix
skip/osx # FIXME
skip/rhel9.0 # FIXME

View file

@ -1,4 +1,3 @@
dependencies:
- setup_pkg_mgr
- setup_epel
- setup_remote_tmp_dir

View file

@ -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

View file

@ -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

View file

@ -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']

View file

@ -3,4 +3,5 @@ shippable/posix/group1
skip/osx
skip/macos
skip/rhel8.0
skip/rhel9.0
skip/freebsd

View file

@ -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

View file

@ -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'

View file

@ -0,0 +1,4 @@
cryptography_package_name: python-cryptography
cryptography_package_name_python3: python3-cryptography
openssl_package_name: openssl
cryptography_from_pip: false

View file

@ -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

View file

@ -0,0 +1 @@
needs/target/setup_epel

View file

@ -1,3 +1,2 @@
dependencies:
- setup_pkg_mgr
- setup_epel

View file

@ -0,0 +1 @@
nothing.yml

View file

@ -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:

View file

@ -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

View file

@ -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