Move logic to calculate raid sectors to raid_utils

Some more raid related logic moved to raid_utils.

Change-Id: I08c73ad14e5b01ebac2490b83997c5452506d4a2
This commit is contained in:
Riccardo Pittau 2020-04-09 14:58:42 +02:00
parent 83b5a8b202
commit 3966871f47
2 changed files with 32 additions and 17 deletions

View File

@ -1670,23 +1670,9 @@ class GenericHardwareManager(HardwareManager):
disk_names = logical_disk['block_devices']
for device in disk_names:
start = parted_start_dict[device]
if isinstance(start, int):
start_str = '%dGiB' % start
else:
start_str = start
if psize == -1:
end_str = '-1'
end = '-1'
else:
if isinstance(start, int):
end = start + psize
else:
# First partition case, start is sth like 2048s
end = psize
end_str = '%dGiB' % end
start_str, end_str, end = (
raid_utils.calc_raid_partition_sectors(psize, start)
)
try:
LOG.debug("Creating partition on {}: {} {}".format(
device, start_str, end_str))

View File

@ -103,3 +103,32 @@ def calculate_raid_start(target_boot_mode, partition_table_type, dev_name):
raid_start = "{}s".format(out.splitlines()[-1])
return raid_start
def calc_raid_partition_sectors(psize, start):
"""Calculates end sector and converts start and end sectors including
the unit of measure, compatible with parted.
:param psize: size of the raid partition
:param start: start sector of the raid partion in integer format
:return: start and end sector in parted compatible format, end sector
as integer
"""
if isinstance(start, int):
start_str = '%dGiB' % start
else:
start_str = start
if psize == -1:
end_str = '-1'
end = '-1'
else:
if isinstance(start, int):
end = start + psize
else:
# First partition case, start is sth like 2048s
end = psize
end_str = '%dGiB' % end
return start_str, end_str, end