mark formatted existing partions as ok_for_{raid,lvm_vg}
as we do not support removing an exisiting format, this is required to be able to reuse these partitions!
This commit is contained in:
parent
e63204afa9
commit
83574fbc0b
|
@ -728,6 +728,8 @@ class Disk(_Device):
|
||||||
@property
|
@property
|
||||||
def ok_for_raid(self):
|
def ok_for_raid(self):
|
||||||
if self._fs is not None:
|
if self._fs is not None:
|
||||||
|
if self._fs.preserve:
|
||||||
|
return self._fs._mount is None
|
||||||
return False
|
return False
|
||||||
if self._constructed_device is not None:
|
if self._constructed_device is not None:
|
||||||
return False
|
return False
|
||||||
|
@ -811,6 +813,8 @@ class Partition(_Formattable):
|
||||||
if self.flag in ('boot', 'bios_grub', 'prep'):
|
if self.flag in ('boot', 'bios_grub', 'prep'):
|
||||||
return False
|
return False
|
||||||
if self._fs is not None:
|
if self._fs is not None:
|
||||||
|
if self._fs.preserve:
|
||||||
|
return self._fs._mount is None
|
||||||
return False
|
return False
|
||||||
if self._constructed_device is not None:
|
if self._constructed_device is not None:
|
||||||
return False
|
return False
|
||||||
|
@ -875,6 +879,8 @@ class Raid(_Device):
|
||||||
@property
|
@property
|
||||||
def ok_for_raid(self):
|
def ok_for_raid(self):
|
||||||
if self._fs is not None:
|
if self._fs is not None:
|
||||||
|
if self._fs.preserve:
|
||||||
|
return self._fs._mount is None
|
||||||
return False
|
return False
|
||||||
if self._constructed_device is not None:
|
if self._constructed_device is not None:
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -229,6 +229,20 @@ class TestFilesystemModel(unittest.TestCase):
|
||||||
dev3 = make_new_device()
|
dev3 = make_new_device()
|
||||||
make_partition(model, dev3)
|
make_partition(model, dev3)
|
||||||
self.assertFalse(getattr(dev3, attr))
|
self.assertFalse(getattr(dev3, attr))
|
||||||
|
# Empty existing devices are ok
|
||||||
|
dev4 = make_new_device()
|
||||||
|
dev4.preserve = True
|
||||||
|
self.assertTrue(getattr(dev4, attr))
|
||||||
|
# A dev with an existing filesystem is ok (there is no
|
||||||
|
# way to remove the format)
|
||||||
|
dev5 = make_new_device()
|
||||||
|
dev5.preserve = True
|
||||||
|
fs = model.add_filesystem(dev5, 'ext4')
|
||||||
|
fs.preserve = True
|
||||||
|
self.assertTrue(dev5.ok_for_raid)
|
||||||
|
# But a existing, *mounted* filesystem is not.
|
||||||
|
model.add_mount(fs, '/')
|
||||||
|
self.assertFalse(dev5.ok_for_raid)
|
||||||
|
|
||||||
def test_disk_ok_for_xxx(self):
|
def test_disk_ok_for_xxx(self):
|
||||||
model = make_model()
|
model = make_model()
|
||||||
|
|
Loading…
Reference in New Issue