Browse Source

Merge "Move logic to calculate raid sectors to raid_utils"

tags/6.1.0
Zuul 2 months ago
committed by Gerrit Code Review
parent
commit
b56ed05d25
2 changed files with 32 additions and 17 deletions
  1. +3
    -17
      ironic_python_agent/hardware.py
  2. +29
    -0
      ironic_python_agent/raid_utils.py

+ 3
- 17
ironic_python_agent/hardware.py 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))


+ 29
- 0
ironic_python_agent/raid_utils.py 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

Loading…
Cancel
Save