From a96903e4da22b4a3f5b25866dd68db051c299f22 Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Tue, 29 Nov 2022 15:39:03 +1300 Subject: [PATCH] fix removing more than one partition when applying gadget data --- subiquity/server/controllers/filesystem.py | 2 +- subiquity/server/controllers/tests/test_filesystem.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/subiquity/server/controllers/filesystem.py b/subiquity/server/controllers/filesystem.py index 1f556dae..144847b5 100644 --- a/subiquity/server/controllers/filesystem.py +++ b/subiquity/server/controllers/filesystem.py @@ -496,7 +496,7 @@ class FilesystemController(SubiquityController, FilesystemManipulator): if (offset, size) in parts_by_offset_size: preserved_parts.add(parts_by_offset_size[(offset, size)]) - for part in disk.partitions(): + for part in list(disk.partitions()): if part not in preserved_parts: self.delete_partition(part) del parts_by_offset_size[(part.offset, part.size)] diff --git a/subiquity/server/controllers/tests/test_filesystem.py b/subiquity/server/controllers/tests/test_filesystem.py index ee2ae35a..3b11143e 100644 --- a/subiquity/server/controllers/tests/test_filesystem.py +++ b/subiquity/server/controllers/tests/test_filesystem.py @@ -504,9 +504,11 @@ class TestCoreBootInstallMethods(IsolatedAsyncioTestCase): reused_part = make_partition( self.fsc.model, disk, offset=1 << 20, size=1 << 30, preserve=True) self.fsc.model.add_filesystem(reused_part, 'ext4') - # And one that does not. + # And two that do not. make_partition( self.fsc.model, disk, offset=2 << 30, size=1 << 30, preserve=True) + make_partition( + self.fsc.model, disk, offset=3 << 30, size=1 << 30, preserve=True) self.fsc._system = self._details_for_structures([ snapdapi.VolumeStructure( type="0FC63DAF-8483-4772-8E79-3D69D8477DE4",