filesystem: add UUID change feature (#6680)

* filesystem: add UUID change feature

* Add changelog fragment for 6680

* Do not test XFS filesystem UUID reset on FreeBSD

FreeBSD error: xfs_admin: only 'rewrite' supported on V5 fs

* Apply suggestions from code review #1

Co-authored-by: Felix Fontein <felix@fontein.de>

* Set filesystem UUID on FS creation

* Fix tests - switch to ansible.builtion.to_uuid

* Fix tests - Refactor to avoid FS remove tasks

* Fail if uuid option not yet supported for fstype

* Set resizefs and uuid options mutually exclusive

* Apply suggestions from code review no 2.

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
Laszlo Szomor 2023-06-19 08:59:34 +02:00 committed by GitHub
commit 5d9eb8be95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 249 additions and 22 deletions

View file

@ -15,19 +15,19 @@ tested_filesystems:
# - 1.7.0 requires at least 30Mo
# - 1.10.0 requires at least 38Mo
# - resizefs asserts when initial fs is smaller than 60Mo and seems to require 1.10.0
ext4: {fssize: 10, grow: true}
ext4dev: {fssize: 10, grow: true}
ext3: {fssize: 10, grow: true}
ext2: {fssize: 10, grow: true}
xfs: {fssize: 300, grow: false} # grow requires a mounted filesystem
btrfs: {fssize: 150, grow: false} # grow requires a mounted filesystem
reiserfs: {fssize: 33, grow: false} # grow not implemented
vfat: {fssize: 20, grow: true}
ocfs2: {fssize: '{{ ocfs2_fssize }}', grow: false} # grow not implemented
f2fs: {fssize: '{{ f2fs_fssize|default(60) }}', grow: 'f2fs_version is version("1.10.0", ">=")'}
lvm: {fssize: 20, grow: true}
swap: {fssize: 10, grow: false} # grow not implemented
ufs: {fssize: 10, grow: true}
ext4: {fssize: 10, grow: true, new_uuid: 'random'}
ext4dev: {fssize: 10, grow: true, new_uuid: 'random'}
ext3: {fssize: 10, grow: true, new_uuid: 'random'}
ext2: {fssize: 10, grow: true, new_uuid: 'random'}
xfs: {fssize: 300, grow: false, new_uuid: 'generate'} # grow requires a mounted filesystem
btrfs: {fssize: 150, grow: false, new_uuid: null} # grow requires a mounted filesystem
reiserfs: {fssize: 33, grow: false, new_uuid: null} # grow not implemented
vfat: {fssize: 20, grow: true, new_uuid: null}
ocfs2: {fssize: '{{ ocfs2_fssize }}', grow: false, new_uuid: null} # grow not implemented
f2fs: {fssize: '{{ f2fs_fssize|default(60) }}', grow: 'f2fs_version is version("1.10.0", ">=")', new_uuid: null}
lvm: {fssize: 20, grow: true, new_uuid: 'something'}
swap: {fssize: 10, grow: false, new_uuid: null} # grow not implemented
ufs: {fssize: 10, grow: true, new_uuid: null}
get_uuid_any: "blkid -c /dev/null -o value -s UUID {{ dev }}"