Merge pull request #1243 from dbungert/add-part-require-offset
filesystem: add_partition requires offset
This commit is contained in:
commit
efd62ea380
|
@ -77,7 +77,7 @@ class FilesystemManipulator:
|
||||||
|
|
||||||
def create_partition(self, device, gap, spec, **kw):
|
def create_partition(self, device, gap, spec, **kw):
|
||||||
part = self.model.add_partition(
|
part = self.model.add_partition(
|
||||||
device, spec["size"], offset=gap.offset, **kw)
|
device, size=spec["size"], offset=gap.offset, **kw)
|
||||||
self.create_filesystem(part, spec)
|
self.create_filesystem(part, spec)
|
||||||
return part
|
return part
|
||||||
|
|
||||||
|
|
|
@ -81,13 +81,13 @@ class TestFilesystemManipulator(unittest.TestCase):
|
||||||
def add_existing_boot_partition(self, manipulator, disk):
|
def add_existing_boot_partition(self, manipulator, disk):
|
||||||
if manipulator.model.bootloader == Bootloader.BIOS:
|
if manipulator.model.bootloader == Bootloader.BIOS:
|
||||||
part = manipulator.model.add_partition(
|
part = manipulator.model.add_partition(
|
||||||
disk, size=1 << 20, flag="bios_grub")
|
disk, size=1 << 20, offset=0, flag="bios_grub")
|
||||||
elif manipulator.model.bootloader == Bootloader.UEFI:
|
elif manipulator.model.bootloader == Bootloader.UEFI:
|
||||||
part = manipulator.model.add_partition(
|
part = manipulator.model.add_partition(
|
||||||
disk, size=512 << 20, flag="boot")
|
disk, size=512 << 20, offset=0, flag="boot")
|
||||||
elif manipulator.model.bootloader == Bootloader.PREP:
|
elif manipulator.model.bootloader == Bootloader.PREP:
|
||||||
part = manipulator.model.add_partition(
|
part = manipulator.model.add_partition(
|
||||||
disk, size=8 << 20, flag="prep")
|
disk, size=8 << 20, offset=0, flag="prep")
|
||||||
part.preserve = True
|
part.preserve = True
|
||||||
return part
|
return part
|
||||||
|
|
||||||
|
@ -128,8 +128,9 @@ class TestFilesystemManipulator(unittest.TestCase):
|
||||||
|
|
||||||
disk1 = make_disk(manipulator.model, preserve=False)
|
disk1 = make_disk(manipulator.model, preserve=False)
|
||||||
disk2 = make_disk(manipulator.model, preserve=False)
|
disk2 = make_disk(manipulator.model, preserve=False)
|
||||||
|
gap = gaps.largest_gap(disk2)
|
||||||
disk2p1 = manipulator.model.add_partition(
|
disk2p1 = manipulator.model.add_partition(
|
||||||
disk2, size=gaps.largest_gap_size(disk2))
|
disk2, size=gap.size, offset=gap.offset)
|
||||||
|
|
||||||
manipulator.add_boot_disk(disk1)
|
manipulator.add_boot_disk(disk1)
|
||||||
self.assertIsBootDisk(manipulator, disk1)
|
self.assertIsBootDisk(manipulator, disk1)
|
||||||
|
@ -169,8 +170,9 @@ class TestFilesystemManipulator(unittest.TestCase):
|
||||||
|
|
||||||
disk1 = make_disk(manipulator.model, preserve=False)
|
disk1 = make_disk(manipulator.model, preserve=False)
|
||||||
disk2 = make_disk(manipulator.model, preserve=False)
|
disk2 = make_disk(manipulator.model, preserve=False)
|
||||||
|
gap = gaps.largest_gap(disk2)
|
||||||
disk2p1 = manipulator.model.add_partition(
|
disk2p1 = manipulator.model.add_partition(
|
||||||
disk2, size=gaps.largest_gap_size(disk2))
|
disk2, size=gap.size, offset=gap.offset)
|
||||||
|
|
||||||
manipulator.add_boot_disk(disk1)
|
manipulator.add_boot_disk(disk1)
|
||||||
self.assertIsBootDisk(manipulator, disk1)
|
self.assertIsBootDisk(manipulator, disk1)
|
||||||
|
@ -214,7 +216,7 @@ class TestFilesystemManipulator(unittest.TestCase):
|
||||||
manipulator = make_manipulator(Bootloader.UEFI)
|
manipulator = make_manipulator(Bootloader.UEFI)
|
||||||
disk1 = make_disk(manipulator.model, preserve=True)
|
disk1 = make_disk(manipulator.model, preserve=True)
|
||||||
disk1p1 = manipulator.model.add_partition(
|
disk1p1 = manipulator.model.add_partition(
|
||||||
disk1, size=512 << 20, flag="boot")
|
disk1, size=512 << 20, offset=0, flag="boot")
|
||||||
disk1p1.preserve = True
|
disk1p1.preserve = True
|
||||||
disk1p2 = manipulator.model.add_partition(
|
disk1p2 = manipulator.model.add_partition(
|
||||||
disk1, size=8192 << 20, offset=513 << 20)
|
disk1, size=8192 << 20, offset=513 << 20)
|
||||||
|
|
|
@ -1380,14 +1380,11 @@ class FilesystemModel(object):
|
||||||
_remove_backlinks(obj)
|
_remove_backlinks(obj)
|
||||||
self._actions.remove(obj)
|
self._actions.remove(obj)
|
||||||
|
|
||||||
def add_partition(self, device, size, *, offset=None, flag="", wipe=None,
|
def add_partition(self, device, *, size, offset, flag="", wipe=None,
|
||||||
grub_device=None):
|
grub_device=None):
|
||||||
from subiquity.common.filesystem import boot
|
from subiquity.common.filesystem import boot
|
||||||
real_size = align_up(size)
|
real_size = align_up(size)
|
||||||
log.debug("add_partition: rounded size from %s to %s", size, real_size)
|
log.debug("add_partition: rounded size from %s to %s", size, real_size)
|
||||||
if offset is None:
|
|
||||||
from subiquity.common.filesystem.gaps import largest_gap
|
|
||||||
offset = largest_gap(device).offset
|
|
||||||
if device._fs is not None:
|
if device._fs is not None:
|
||||||
raise Exception("%s is already formatted" % (device,))
|
raise Exception("%s is already formatted" % (device,))
|
||||||
p = Partition(
|
p = Partition(
|
||||||
|
|
|
@ -43,8 +43,8 @@ class LVMViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_create_vg(self):
|
def test_create_vg(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
part1 = model.add_partition(disk, 10*(2**30))
|
part1 = model.add_partition(disk, size=10*(2**30), offset=0)
|
||||||
part2 = model.add_partition(disk, 10*(2**30))
|
part2 = model.add_partition(disk, size=10*(2**30), offset=10*(2**30))
|
||||||
view, stretchy = make_view(model)
|
view, stretchy = make_view(model)
|
||||||
form_data = {
|
form_data = {
|
||||||
'name': 'vg1',
|
'name': 'vg1',
|
||||||
|
@ -62,8 +62,8 @@ class LVMViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_create_vg_encrypted(self):
|
def test_create_vg_encrypted(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
part1 = model.add_partition(disk, 10*(2**30))
|
part1 = model.add_partition(disk, size=10*(2**30), offset=0)
|
||||||
part2 = model.add_partition(disk, 10*(2**30))
|
part2 = model.add_partition(disk, size=10*(2**30), offset=10*(2**30))
|
||||||
view, stretchy = make_view(model)
|
view, stretchy = make_view(model)
|
||||||
form_data = {
|
form_data = {
|
||||||
'name': 'vg1',
|
'name': 'vg1',
|
||||||
|
|
|
@ -74,7 +74,7 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
'fstype': "xfs",
|
'fstype': "xfs",
|
||||||
}
|
}
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20))
|
partition = model.add_partition(disk, size=512*(2**20), offset=0)
|
||||||
model.add_filesystem(partition, "ext4")
|
model.add_filesystem(partition, "ext4")
|
||||||
view, stretchy = make_partition_view(model, disk, partition)
|
view, stretchy = make_partition_view(model, disk, partition)
|
||||||
self.assertTrue(stretchy.form.done_btn.enabled)
|
self.assertTrue(stretchy.form.done_btn.enabled)
|
||||||
|
@ -91,7 +91,7 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_size_clamping(self):
|
def test_size_clamping(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20))
|
partition = model.add_partition(disk, size=512*(2**20), offset=0)
|
||||||
model.add_filesystem(partition, "ext4")
|
model.add_filesystem(partition, "ext4")
|
||||||
view, stretchy = make_partition_view(model, disk, partition)
|
view, stretchy = make_partition_view(model, disk, partition)
|
||||||
self.assertTrue(stretchy.form.done_btn.enabled)
|
self.assertTrue(stretchy.form.done_btn.enabled)
|
||||||
|
@ -106,7 +106,7 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
'fstype': "xfs",
|
'fstype': "xfs",
|
||||||
}
|
}
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20))
|
partition = model.add_partition(disk, size=512*(2**20), offset=0)
|
||||||
partition.preserve = True
|
partition.preserve = True
|
||||||
model.add_filesystem(partition, "ext4")
|
model.add_filesystem(partition, "ext4")
|
||||||
view, stretchy = make_partition_view(model, disk, partition)
|
view, stretchy = make_partition_view(model, disk, partition)
|
||||||
|
@ -126,7 +126,7 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
# Set up a PartitionStretchy for editing a partition with an
|
# Set up a PartitionStretchy for editing a partition with an
|
||||||
# existing filesystem.
|
# existing filesystem.
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20))
|
partition = model.add_partition(disk, size=512*(2**20), offset=0)
|
||||||
partition.preserve = True
|
partition.preserve = True
|
||||||
partition.number = 1
|
partition.number = 1
|
||||||
fs = model.add_filesystem(partition, "ext4")
|
fs = model.add_filesystem(partition, "ext4")
|
||||||
|
@ -167,7 +167,8 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
'size': "256M",
|
'size': "256M",
|
||||||
}
|
}
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20), flag="boot")
|
partition = model.add_partition(disk, size=512*(2**20),
|
||||||
|
offset=0, flag="boot")
|
||||||
fs = model.add_filesystem(partition, "fat32")
|
fs = model.add_filesystem(partition, "fat32")
|
||||||
model.add_mount(fs, '/boot/efi')
|
model.add_mount(fs, '/boot/efi')
|
||||||
view, stretchy = make_partition_view(model, disk, partition)
|
view, stretchy = make_partition_view(model, disk, partition)
|
||||||
|
@ -190,7 +191,8 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_edit_existing_unused_boot_partition(self):
|
def test_edit_existing_unused_boot_partition(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20), flag="boot")
|
partition = model.add_partition(disk, size=512*(2**20),
|
||||||
|
offset=0, flag="boot")
|
||||||
fs = model.add_filesystem(partition, "fat32")
|
fs = model.add_filesystem(partition, "fat32")
|
||||||
model._orig_config = model._render_actions()
|
model._orig_config = model._render_actions()
|
||||||
disk.preserve = partition.preserve = fs.preserve = True
|
disk.preserve = partition.preserve = fs.preserve = True
|
||||||
|
@ -211,7 +213,8 @@ class PartitionViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_edit_existing_used_boot_partition(self):
|
def test_edit_existing_used_boot_partition(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
partition = model.add_partition(disk, 512*(2**20), flag="boot")
|
partition = model.add_partition(disk, size=512*(2**20),
|
||||||
|
offset=0, flag="boot")
|
||||||
fs = model.add_filesystem(partition, "fat32")
|
fs = model.add_filesystem(partition, "fat32")
|
||||||
model._orig_config = model._render_actions()
|
model._orig_config = model._render_actions()
|
||||||
partition.grub_device = True
|
partition.grub_device = True
|
||||||
|
|
|
@ -31,9 +31,9 @@ class RaidViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_create_raid(self):
|
def test_create_raid(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
part1 = model.add_partition(disk, 10*(2**30))
|
part1 = model.add_partition(disk, size=10*(2**30), offset=0)
|
||||||
part2 = model.add_partition(disk, 10*(2**30))
|
part2 = model.add_partition(disk, size=10*(2**30), offset=10*(2**30))
|
||||||
part3 = model.add_partition(disk, 10*(2**30))
|
part3 = model.add_partition(disk, size=10*(2**30), offset=20*(2**30))
|
||||||
view, stretchy = make_view(model)
|
view, stretchy = make_view(model)
|
||||||
form_data = {
|
form_data = {
|
||||||
'name': 'md0',
|
'name': 'md0',
|
||||||
|
@ -52,8 +52,8 @@ class RaidViewTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_edit_raid(self):
|
def test_edit_raid(self):
|
||||||
model, disk = make_model_and_disk()
|
model, disk = make_model_and_disk()
|
||||||
part1 = model.add_partition(disk, 10*(2**30))
|
part1 = model.add_partition(disk, size=10*(2**30), offset=0)
|
||||||
part2 = model.add_partition(disk, 10*(2**30))
|
part2 = model.add_partition(disk, size=10*(2**30), offset=10*(2**30))
|
||||||
raid = model.add_raid("md0", "raid1", {part1, part2}, set())
|
raid = model.add_raid("md0", "raid1", {part1, part2}, set())
|
||||||
view, stretchy = make_view(model, raid)
|
view, stretchy = make_view(model, raid)
|
||||||
form_data = {
|
form_data = {
|
||||||
|
|
Loading…
Reference in New Issue