~pguimaraes/curtin/+git/curtin:master

Last commit made on 2018-11-09
Get this branch:
git clone -b master https://git.launchpad.net/~pguimaraes/curtin/+git/curtin
Only Pedro GuimarĂ£es can upload to this branch. If you are Pedro GuimarĂ£es please log in for upload directions.

Branch merges

Branch information

Name:
master
Repository:
lp:~pguimaraes/curtin/+git/curtin

Recent commits

ea939ee... by Ryan Harper

block_meta: use wipe config when clearing partitions

The partition handler in block_meta would wipe in "superblock" mode
before creating a partition but this only clears 1MB at the start
of the partition. Curtin needs to respect the wipe mode which may
wipe the location of the device differently.

Also:
  - Document pre-partitioning superblock wiping
  - Add PReP GPT config to basic/basic_scsi test
  - Sync basic and basic_scsi partition config
  - collect ls -al on /dev/disk/by-partuuid

LP: #1800153

b69e35e... by Chad Smith

tests: fix vmtests for apt perserve_source_list changes

Commit 40e6cc3 changed behavior for curtin to emit only the new format apt
config "apt: preserve_sources_list" instead of the old format
"apt_preserve_sources_list". Vmtests needed updating on Xenial and later
to check only for the new format.

40e6cc3... by Scott Moser

apt: Use new format apt config when writing preserve_sources_list.

cloud-init reads the "preserve_sources_list" setting from 2 config paths:
 old: top level apt_preserve_sources_list
 new: apt/preserve_sources_list

Previously curtin would write only the old form. That lead to the
case where cloud-init would raise exception complaining about conflicting
settings and exiting error. That occurred because MAAS was incorrectly
sending 'preserve_sources_list: True'

The change here could result in actually causing that problem if:
A. a user was specifying old style 'apt_preserve_sources_list=False' in
   user-data. They now have to match the version that curtin writes
   but at least curtin is writing new format on new cloud-init.
B. MAAS provided differing setting in the curtin config
  'debconf_selections'

That is because now the system will have format config specifying True
written by curtin and a different format written by user/maas.

I'd suggest the most likely chance for regression here would be
16.04+ systems with old MAAS (providing 'B') or JuJu providing 'A'.

LP: #1735950

01e9fc5... by Ryan Harper

vmtests: multipath mount /home with nofail and validate in unittest

In some scenarios the mounting of /home partition under multipath fails
and leaves the boot stage hung in emergency shell. We have no ability
to debug this in automated runs on infrastructure. Instead we will now
pass the 'nofail' mount option which instructs systemd to not fall to
the emergency shell allowing the boot to complete and vmtest to collect
information. We now validate the status of the home mount in the
unittest in the class. When this fails, we will have collected the
journal and the unit information which should help narrow down why
we see the failure.

182a58b... by Scott Moser

vmtests: fix common collect scripts to not exit failure.

If collect scripts exit non-zero, then cloud-init in the booted system
will complain that they have done so. This adds noise to logs.

At this point, the only command in a long list that affects the exit code
is the last one. At some point in the future we may have more systematic
collection. At that point it might make sense to exit if the collection
failed.

For now, just exit 0.

d3b8b70... by Ryan Harper

vmtest: handle collect disk unpack failure

If unpacking a collect disk fails, we don't chmod the collect
disk output which can leave un-removable files for non-root users.
Fix this by catching the CalledProcessException and adding a
finally clause to run the recursive chmod.

1ad639b... by Ryan Harper

vmtests: dont use multiple subclasses in uefi 4k tests

The uefi 4k sector size test used an intermediary subclass
to set the sector_size of 4k, but the resulting subclass
ended up creating an instance of the parent class which set
the 'collect_scripts' attribute and then tripped the runtime
check on vmtests having an empty 'collect_scripts' attribute.

The fix was to create the 4k tests directly from the base class.

e4727e8... by Ryan Harper

vmtests: disable snapd/seeding to avoid boot hang

In Cosmic some snaps are now seeded in the image and will
automatically install/mount at runtime. Overlayroot has
exposed a bug in snapd but prevents images from booting
completely. Workaround this issue (bug #1797218)
snapd and snapd.seeded services. A nice side-effect is that
those images with seeded snaps boot faster and use less
memory.

94afac7... by Ryan Harper

jenkins-runner: fix when using --filter only

The elif clause when checking for tests via positional or filter
parameters never took the path where we invoked vmtest-filter.
Fix this by only pre-populating tests with 'tests/vmtests' if
there are no positional parameters and no filter parameters.

Also re-indent filter block to match program style.

0f99308... by Ryan Harper

distro: fix system_upgrade command using string instead of function

The distro system_upgrade configuration dictionary used a string
for the name of the function to call which resulted in attempting
to call a string type which failed. This was found in CI running
proposed upgrade testing.

The fix is to use the function name itself rather than string.
This branch also adds unittest for invoking the system_upgrade path.

LP: #1796968