~jnavila/curtin:master

Last commit made on 2021-01-22
Get this branch:
git clone -b master https://git.launchpad.net/~jnavila/curtin
Only Jean-Noël AVILA can upload to this branch. If you are Jean-Noël AVILA please log in for upload directions.

Branch merges

Branch information

Name:
master
Repository:
lp:~jnavila/curtin

Recent commits

53ac301... by Michael Hudson-Doyle

block: fixes for verifying existing multipath partitions

Verifying a partition on a multipath disk currently fails for two
reasons:

 1. get_blockdev_for_partition does not know how to go from a multipath
    partition to a multipath disk, so sfdisk_info ends up calling sfdisk
    on the partition, which fails.
 2. sfdisk --json /dev/dm-X prints /dev/mapper paths for the partition
    paths but compares them against the fully deferenced /dev/dm-Y path
    for the partition.

2 is easily fixed by resolving symlinks before comparing nodes. 1
can be fixed with a little udev poking but then sys_block_path
returns paths like /sys/class/block/dm-1/dm-2 for a partition of
a multipath disk, which doesn't exist. Luckily, nodes for
partitions exist directly in /sys/class/block and have done since
/sys/class/block was added in 2008 (see kernel commit
edfaa7c36574f1bf09c65ad602412db9da5f96bf) so we can just remove
the call to get_blockdev_for_partition from sys_block_read.

ea15dfa... by Michael Hudson-Doyle

multipath: use udev DM_NAME for find_mpath_id, fix 4k sector calc

1) find_mpath_id asked multipathd to list all maps and read out the name
   (or wwid if no name) of the device from that and sometimes timed out,
   but this information is already present in udev as DM_NAME. And
   DM_NAME is the wwid if user_friendly_names is disabled, so there's no
   need to be conditional about that either.

2) fix calculating start and offset of partition on multipathed 4k disk

   calc_dm_partition_info returns start and offset in 512-byte sectors
   but calc_partition_info only adjusted the sectors in the
   non-multipath case.

   I also did some code tidying, including moving the responsibility for
   raising an exception if dmsetup produces no output to
   calc_dm_partition_info.

LP: #1878041

2bd333b... by Michael Hudson-Doyle

Release 21.1

Bump the version in curtin/__init__.py to 21.1.

LP: #1911841

756d3d8... by Mark Klein

This adds arm64 compatibility for RH installations

The current behaviour for Redhat based installs assumes x86_64
arch for grub. This change queries the target arch and makes
decisions on packages based on that.

b1312b5... by Ryan Harper

vmtest: add Hirsute release classes, tool to add vmtest class

Add a tool to generate new release classes based on a previous
release, for example:

  ./tools/vmtest-add-release -p tests/vmtests \
    --previous-release=focal --distro-release=hirsute

User still needs to create the release class in tests/vmtests/releases.py

e387c74... by Ryan Harper

vmtest: fix image-sync after maas URL stream rename

Image syncing for vmtest has been failing since MAAS renamed their
daily image stream to stable. In an effort to keep the 'daily' URL
valid the website redirects this to 'stable' path. However the content
was also modified and includes references to files and URLs which have
the 'stable' name included. This broke vmtest image sync which expected
the 'daily' string to be present in filenames and content.

The observable result was that curtin would attempt to find content it
had just *synced* to /srv/images but when searching, it would load up
the cached content files which only referenced the 'daily' stream data
and would indicate that the target file was missing.

This branch moves vmtest to using the 'stable' maas image stream
directly. This value is controllable via an environment variable,
MAAS_IMAGE_STREAM, if set will be used to compose the IMAGE_SRC_URL
and the STREAM_BASE variable which is used to find cached content in
/srv/images/.vmtest_data/ directory.

LP: #1908543

404b035... by Michael Hudson-Doyle

storage_config: set ptable to vtoc for 'virt' dasds as well as 'ECKD'

3bb8cc0... by Ryan Harper

install_grub: Fix bootloader-id for RHEL systems, must be redhat

In 7310b4fe61465, the port from shell dropped a change where the boot-id
value for Redhat family OSes is the value 'redhat' not the os-release ID
value (which is rhel, on RHEL systems).

Add this change back to install_grub and fix unittests that fail with
'rhel' instead of 'redhat' in os-release values. Hardcode 'redhat'
paths in expected values.

LP: #1906543

a259100... by Dan Watkins

vmtests: remove LP: #1888726 skip_by_date decorators

The bug has been fixed, these tests are now passing.

6b34b6a... by Michael Hudson-Doyle

storage_config: only produce type: dasd actions for ECKD dasds

this also attempts to improve the dasd documentation a bit