~mwhudson/curtin:lp-1895192

Last commit made on 2021-08-02
Get this branch:
git clone -b lp-1895192 https://git.launchpad.net/~mwhudson/curtin
Only Michael Hudson-Doyle can upload to this branch. If you are Michael Hudson-Doyle please log in for upload directions.

Branch merges

Branch information

Name:
lp-1895192
Repository:
lp:~mwhudson/curtin

Recent commits

7648b2e... by Michael Hudson-Doyle

flakes

7f4bb49... by Michael Hudson-Doyle

curthooks: do not add lvm devices filter when / is mutipathed

This code was added to defend against lvcreate seeing multiple paths to
a PV but the relevant udev rules already protect against this, and the
devices filter prevents assembling a VG containing an encrypted volume.

LP: #1895192

e0d2959... by Michael Hudson-Doyle

move making mounts recursively private into do_unmount

This means that running "curtin unmount -t /target" gets the robustness
improvments that were recently added to ChrootableTarget.

d2894d0... by Michael Hudson-Doyle

disk_handler: fix partitioning a new RAID

The commmit "disk_handler: check wipe field when deciding whether to
reformat raids" fixed the case of putting a partition on an existing
raid but broke the case of putting a partition on a new RAID.

I adapted a vmtest to exercise this path too.

abd623e... by Lukas Märdian

curthooks:setup_zipl: use proper device path in root= arg for cmdline

Using root=UUID=... is not supported, according to
https://wiki.ubuntu.com/FSTAB

1f663e5... by Michael Hudson-Doyle

fix tearing down ChrootableTarget when mounts appear while it is set up

There are several bug reports that boil down to
ChrootableTarget.__exit__ failing to unmount bind mounts with "target is
busy". For example, ssh-ing in while running tends to do this, because
that creates a mount in /run and then umounting /target/run fails
because of the sub mount. Fix this by marking the mountpoints
recursively private and then unmounting them recursively.

LP: #1928839
LP: #1934775

c6cc841... by Dan Bungert

Don't override PYTHON env var in bin/curtin

In curtin/bin/curtin, use the PYTHON variable if it has been set.
Continue to fallback to PY3OR2_PYTHON if not.

82765ab... by Michael Hudson-Doyle

disk_handler: check wipe field when deciding whether to reformat raids

Currently preserve=true for raid means "preserve the RAID array"
and ALSO "preserve the partition table". So change the
interpretation of preserve to be solely about preserving the
array and instead check the wipe field to decide if the array
should get a new partition table or not.

LP: #1932976

170a39b... by Michael Hudson-Doyle

storage_config: properly handle raid containers

040a36c... by Paride Legovini

pylintrc: explicitly list the DISTROS generated-members

For some obscure reason setting

  generated-members=DISTROS\.

in pylintrc makes the pylint run flaky, causing failures like:

curtin/commands/install_grub.py:93:19:
  E1101: Instance of 'Distros' has no 'debian' member (no-member)
curtin/commands/install_grub.py:155:28:
  E1101: Instance of 'Distros' has no 'redhat' member (no-member)

These failures:

 - happen on about 15% of the time, at least on Bionic
 - also happen with the latest stable version of pylint (2.8.2)
 - only happen on install_grub.py (which only refers to debian and redhat)
 - do not seem to happen on Impish.
 - possibly related: https://github.com/PyCQA/pylint/issues/1628

But the truth is I don't understand why generated-members=DISTROS\.
even works some of the time for some generated members. Let's replace
it with the explicit list of the (non auto-detected) generated members,
so it will always work, and we'll know why it does.