clear disk.preserve when needed

also never set disk.wipe: setting preserve=False/ptable=gpt is
equivalent anyay.
This commit is contained in:
Michael Hudson-Doyle 2019-05-30 13:09:27 +12:00
parent c99227a310
commit f188a4a4b0
2 changed files with 8 additions and 3 deletions

View File

@ -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)

View File

@ -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)