Skip to content

Commit 6a7c8fe

Browse files
author
Frediano Ziglio
committed
Simplify results from partitionTargetDisk
Instead of coding lot of logic in the "return" line use a "part_nums" list. This will make easier to change the partition layout avoiding long and hard to understand lines. Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
1 parent 26a5146 commit 6a7c8fe

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

backend.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -527,22 +527,24 @@ def configureNTP(mounts, ntp_config_method, ntp_servers):
527527
def partitionTargetDisk(disk, existing, preserve_first_partition, create_sr_part):
528528
logger.log("Installer booted in %s mode" % ("UEFI" if constants.UEFI_INSTALLER else "legacy"))
529529

530+
(PRIMARY, BACKUP, STORAGE, BOOT, LOGS, SWAP) = list(range(6))
531+
530532
primary_part = 1
531533
if existing:
532534
# upgrade, use existing partitioning scheme
533535
tool = PartitionTool(existing.primary_disk)
534536

535537
primary_part = tool.partitionNumber(existing.root_device)
536538

539+
part_nums = list(range(primary_part, primary_part+6))
540+
537541
# Determine target install's boot mode and boot partition number
538542
target_boot_mode = TARGET_BOOT_MODE_LEGACY
539543
if existing.boot_device:
540-
boot_partnum = tool.partitionNumber(existing.boot_device)
541-
boot_part = tool.getPartition(boot_partnum)
544+
part_nums[BOOT] = tool.partitionNumber(existing.boot_device)
545+
boot_part = tool.getPartition(part_nums[BOOT])
542546
if 'id' in boot_part and boot_part['id'] == GPTPartitionTool.ID_EFI_BOOT:
543547
target_boot_mode = TARGET_BOOT_MODE_UEFI
544-
else:
545-
boot_partnum = primary_part + 3
546548

547549
if (target_boot_mode == TARGET_BOOT_MODE_UEFI and not constants.UEFI_INSTALLER) or \
548550
(target_boot_mode == TARGET_BOOT_MODE_LEGACY and constants.UEFI_INSTALLER):
@@ -552,11 +554,10 @@ def partitionTargetDisk(disk, existing, preserve_first_partition, create_sr_part
552554
logger.log("Upgrading, target_boot_mode: %s" % target_boot_mode)
553555

554556
# Return install mode and numbers of primary, backup, SR, boot, log and swap partitions
555-
storage_partition = tool.getPartition(primary_part+2)
556-
if storage_partition:
557-
return (target_boot_mode, primary_part, primary_part+1, primary_part+2, boot_partnum, primary_part+4, primary_part+5)
558-
else:
559-
return (target_boot_mode, primary_part, primary_part+1, 0, boot_partnum, primary_part+4, primary_part+5)
557+
storage_partition = tool.getPartition(part_nums[STORAGE])
558+
if not storage_partition:
559+
part_nums[STORAGE] = 0
560+
return tuple([target_boot_mode] + part_nums)
560561

561562
tool = PartitionTool(disk)
562563

@@ -576,17 +577,18 @@ def partitionTargetDisk(disk, existing, preserve_first_partition, create_sr_part
576577
if primary_part > 2:
577578
raise RuntimeError("Installer only supports a single Utility Partition at partition 1, but found Utility Partitions at %s" % str(utilparts))
578579

579-
sr_part = -1
580-
if create_sr_part:
581-
sr_part = primary_part+2
580+
part_nums = list(range(primary_part, primary_part+6))
581+
582+
if not create_sr_part:
583+
part_nums[STORAGE] = -1
582584

583-
boot_part = max(primary_part + 1, sr_part) + 1
585+
part_nums[BOOT] = max(primary_part + 1, part_nums[STORAGE]) + 1
584586

585587
target_boot_mode = TARGET_BOOT_MODE_UEFI if constants.UEFI_INSTALLER else TARGET_BOOT_MODE_LEGACY
586588

587589
logger.log("Fresh install, target_boot_mode: %s" % target_boot_mode)
588590

589-
return (target_boot_mode, primary_part, primary_part + 1, sr_part, boot_part, primary_part + 4, primary_part + 5)
591+
return tuple([target_boot_mode] + part_nums)
590592

591593
def removeBlockingVGs(disks):
592594
for vg in diskutil.findProblematicVGs(disks):

0 commit comments

Comments
 (0)