clear-holders: handle FileNotFound when probing for bcache device slaves
In some cases, when detecting if a bcache has any slave devices which
need removal the path to the sysfs directory may not be found; this is
non-fatal; it indicates that the existing device has been removed by the
kernel. Allow clear-holders to tolerate this failure.
Updated curtin.block.partition_kname to indicate that bcache partitions
have 'p' in the value. This is needed for the vmtest to recreate bcache
partitions.
vmtest: Fix bug preventing explicit disabling of system_upgrade.
There was no way to avoid enabling system_upgrade, as the code would
simply do a truish test on the value of the environment variable, and:
bool("false") == True.
When testing with a single proposed upgrade as in:
CURTIN_VMTEST_ADD_REPOS=proposed
CURTIN_VMTEST_UPGRADE_PACKAGES=open-iscsi
The normal behavior if CURTIN_VMTEST_ADD_REPOS has a value should be to
enable system_upgrade, but in this case we only want the single package
upgraded.
So now the environment can explicitly set that off with:
CURTIN_VMTEST_SYSTEM_UPGRADE=false
Adjust helpers/common to edit GRUB_CMDLINE_LINUX_DEFAULT in place.
This will help us avoid hitting upgrade prompts as seen
and described in bug 564853. The change here is only to move
GRUB_CMDLINE_LINUX_DEFAULT to /etc/default/grub from
/etc/default/grub.d/50-curtin-settings.cfg.
Currently, other changes will still to into 50-curtin-settings.cfg.
Also collect /etc/default/grub files to artifacts and fix small issue
that resulted in the carryover args having an additional white space
at the end.
Currently /dev/disk/by-dname symlinks are not created
if a device does not have a partition table or a super block.
For devices which do have a serial or wwn number, curtin will
append an additional rule to the disk rules file which includes
both the partition table/superblock UUID as well as rule matching
the device provided serial or wwn. This ensures that even if
a block device is wiped that the dname will continue to function.
Other changes:
- add method to discover udev database value of a block device
ID_SERIAL value.
- refactor nvme vmtests to use 'serial' values
- don't hardcode nvme serials based on their enumerated index
- ensure we pass nvme serials to both install and boot phases
- update disks_to_check for basic and nvme to ensure we have a
dname for the disk itself
Fix bug in is_swap_device if a device was smaller than page_size.
If is_swap_device was called on a device (or file) that was smaller than
a page size of the current kernel, then it would raise an OSError.
The change here just makes it check the size of the file before
attempting to read.
A test is added, and the other tests updated to rely less on mock.