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.
unittest: change directory to tmpdir for testing relative files.
Previous commit 104331c3318 changed the behavior of the test
test_relative_file_url
to test with an absolute path, when the point of the test was to
test relative.
The fix here does what was originally intended, testing that relative
file paths work and utilizing the tmp dir.
Curtin's meta-simple which is used when deploying dd-images can
clear disks with a simple wipe but does not handle cases where
disks may be part of a layered stack like lvm, raid or bcache.
Allow meta-simple and meta-custom to use a common method for running
clear-holders to ensure devices used are free.
vmtests: check install log for Out of memory kernel messages and fail
During proposed testing, we observed in the Cosmic test which installed
the lxd snap, core snap and a linux kernel, 1G of ram was insufficient
and would trigger linux OOM and sometimes fail the install. Add a
test for the Out of memory string in our install log check and fail
vmtest installs if we find an OOM occurred during installation.