~mwhudson/curtin:convert-imsm

Last commit made on 2021-06-14
Get this branch:
git clone -b convert-imsm 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:
convert-imsm
Repository:
lp:~mwhudson/curtin

Recent commits

a782122... by Michael Hudson-Doyle

address review comments

 * do not rely on the fact that containers do not have their own
   metadata
 * add a unit test

ad86602... 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.

52b9fdd... by Michael Hudson-Doyle

block_meta: make preserve: true on a raid in a container work

Pass any supplied container name to raid_verify and on to md_check and
check it against the existing device.

Also tidy up a few other things in the raid verification code path: make
checking functions consistently raise ValueError on failure rather than
returning True / False and have the verification of raid level actually
check the level of the existing array.

This also fixes preserve: true on a raid0 array while we are there --
raid0 arrays do not have degraded or sync_action attributes.

204728a... by Ryan Norwood <email address hidden>

Fix NVMe validation for namespaces with UUID

NVMe namespaces are only verified if the wwn comes from either the
NGUID or EUI64. With NVMe 1.3 a third ID, UUID is now[1] supported for a
namespace. If it exists it takes precedence and the wwid in sysfs will
populate with that uuid and use a uuid.XXXXX format, which does not
validate correctly with the filter in curtin.

/sys/devices/virtual/nvme-subsystem/nvme-subsys0/\
nvme0/nvme0n1/wwid:uuid.289acd66-794d-439d-abd0-0396f6382936

1. https://lore.kernel.org/patchwork/patch/808637/

LP: #1925399

def7d5b... by Dan Bungert

meta_simple: handle multiple disks in storage config with dd-image

When scanning storage config for the target device to use with dd-image
install stop after finding a disk matching serial and grub_device true.

(Thanks to Ryan Harper and Lee Trager for good discussions and fix
 proposals)

LP: #1925722

d49d35b... by Dan Bungert

Use /proc/filesystems to decide passno

The 'nodev' is intended to indicate
"whether the file system is mounted on a block device"
https://red.ht/3toGT5b

Use this info to set nodev items to passno 0, and default to 1 for
non-nodev or if the filesystem isn't present there.
Except that /proc/filesystems doesn't list 'swap' or 'none', so special
case those to passno 0.

LP: #1717584, LP: #1785354

1ff27dd... by Michael Hudson-Doyle

block_meta: fix wiping of existing dasd partition

The partition verification code does not need the part_path variable in
this case but the partition wiping code does.

87aa64b... by Michael Hudson-Doyle

block_meta: pass --yes to lvcreate alongside --wipesignatures=y

Otherwise it will not actually wipe the signatures it finds.

LP: #1923487

4339a49... by Michael Hudson-Doyle

remove 'strict' arguments to block.wipe_volume and block.quick_zero

It was only passed by clear_holders._wipe_superblock and clear_holders
is all best effort anyway.

in particular, this should fix failures seen in subiquity error reports
when wiping very small (<1M) partitions.

LP: #1868177