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 test: macos/12.0
- name: RHEL 7.9 - name: RHEL 7.9
test: rhel/7.9 test: rhel/7.9
- name: RHEL 8.5 - name: RHEL 9.0
test: rhel/8.5 test: rhel/9.0
- name: FreeBSD 12.3 - name: FreeBSD 12.3
test: freebsd/12.3 test: freebsd/12.3
- name: FreeBSD 13.0 - name: FreeBSD 13.1
test: freebsd/13.0 test: freebsd/13.1
groups: groups:
- 1 - 1
- 2 - 2
@ -253,14 +253,14 @@ stages:
test: centos7 test: centos7
- name: Fedora 34 - name: Fedora 34
test: fedora34 test: fedora34
- name: Fedora 35 - name: Fedora 36
test: fedora35 test: fedora36
- name: openSUSE 15 - name: openSUSE 15
test: opensuse15 test: opensuse15
- name: Ubuntu 18.04 - name: Ubuntu 18.04
test: ubuntu1804 test: ubuntu1804
- name: Ubuntu 20.04 - name: Ubuntu 22.04
test: ubuntu2004 test: ubuntu2204
- name: Alpine 3 - name: Alpine 3
test: alpine3 test: alpine3
groups: 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): if None not in (block_size, block_count):
break break
else: else:
raise ValueError(out) raise ValueError(repr(out))
return block_size * block_count return block_size * block_count
@ -319,7 +319,7 @@ class XFS(Filesystem):
if None not in (block_size, block_count): if None not in (block_size, block_count):
break break
else: else:
raise ValueError(out) raise ValueError(repr(out))
return block_size * block_count return block_size * block_count
@ -364,7 +364,7 @@ class Btrfs(Filesystem):
for line in stdout.splitlines(): for line in stdout.splitlines():
if "Device size" in line: if "Device size" in line:
return int(line.split()[-1]) return int(line.split()[-1])
raise ValueError(stdout) raise ValueError(repr(stdout))
class Ocfs2(Filesystem): class Ocfs2(Filesystem):
@ -405,7 +405,7 @@ class F2fs(Filesystem):
if None not in (sector_size, sector_count): if None not in (sector_size, sector_count):
break break
else: else:
raise ValueError(out) raise ValueError(repr(out))
return sector_size * sector_count 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) dummy, out, dummy = self.module.run_command([cmd, '--info', str(dev)], check_rc=True, environ_update=self.LANG_ENV)
fssize = None fssize = None
for line in out.splitlines()[1:]: for line in out.splitlines()[1:]:
param, value = line.split(':', 1) parts = line.split(':', 1)
if param.strip() == 'Size': if len(parts) < 2:
continue
param, value = parts
if param.strip() in ('Size', 'Cur size'):
fssize = int(value.strip()) fssize = int(value.strip())
break break
else: else:
raise ValueError(out) raise ValueError(repr(out))
return fssize return fssize
@ -477,7 +480,7 @@ class UFS(Filesystem):
if None not in (fragmentsize, providersize): if None not in (fragmentsize, providersize):
break break
else: else:
raise ValueError(out) raise ValueError(repr(out))
return fragmentsize * providersize return fragmentsize * providersize

View file

@ -7,8 +7,18 @@
- set_fact: - set_fact:
has_cargo: true has_cargo: true
when: when:
- ansible_system != 'FreeBSD' or ansible_distribution_version is version('13.0', '>') - ansible_system != 'FreeBSD'
- ansible_distribution != 'MacOSX' - ansible_distribution != 'MacOSX'
- ansible_distribution != 'RedHat' or ansible_distribution_version is version('8.0', '>=') - ansible_distribution != 'RedHat' or ansible_distribution_version is version('8.0', '>=')
- ansible_distribution != 'CentOS' or ansible_distribution_version is version('7.0', '>=') - ansible_distribution != 'CentOS' or ansible_distribution_version is version('7.0', '>=')
- ansible_distribution != 'Ubuntu' or ansible_distribution_version is version('18', '>=') - 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.3
skip/rhel8.4 skip/rhel8.4
skip/rhel8.5 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! - 'not (item.0.key == "vfat" and ansible_distribution == "Debian")' # TODO: figure out why it fails, fix it!
# vfat resizing fails on ArchLinux # vfat resizing fails on ArchLinux
- 'not (item.0.key == "vfat" and ansible_distribution == "Archlinux")' # TODO: figure out why it fails, fix it! - '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 # btrfs-progs cannot be installed on ArchLinux
- 'not (item.0.key == "btrfs" and ansible_distribution == "Archlinux")' # TODO: figure out why it fails, fix it! - 'not (item.0.key == "btrfs" and ansible_distribution == "Archlinux")' # TODO: figure out why it fails, fix it!

View file

@ -3,3 +3,4 @@ skip/aix
skip/freebsd skip/freebsd
skip/osx 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: when:
- systemd_version.rc == 0 and (systemd_version.stdout | regex_search('[0-9][0-9][0-9]') | int >= 245) and homectl_version.rc == 0 - 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 != 'Archlinux' # TODO!
- ansible_distribution != 'Fedora' or ansible_distribution_major_version|int < 36 # TODO!

View file

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

View file

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

View file

@ -25,6 +25,13 @@
- set_fact: - set_fact:
output_test_dir: '{{ remote_tmp_dir }}/test_iso_extract' 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 - name: Install 7zip
import_tasks: 7zip.yml import_tasks: 7zip.yml

View file

@ -7,6 +7,9 @@
- name: Install EPEL repository (RHEL only) - name: Install EPEL repository (RHEL only)
include_role: include_role:
name: setup_epel name: setup_epel
when:
- ansible_distribution in ['RedHat', 'CentOS']
- ansible_distribution_major_version is version('9', '<')
- name: create required directories - name: create required directories
become: yes become: yes

View file

@ -6,4 +6,4 @@
- include: ubuntu.yml - include: ubuntu.yml
when: when:
- ansible_distribution == 'Ubuntu' - 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/osx
skip/macos skip/macos
skip/rhel8.0 skip/rhel8.0
skip/rhel9.0
skip/freebsd 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 # 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 # 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: block:
- name: Setup testjail - name: Setup testjail
include: setup-testjail.yml include: setup-testjail.yml

View file

@ -7,4 +7,14 @@
yum: yum:
name: https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/setup_epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm 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 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: dependencies:
- setup_pkg_mgr - setup_pkg_mgr
- setup_epel

View file

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

View file

@ -8,6 +8,13 @@
debug: debug:
msg: "Distribution '{{ ansible_facts.distribution }}', version '{{ ansible_facts.distribution_version }}', OS family '{{ ansible_facts.os_family }}'" 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 - name: Include distribution specific tasks
include_tasks: "{{ lookup('first_found', params) }}" include_tasks: "{{ lookup('first_found', params) }}"
vars: vars:

View file

@ -3,10 +3,9 @@ skip/aix
skip/osx skip/osx
skip/macos skip/macos
skip/freebsd skip/freebsd
skip/rhel8.0 skip/rhel8.0 # FIXME
skip/rhel8.0b skip/rhel9.0 # FIXME
skip/rhel8.1b
skip/docker skip/docker
needs/root needs/root
destructive
needs/target/setup_epel needs/target/setup_epel
destructive

View file

@ -8,7 +8,9 @@
- name: Install EPEL repository (RHEL only) - name: Install EPEL repository (RHEL only)
include_role: include_role:
name: setup_epel 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) - name: Install iptables (SuSE only)
package: package:
name: iptables name: iptables