storage/v2: edit reuse existing format/mount value

This commit is contained in:
Dan Bungert 2021-10-05 15:01:07 -06:00
parent 7d80e8cc83
commit 57148ee8d4
2 changed files with 34 additions and 3 deletions

View File

@ -373,10 +373,15 @@ class FilesystemController(SubiquityController, FilesystemManipulator):
if data.partition.grub_device not in (None, partition.grub_device):
raise ValueError('edit_partition does not support changing '
+ 'grub_device')
existing_format = ''
existing_mount = ''
if partition._fs:
existing_format = partition._fs.fstype
if partition._fs._mount:
existing_mount = partition._fs._mount.path
spec = {
'fstype': data.partition.format,
'mount': data.partition.mount,
'fstype': data.partition.format or existing_format,
'mount': data.partition.mount or existing_mount,
}
self.partition_disk_handler(disk, partition, spec)
return await self.v2_GET()

View File

@ -475,6 +475,32 @@ class TestWin10(TestAPI):
self.assertFalse(resp['need_root'])
self.assertFalse(resp['need_boot'])
@timeout(5)
async def test_edit_partial(self):
disk_id = 'disk-sda'
await self.post('/storage/v2/reformat_disk', disk_id=disk_id)
data = {
'disk_id': disk_id,
'partition': {
'format': 'ext4',
'mount': '/',
}
}
await self.post('/storage/v2/add_partition', data)
data['partition'].update({
'number': 2,
'format': None,
'mount': '/home'
})
resp = await self.post('/storage/v2/edit_partition', data)
sda = first(resp['disks'], 'id', disk_id)
sda2 = first(sda['partitions'], 'number', 2)
self.assertEqual('ext4', sda2['format'])
self.assertEqual('/home', sda2['mount'])
class TestManyDisks(TestAPI):
machine_config = 'examples/many-nics-and-disks.json'