~raharper/curtin:fix/chrootable-allow-resolvconf-missing

Last commit made on 2019-07-05
Get this branch:
git clone -b fix/chrootable-allow-resolvconf-missing https://git.launchpad.net/~raharper/curtin
Only Ryan Harper can upload to this branch. If you are Ryan Harper please log in for upload directions.

Branch merges

Branch information

Name:
fix/chrootable-allow-resolvconf-missing
Repository:
lp:~raharper/curtin

Recent commits

3084bb2... by Ryan Harper

ChrootableTarget: restore resolv.conf after rename if copy fails

If the copy of resolv.conf after a rename of an in-target resolv.conf
fails we will end up removing the in-target resolv.conf. Fix this by
checking if we renamed and if so restore the file before we remove
the temporary directory that was holding the original resolv.conf.

db84b2e... by Ryan Harper

Refactor to use os.path.lexist

da5a3e2... by Ryan Harper

ChrootableTarget: accept either file or symlink for rename

edfb7f4... by Ryan Harper

util.ChrootableTarget: skip rename of resolv.conf if not present in target

A target OS may not include an /etc/resolv.conf. ChrootableTarget attempts
to move the in-chroot resolv.conf out of the way and copy in the host
resolv.conf. If the target image does not have /etc/resolv.conf then we
fail when we call os.rename. Avoid this error by only invoking the
rename if the target image has a resolv.conf.

LP: #1834382

81984b4... by Ryan Harper

vmtest: dont raise SkipTest in class definition

Raising SkipTest in class definition breaks the test loader
resulting in tools/vmtest-sync-images failing. Remove skipTest
and leave the message as a comment.

37a7a0f... by Ryan Harper

vmtests: determine block name via dname when verifying volume groups

The LVM tests verify `pvs` output to check that a VG is composed of
the specified devices from the storage config. The current test
expected /dev/sda, /dev/sdb for certain VGs, however, sda/sdb kernel
names are not stable and sometimes we would fail to verify when the
order was swapped. Instead we now look up the dname, which is stable
to determine the kname of the specific disk at runtime and use that
to verify the VG is composed of the correct devices.

a5de952... by Ryan Harper

vmtest: add Centos66/Centos70 FromBionic release and re-add tests

Newer MAAS will use Bionic to deploy Centos and curtin until now
did not test this path. Critically, Centos66 has issues with ext4
features that are enabled by default in Bionic and newer, namely
'64bit' and 'metadata_csum'. These features break centos66 grub
probing which results in failed deployment, LP: #1775424.

Add additional Centos66/70 tests to verify installing from Bionic
is successful. For Centos66, we test the known workaround which is
to use 'ext3' as the root filesystem, and we introduce a test-case
which recreates the failure (test_simple.py:Centos66BionicTestSimple)
but leave it disabled by default.

b828a0f... by Ryan Harper

block-discover: add cli/API for exporting existing storage to config

Curtin can now probe an existing system for block devices and convert that
information into a storage_config yaml document representing the devices,
partitions, filesystems, etc as they would be if created from scratch.

This cli and API depend upon probert for discovery and
curtin.storage_config.validate_config to generate valid configs.

7ab5ed7... by Ryan Harper

vmtest: refactor test_network code for Eoan

Eoan images no longer contain 'route' and 'route6' from 'net-tools'
package. If the output is not present, rely on 'ip route show' and
'ip 6 route show' output instead.

0049e0a... by Michael Hudson-Doyle

curthoooks: disable daemons while reconfiguring mdadm

By switching from subp(..., target=...) to ChrootableTarget.

LP: #1829325.