curtin-dev team mailing list archive
-
curtin-dev team
-
Mailing list archive
-
Message #02839
[Merge] ~dbungert/curtin:image-writer into curtin:master
Dan Bungert has proposed merging ~dbungert/curtin:image-writer into curtin:master with ~dbungert/curtin:old-series-extended as a prerequisite.
Commit message:
fix issues around handling raw images on old series
Requested reviews:
curtin developers (curtin-dev)
For more details, see:
https://code.launchpad.net/~dbungert/curtin/+git/curtin/+merge/443381
--
Your team curtin developers is requested to review the proposed merge of ~dbungert/curtin:image-writer into curtin:master.
diff --git a/curtin/block/__init__.py b/curtin/block/__init__.py
index 0e13a0d..86251d9 100644
--- a/curtin/block/__init__.py
+++ b/curtin/block/__init__.py
@@ -734,6 +734,7 @@ def get_root_device(dev, paths=None):
LOG.debug('Searching for filesystem on %s containing one of: %s',
dev, paths)
partitions = get_pardevs_on_blockdevs(dev)
+ LOG.debug('Known partitions %s', list(partitions.keys()))
target = None
tmp_mount = tempfile.mkdtemp()
for i in partitions:
diff --git a/curtin/commands/block_meta.py b/curtin/commands/block_meta.py
index 71035f9..24ceaf4 100644
--- a/curtin/commands/block_meta.py
+++ b/curtin/commands/block_meta.py
@@ -159,13 +159,17 @@ def write_image_to_disk(source, dev):
'--', source['uri'], devnode])
util.subp(['partprobe', devnode])
- udevadm_trigger([devnode])
- try:
- lvm.activate_volgroups()
- except util.ProcessExecutionError:
- # partial vg may not come up due to missing members, that's OK
- pass
- udevadm_settle()
+ for i in range(3):
+ # For images that contain block devices of interest to device mapper, a
+ # single round can sometimes not be enough to discover the mapped
+ # devices. So let's have an ugly retry loop.
+ udevadm_trigger([devnode])
+ try:
+ lvm.activate_volgroups()
+ except util.ProcessExecutionError:
+ # partial vg may not come up due to missing members, that's OK
+ pass
+ udevadm_settle()
# Images from MAAS have well-known/required paths present
# on the rootfs partition. Use these values to select the
diff --git a/tools/vmtest-create-static-images b/tools/vmtest-create-static-images
index d236608..3c20ef3 100755
--- a/tools/vmtest-create-static-images
+++ b/tools/vmtest-create-static-images
@@ -34,7 +34,8 @@ trap cleanup EXIT
mkpart primary 0% 25% \
mkpart primary 25% 100% \
set 2 lvm on
- sudo udevadm trigger --settle "${loopdev}"
+ sudo udevadm trigger "${loopdev}"
+ sudo udevadm settle
# create LVM volumes
sudo pvcreate "${loopdev}"p2
Follow ups