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:
parent
8421af1ea3
commit
319c29c2a2
24 changed files with 96 additions and 28 deletions
|
@ -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:
|
||||||
|
|
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):
|
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
|
||||||
|
|
||||||
|
|
|
@ -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', '>')
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,5 @@ shippable/posix/group1
|
||||||
skip/aix
|
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/
|
||||||
|
|
|
@ -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!
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
- setup_pkg_mgr
|
- setup_pkg_mgr
|
||||||
- setup_epel
|
|
||||||
- setup_remote_tmp_dir
|
- setup_remote_tmp_dir
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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']
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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:
|
dependencies:
|
||||||
- setup_pkg_mgr
|
- 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:
|
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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue