AlmaLinux / leapp-repository

Leapp repositories containing actors for the Leapp framework (https://github.com/oamg/leapp)
https://almalinux.org/elevate/
Apache License 2.0
28 stars 26 forks source link

Update actor.py to support NVMe device enumeration #98

Closed N3WWN closed 7 months ago

N3WWN commented 8 months ago

When attempting to upgrade CentOS 7 systems with UEFI and software RAID1 on top of NVMe disks, the upgrade fails during Finalization with the following:

leapp.libraries.stdlib.CalledProcessError: Command ['/sbin/efibootmgr', '-c', '-d', '/dev/nvme0n1p', '-p', '3', '-l', '\\EFI\rocky\\shimx64.efi', '-L', 'Rocky Linux'] failed with exit code 5

The failure is due to efidev being parsed into /dev/nvme0n1p instead of /dev/nvme0n1. (NVMe device enumeration follows a different format than most typical non-NVMe block devices.)

This was confirmed with leapp-upgrade-el7toel8-0.16.0-6.el7.elevate.19.noarch / leapp-upgrade-el7toel8-deps-0.16.0-6.el7.elevate.19.noarch.

This PR modifies devparts to check if the argument contains '/dev/nvme' and, if so, generated dev and part slightly differently.

Before this PR, /usr/share/leapp-repository/repositories/system_upgrade/common/actors/efibootorderfix/finalization/actor.py attempts to execute: /sbin/efibootmgr -c -d /dev/nvme0n1p -p 3 -l \\EFI\rocky\\shimx64.efi -L 'Rocky Linux' and /sbin/efibootmgr -c -d /dev/nvme0n2p -p 3 -l \\EFI\rocky\\shimx64.efi -L 'Rocky Linux' which have misnamed devices. The failure is triggered when the first command is reached.

After this PR, the device names are correct and the actor attempts to execute: /sbin/efibootmgr -c -d /dev/nvme0n1 -p 3 -l \\EFI\rocky\\shimx64.efi -L 'Rocky Linux' and /sbin/efibootmgr -c -d /dev/nvme0n2 -p 3 -l \\EFI\rocky\\shimx64.efi -L 'Rocky Linux'.

github-actions[bot] commented 8 months ago

Thank you for contributing to the Leapp project!

Please note that every PR needs to comply with the Leapp Guidelines and must pass all tests in order to be mergable. If you want to re-run tests or request review, you can use following commands as a comment:

Please open ticket in case you experience technical problem with the CI. (RH internal only)

Note: In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please consider rerunning the CI by commenting leapp-ci build (might require several comments). If the problem persists, contact leapp-infra.

andrewlukoshko commented 7 months ago

Thanks for the contribution @N3WWN ! We'll release updated packages soon.