Olivier Gayot has proposed merging ~ogayot/curtin:raid+ptable into curtin:master.
Commit message: storage-config: parse ptable field for RAID if specified If the probe data reports a partition table on a RAID device, we need to include it in the resulting storage action. Otherwise, the client needs to guess the layout of partitions, and will most likely fail to do so. With Subiquity, the absence of the ptable field leads to the following issues: * failure to detect existing ESPs on GPT * upon creating a new partition on the RAID, the partition table is automatically changed to the default type (i.e., GPT except on s390x). LP: #2098075 Requested reviews: curtin developers (curtin-dev) Related bugs: Bug #2098075 in subiquity: "use-gap on IMSM RAID devices installs another ESP partition, despite there is one available" https://bugs.launchpad.net/subiquity/+bug/2098075 For more details, see: https://code.launchpad.net/~ogayot/curtin/+git/curtin/+merge/481078 -- Your team curtin developers is requested to review the proposed merge of ~ogayot/curtin:raid+ptable into curtin:master.
diff --git a/curtin/storage_config.py b/curtin/storage_config.py index 8646a2e..f4e3797 100644 --- a/curtin/storage_config.py +++ b/curtin/storage_config.py @@ -1138,6 +1138,13 @@ class RaidParser(ProbertParser): 'raidlevel': raid_data.get('raidlevel'), } + if 'ID_PART_TABLE_TYPE' in raid_data: + ptype = raid_data['ID_PART_TABLE_TYPE'] + if ptype in schemas._ptables: + action['ptable'] = ptype + else: + action['ptable'] = schemas._ptable_unsupported + if 'MD_METADATA' in raid_data: action['metadata'] = raid_data["MD_METADATA"] diff --git a/tests/unittests/test_storage_config.py b/tests/unittests/test_storage_config.py index c078c54..87ad606 100644 --- a/tests/unittests/test_storage_config.py +++ b/tests/unittests/test_storage_config.py @@ -1153,6 +1153,7 @@ class TestExtractStorageConfig(CiTestCase): self.assertEqual({'id': 'raid-md1', 'type': 'raid', 'metadata': '1.2', 'raidlevel': 'raid1', 'name': 'md1', 'path': '/dev/md1', + 'ptable': 'gpt', 'devices': ['partition-vdb1', 'partition-vdc1'], 'spare_devices': []}, raids[0]) self.assertEqual({
-- Mailing list: https://launchpad.net/~curtin-dev Post to : curtin-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~curtin-dev More help : https://help.launchpad.net/ListHelp