An error occured handling 'disk-sda': ValueError - disk 'disk-sda'
does not have correct partition table or cannot be read, but preserve
is set to true. cannot continue installation.
happens because the storage config for the main disk has both wipe and
preserve settings enabled resulting in the primary disk being wiped.
Curtin can either wipe a disk or preserve it but we cannot do both (unlike
partitions where we can keep the partition location, flag, size, etc,
but wipe the data). This branch
- Fixes the storage config in the vmtest
- Adds a RuntimeException indicating this config is invalid
- Adds unittests for get_device_paths_from_storage_config
- Drop skiptests for vlan issue, now fixed
- Drop skiptest on Ubuntu ReuseESP tests
- Add skiptest for Centos, new Bug #1881030
- Drop skip-by-date for CentosTestScsiBasic Bug #1859858 is fixed
- Bump skip_by_date on tests with bcache by-uuid symlinks, Bug #1861951 not fixed yet.
Handle multiple separators which were found in TestAllindata vmtest
TestAllindata specifies additional kernel args and include the '---'
separator. vmtest baseclass already includes a '---' and after
landing of the grub refactor, the python version of the
get_carryover_params did not handle the additional '---'.
Fix this by combining any args after the first '---' separator.
verify_ptable_flag: dos primary partitions use ptable_uuid map for flag
Curtin currently special-cases verifying MSDOS 'boot', 'extended'
and 'logical' flags. This ignored primary DOS partitions. When
verifying partition flags on a MSDOS primary partition use
ptable_uuid_to_flag_entry map as we do for GPT partitions.
net_meta: add disabled mode to skip writing any network config
Curtin's install command invokes 'net-meta auto' by default
which will handle provided network config or render a config
based on the environments current network configuration.
Adding 'disabled' mode allows users who handle writing their
own network config into the target to disable curtin's config.
instructs curtin to not write out any network-config files to
the target system.
Adds vmtests:
- verify net-meta disabled does not render file in target
- verify users can pass network: {config: disabled} to disable
cloud-init networking in the target
- verify users can pass newtork:
{config: disabled, version: 1} to disable cloud-init
networking in the target
A number of vmtest scenarios trigger stuck or hung kernels and leave
the VM running in such state which continues to consume resources on
the host, prolonging the total time for a vmtest complete run. This
patch reconfigures the guest kernel to panic on soft-lockups, NMI
watchdog misses, and hung tasks and configures QEMU to exit when a
reboot occurs.
The combination will ensure that when a guest cannot progress we fail
fast and exit. The default install timeout is 3000 seconds. In the
case of a failure we now will immediate exit, recording failure, and
move on to the next test instead of burning resources for the
remaining portion of the timeout. This will dramatically reduce the
total amount of time to complete a run and we typically see an install
failure in the first 300 or so.
For test-cases which have provent to be a challenge, we can optionally
enable the 'crashdump' flag in a VMTest class which will modify a VM
to enable the linux kernel crashdump feature and if such a panic
occurs, then lkcd would trigger a dump and capture more debugging
state. This is disabled by default; there are some bugs in
configuring/enabling crashdump "live" in the ephemeral enviroment so
we'll only turn this on for hard-to-debug crashes