Skip to content

Commit 74e4c84

Browse files
authored
Merge pull request #153 from stephenchengCloud/private/stephenche/CA-407115
CA-407115: Adding logic to handle boot entries without additional arguments
2 parents df61175 + 67110ae commit 74e4c84

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

xcp/bootloader.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,12 @@ def create_label(title):
345345
COUNTER += 1
346346
return "label%d" % COUNTER
347347

348+
def parse_boot_entry(line):
349+
parts = line.split(None, 2) # Split into at most 3 parts
350+
entry = parts[1] if len(parts) > 1 else ""
351+
args = parts[2] if len(parts) > 2 else ""
352+
return entry, args
353+
348354
fh = open_textfile(src_file, "r")
349355
try:
350356
for line in fh:
@@ -395,23 +401,18 @@ def create_label(title):
395401
elif title:
396402
if l.startswith("multiboot2"):
397403
if "tboot" in l:
398-
tboot, tboot_args = (l.split(None, 1)
399-
[1].split(None, 1))
404+
tboot, tboot_args = parse_boot_entry(l)
400405
else:
401-
hypervisor, hypervisor_args = (l.split(None, 1)
402-
[1].split(None, 1))
406+
hypervisor, hypervisor_args = parse_boot_entry(l)
403407
elif l.startswith("module2"):
404408
if not hypervisor:
405-
hypervisor, hypervisor_args = (l.split(None, 1)
406-
[1].split(None, 1))
409+
hypervisor, hypervisor_args = parse_boot_entry(l)
407410
elif kernel:
408411
initrd = l.split(None, 1)[1]
409412
else:
410-
kernel, kernel_args = (l.split(None, 1)
411-
[1].split(None, 1))
413+
kernel, kernel_args = parse_boot_entry(l)
412414
elif l.startswith("linux"):
413-
kernel, kernel_args = (l.split(None, 1)
414-
[1].split(None, 1))
415+
kernel, kernel_args = parse_boot_entry(l)
415416
elif l.startswith("initrd"):
416417
initrd = l.split(None, 1)[1]
417418
elif l.startswith("search --label --set root"):

0 commit comments

Comments
 (0)