diff --git a/subiquity/controllers/filesystem.py b/subiquity/controllers/filesystem.py index ccf85807..eaf108b9 100644 --- a/subiquity/controllers/filesystem.py +++ b/subiquity/controllers/filesystem.py @@ -397,6 +397,8 @@ class FilesystemController(BaseController): self.delete(subobj) def reformat(self, disk): + if disk.type == "disk": + disk.preserve = False self.clear(disk) for p in list(disk.partitions()): self.delete(p) @@ -414,6 +416,10 @@ class FilesystemController(BaseController): self.create_filesystem(partition, spec) return + if len(disk.partitions()) == 0: + if disk.type == "disk": + disk.preserve = False + needs_boot = self.model.needs_bootloader_partition() log.debug('model needs a bootloader partition? {}'.format(needs_boot)) can_be_boot = DeviceAction.MAKE_BOOT in disk.supported_actions @@ -534,4 +540,5 @@ class FilesystemController(BaseController): part.wipe = 'zero' self.model.grub_install_device = part else: + new_boot_disk.preserve = False self._create_boot_partition(new_boot_disk) diff --git a/subiquity/models/filesystem.py b/subiquity/models/filesystem.py index a6871e36..f5b3b84f 100644 --- a/subiquity/models/filesystem.py +++ b/subiquity/models/filesystem.py @@ -588,7 +588,7 @@ class Disk(_Device): serial = attr.ib(default=None) path = attr.ib(default=None) model = attr.ib(default=None) - wipe = attr.ib(default='superblock') + wipe = attr.ib(default=None) preserve = attr.ib(default=False) name = attr.ib(default="") grub_device = attr.ib(default=False) @@ -1192,8 +1192,6 @@ class FilesystemModel(object): emitted_ids = set() def emit(obj): - if obj.type == 'disk' and not obj.used: - return r.append(asdict(obj)) emitted_ids.add(obj.id)