#!/usr/bin/python3 # # Copyright (C) 2022 Red Hat, Inc. # SPDX-License-Identifier: LGPL-2.1-or-later from anacondalib import VirtInstallMachineCase from installer import Installer from review import Review from storage import EFI_PARTITION_DEFAULT_SIZE, EFI_PARTITION_DEFAULT_SIZE_MB, Storage from testlib import nondestructive, test_main # pylint: disable=import-error @nondestructive class TestStorageMountPointsLVM(VirtInstallMachineCase): def _testLVM_partition_disk(self): m = self.machine b = self.browser s = Storage(b, m) disk = "/dev/vda" vgname = "fedoravg" s.partition_disk(disk, [(EFI_PARTITION_DEFAULT_SIZE, "efi"), ("1GiB", "ext4"), ("", None)]) m.execute(f""" vgcreate -y -f {vgname} {disk}3 lvcreate -y -l40%FREE -n root {vgname} mkfs.ext4 -F /dev/{vgname}/root lvcreate -y -l90%FREE -n home {vgname} mkfs.ext4 -F /dev/{vgname}/home lvcreate -y -l100%FREE -n swap {vgname} mkswap /dev/{vgname}/swap """) def testLVM(self): """ Description: Test 'Mount point mapping' screen with LVM Expected results: - The mount point mapping screen should show the LVM volumes - The review screen should show the correct mountpoints and devices """ b = self.browser m = self.machine i = Installer(b, m, scenario="mount-point-mapping") s = Storage(b, m) r = Review(b, m) vgname = "fedoravg" dev = "vda" i.open() i.reach(i.steps.INSTALLATION_METHOD) s.select_mountpoint([(dev, True)]) # verify gathered requests # root partition is not auto-mapped s.check_mountpoint_row(1, "/", "Select a device", True) s.check_mountpoint_row(2, "/boot/efi", "Select a device", False) s.check_mountpoint_row(3, "/boot", "Select a device", False) s.select_mountpoint_row_device(1, f"{vgname}-root") s.check_mountpoint_row(1, "/", f"{vgname}-root", True, "ext4") s.select_mountpoint_row_device(2, f"{dev}1") s.check_mountpoint_row(2, "/boot/efi", f"{dev}1", False, "EFI System Partition") s.select_mountpoint_row_device(3, f"{dev}2") s.check_mountpoint_row(3, "/boot", f"{dev}2", False, "ext4") s.add_mountpoint_row() s.select_mountpoint_row_device(4, f"{vgname}-home") s.select_mountpoint_row_mountpoint(4, "/home") s.check_mountpoint_row(4, "/home", f"{vgname}-home", False, "ext4") s.add_mountpoint_row() s.select_mountpoint_row_device(5, f"{vgname}-swap") s.check_mountpoint_row(5, "swap", f"{vgname}-swap", False, "swap") # Toggle reformat option s.select_mountpoint_row_reformat(3) s.check_mountpoint_row_reformat(3, True) i.reach(i.steps.REVIEW) # verify review screen disk = "vda" r.check_disk(disk, "16.1 GB vda (Virtio Block Device)") r.check_disk_row(disk, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False) r.check_disk_row(disk, "/boot", "vda2", "1.07 GB", True, "ext4") r.check_disk_row(disk, "/", "vda3, LVM", "5.80 GB", True, "ext4") r.check_disk_row(disk, "/home", "vda3, LVM", "7.83 GB", False) r.check_disk_row(disk, "swap", "vda3, LVM", "872 MB", False) i.reach_on_sidebar(i.steps.CUSTOM_MOUNT_POINT) # remove the /home row and check that row 3 is now swap s.remove_mountpoint_row(4, 5) s.check_mountpoint_row_mountpoint(4, "swap") s.check_mountpoint_row_device(4, f"{vgname}-swap") i.reach(i.steps.REVIEW) # verify review screen disk = "vda" r.check_disk(disk, "16.1 GB vda (Virtio Block Device)") r.check_disk_row(disk, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False) r.check_disk_row(disk, "/boot", "vda2", "1.07 GB", True, "ext4") r.check_disk_row(disk, "/", "vda3, LVM", "5.80 GB", True, "ext4") r.check_disk_row(disk, "swap", "vda3, LVM", "872 MB", False) if __name__ == '__main__': test_main()