| Age | Commit message (Collapse) | Author |
|
This reverts commit 43c0a1474c4d32cebf0e940e555a7ac6851dbe9c.
(I incorrectly didn't fix the Depends during the preceding merge, but
its existence is still sufficient for this revert to not cause merge
conflicts into master.)
|
|
This is required because master and the ubuntu/* branches now conflict
on merge, due to different Depends lines for probert. This commit being
present in master and in each of the packaging branches gives git enough
information to not conflict.
|
|
Matching commit to curtin for
https://github.com/CanonicalLtd/probert/pull/73
|
|
Matching commit to curtin for
https://github.com/CanonicalLtd/probert/pull/73
|
|
|
|
Probert is not in main, cannot depend on probert
LP: #1831757
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
By switching from subp(..., target=...) to ChrootableTarget.
LP: #1829325.
|
|
Just change the export=False to export=True in the call to mdadm_examine
in md_check_array_membership.
LP: #1830157
|
|
Sample use case: apt-cacher-ng is setup as the apt proxy
on the host system (via Acquire::HTTP::Proxy), but it is
not wanted and not functional in the guest systems used
for the vmtests.
|
|
|
|
|
|
This test now passes so remove the skip_by_date decorator.
|
|
- Add support for detecting multipath devices and members
- Add handling to clear-holders for removing multipath partitions
- Update block.lookup_disk to return multipath member devices
- Add support to "hide" a multipath dm device while operating on
a single path member.
- vmtest: update xkvm to pass serial/wwn correctly for multipath
udev rules
- vmtest: update basic_scsi configuration and drop unused extra
disk.
LP: #1813228
|
|
Curtin by default writes out some overrides to the default grub
behavior that is desirable for a MAAS installed machine. Curtin
now has two other use-cases where these defaults are not the
best choice. When installing a pet-system, it is far more likely
that the user has additional operating systems which they would
prefer to have grub discover and they may have different terminal
settings which make more sense than serial console.
- Add 'probe_additional_os' boolean, defaulting to False, which
retains the default behavior of curtin for MAAS.
- Add 'terminal' key which will allows users to specify what
terminal value for grub to use.
|
|
|
|
python3-jsonschema is needed to perform the schema-validate stage of the
vmtest target. This branch makes vmtest-system-setup install the package
among the other vmtest dependencies.
|
|
* tox.ini: depend on a newer version of Pylint
* Don't trigger E1101 for dynamically generated members (DISTROS.*)
LP: #1828229
|
|
Disco images now contain multipath packages and daemon enabled.
This affects how partitions are found when the underlying disk
is mpath enabled. This will be addressed in another branch, for
now disable the tests affected until it lands.
|
|
Need a bit more time to verify what should and won't work;
particular interest in whether setting a higher ipv6 mtu
will force device mtu to the same level or not.
|
|
Replace most calls with curtin.config.load_config. For a few
cases which parse strings, use yaml.safe_load.
|
|
Trusty is EOL now, we can drop Trusty in vmtest to recover some
of that sweet, sweet CPU and IO time.
|
|
|
|
This fixes tests_vmtests failures due to missing stub for kernel-img-conf
file check.
|
|
subprocess's stdin requires a bytes-like object so callers
must encode string values to bytes before submitting them.
LP: #1825007
|
|
This fixes errors found during Centos tests as we only
create a kernel-img.conf on Ubuntu releases.
|
|
|
|
|
|
|
|
LP: #1534162
|
|
block-meta use of zpool_create did not supply the optional parameters
that are supported in the zfs/zpool configuration dictionary. Fix
this by extracting the values from the config and passing them
to zpool_create.
LP: #1823682
|
|
type:lvm_partition schema allows for the 'size' field as integer
or string. Process the 'size' value through human2bytes which
converts 'size' values into bytes.
|
|
|
|
|
|
|
|
Currently curtin will shutdown a bcache device by stopping the associated
cacheset. In some cases, the cacheset is responsible for multiple backing
devices each of which may have a large amount of dirty data which needs to
be flushed to the backing device before the cacheset can completely stop.
A better approach is to stop each backing device and monitor for when
their dirty-data and state indicate that it's clean and once all
related backing devices were stopped to stop the cacheset. However,
this triggered numerous kernel BUG() in kernels from Xenial 4.4 GA
through Disco 5.0 kernels.
A second approach unregistered the cacheset device; this was an
improvement but ultimately still triggered kernel BUG() in several
released kernels. This would have introduced a regression from
current behavior.
This patchset retains the original process of stopping the cacheset
and then the bcache device, however it refactors the code which
discovers, stops and waits into curtin.block.bcache and introduces
a higher timeout while waiting for bcache devices to stop.
The original fix mentioned was a 1200 second timeout.
This patch retains the total time, but breaks the sleep periods
up into smaller amounts and progressively increases the timeout.
LP: #1796292
|
|
Fixes pyflakes failure:
tools/schema-validate-storage:3: 'jsonschema' imported but unused
tools/schema-validate-storage:4: 'json' imported but unused
tools/schema-validate-storage:6: 'yaml' imported but unused
|
|
Introduce curtin feature 'STORAGE_CONFIG_SCHEMA' and a subcommand,
'schema' which accepts a path to a storage configuration file and
will validate the configuration against the storage schema.
Add some exception handling logic to decode the schema errors and
print useful pointers to users on where the error occurred.
|
|
RAID5 arrays are assembled in degraded mode for speed[1]. If an
array is INACTIVE, then curtin cannot wipe the array through the
md device. Instead, examine the array members and find the mdadm
superblock and data offsets and wipe members at those locations.
This wipes the array contents without requiring it to be runnable.
LP: #1815018
|
|
|
|
|
|
Update dm_crypt handler to accept 'keyfile' in addition to 'key' for
configuring crypt device passphrase.
|
|
Recent updates to redhat target images appear to require
/run to be mounted. Update ChrootableTarget to allow callers
to specify a list of mounts needed. In curthooks.setup_grub
if target is redhat, then ensure that /run is in the list.
LP: #1815666
|
|
vmtest has a few hard-coded places which specify vm ram size of 1G.
Consolidate this configuration and allow the environment to override
the value as needed. Finally, set the default vm ram size in the the
releases and tune Disco release to 2048.
|