filesystem: edit require wipe on fstype change
This commit is contained in:
parent
590eb3a40c
commit
02d2d44bae
|
@ -532,6 +532,10 @@ class FilesystemController(SubiquityController, FilesystemManipulator):
|
|||
raise ValueError('edit_partition does not support changing boot')
|
||||
spec = {'mount': data.partition.mount or partition.mount}
|
||||
if data.partition.format is not None:
|
||||
if data.partition.format != partition._fs.fstype:
|
||||
if data.partition.wipe is None:
|
||||
raise ValueError(
|
||||
'changing partition format requires a wipe value')
|
||||
spec['fstype'] = data.partition.format
|
||||
if data.partition.size is not None:
|
||||
spec['size'] = data.partition.size
|
||||
|
|
|
@ -349,6 +349,7 @@ class TestFlow(TestAPI):
|
|||
'partition': {
|
||||
'number': root['number'],
|
||||
'format': 'ext4',
|
||||
'wipe': 'superblock',
|
||||
}
|
||||
}
|
||||
edit_resp = await inst.post('/storage/v2/edit_partition', data)
|
||||
|
@ -755,6 +756,7 @@ class TestEdit(TestAPI):
|
|||
'partition': {
|
||||
'number': 3,
|
||||
'format': 'btrfs',
|
||||
'wipe': 'superblock',
|
||||
}
|
||||
}
|
||||
resp = await inst.post('/storage/v2/edit_partition', data)
|
||||
|
@ -790,6 +792,7 @@ class TestEdit(TestAPI):
|
|||
'number': 3,
|
||||
'format': 'btrfs',
|
||||
'mount': '/',
|
||||
'wipe': 'superblock',
|
||||
}
|
||||
}
|
||||
resp = await inst.post('/storage/v2/edit_partition', data)
|
||||
|
@ -812,6 +815,7 @@ class TestEdit(TestAPI):
|
|||
'number': 3,
|
||||
'format': 'ext4',
|
||||
'mount': '/',
|
||||
'wipe': 'superblock',
|
||||
}
|
||||
}
|
||||
resp = await inst.post('/storage/v2/edit_partition', data)
|
||||
|
@ -827,7 +831,7 @@ class TestEdit(TestAPI):
|
|||
self.assertEqual(orig_sda2, sda2)
|
||||
|
||||
sda3 = first(sda['partitions'], 'number', 3)
|
||||
self.assertIsNone(sda3['wipe'])
|
||||
self.assertIsNotNone(sda3['wipe'])
|
||||
self.assertEqual('/', sda3['mount'])
|
||||
self.assertEqual('ext4', sda3['format'])
|
||||
self.assertFalse(sda3['boot'])
|
||||
|
@ -1232,7 +1236,11 @@ class TestRegression(TestAPI):
|
|||
resp = await inst.post('/storage/v2/add_partition', data)
|
||||
[sda] = resp['disks']
|
||||
[part] = match(sda['partitions'], mount='/foo')
|
||||
part.update({'format': 'ext3', 'mount': '/bar'})
|
||||
part.update({
|
||||
'format': 'ext3',
|
||||
'mount': '/bar',
|
||||
'wipe': 'superblock',
|
||||
})
|
||||
data['partition'] = part
|
||||
data.pop('gap')
|
||||
await inst.post('/storage/v2/edit_partition', data)
|
||||
|
|
Loading…
Reference in New Issue