Skip to content

Commit 596b788

Browse files
committed
avocado-vt: add support for shim parameter
Signed-off-by: Xueqiang Wei <xuwei@redhat.com>
1 parent 31d5721 commit 596b788

3 files changed

Lines changed: 47 additions & 0 deletions

File tree

virttest/qemu_vm.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1438,6 +1438,9 @@ def add_kernel(filename):
14381438
def add_initrd(filename):
14391439
return " -initrd '%s'" % filename
14401440

1441+
def add_shim(filename):
1442+
return " -shim '%s'" % filename
1443+
14411444
def add_rtc(devices):
14421445
# Pay attention that rtc-td-hack is for early version
14431446
# if "rtc " in help:
@@ -2933,6 +2936,11 @@ def __iothread_conflict_check(params):
29332936
initrd = utils_misc.get_path(data_dir.get_data_dir(), initrd)
29342937
devices.insert(StrDev("initrd", cmdline=add_initrd(initrd)))
29352938

2939+
shim = params.get("shim")
2940+
if shim:
2941+
shim = utils_misc.get_path(data_dir.get_data_dir(), shim)
2942+
devices.insert(StrDev("shim", cmdline=add_shim(shim)))
2943+
29362944
for host_port, guest_port in redirs:
29372945
cmd = add_tcp_redir(devices, host_port, guest_port)
29382946
devices.insert(StrDev("tcp-redir", cmdline=cmd))

virttest/shared/cfg/guest-os/Linux/RHEL.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# kernel_params += ":sr1:/ks.cfg"
1414
kernel_params += " nicdelay=60 "
1515
boot_path = images/pxeboot
16+
shim_target_efi_path = EFI/BOOT
1617
aarch64:
1718
kernel_params += " earlyprintk=pl011,0x9000000 console=ttyAMA0 debug ignore_loglevel rootwait"
1819
ppc64, ppc64le:

virttest/tests/unattended_install.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ def __init__(self, test, params, vm):
183183
"driver_in_floppy",
184184
"vga",
185185
"unattended_file_kernel_param_name",
186+
"shim_target_efi_path",
187+
"shim",
186188
]
187189

188190
for a in self.attributes:
@@ -266,6 +268,8 @@ def get_unattended_file(backend):
266268
self.kernel = os.path.join(root_dir, self.kernel)
267269
if getattr(self, "initrd"):
268270
self.initrd = os.path.join(root_dir, self.initrd)
271+
if getattr(self, "shim"):
272+
self.shim = os.path.join(root_dir, self.shim)
269273

270274
if self.medium == "nfs":
271275
self.nfs_mount = tempfile.mkdtemp(prefix="nfs_", dir=self.tmpdir)
@@ -984,6 +988,11 @@ def setup_cdrom(self):
984988
assert os.path.getsize(self.kernel) > 0
985989
i.copy(os.path.join(self.boot_path, os.path.basename(self.initrd)), self.initrd)
986990
assert os.path.getsize(self.initrd) > 0
991+
i.copy(
992+
os.path.join(self.shim_target_efi_path, os.path.basename(self.shim)),
993+
self.shim,
994+
)
995+
assert os.path.getsize(self.shim) > 0
987996

988997
if self.unattended_file.endswith(".preseed"):
989998
self.preseed_initrd()
@@ -1063,6 +1072,7 @@ def setup_url(self):
10631072

10641073
kernel_basename = os.path.basename(self.kernel)
10651074
initrd_basename = os.path.basename(self.initrd)
1075+
shim_basename = os.path.basename(self.shim)
10661076
sha1sum_kernel_cmd = "sha1sum %s" % kernel_basename
10671077
sha1sum_kernel_output = process.run(
10681078
sha1sum_kernel_cmd, ignore_status=True, verbose=DEBUG
@@ -1081,12 +1091,24 @@ def setup_url(self):
10811091
except IndexError:
10821092
sha1sum_initrd = ""
10831093

1094+
sha1sum_shim_cmd = "sha1sum %s" % shim_basename
1095+
sha1sum_shim_output = process.run(
1096+
sha1sum_shim_cmd, ignore_status=True, verbose=DEBUG
1097+
).stdout_text
1098+
try:
1099+
sha1sum_shim = sha1sum_shim_output.split()[0]
1100+
except IndexError:
1101+
sha1sum_shim = ""
1102+
10841103
url_kernel = os.path.join(
10851104
self.url, self.boot_path, os.path.basename(self.kernel)
10861105
)
10871106
url_initrd = os.path.join(
10881107
self.url, self.boot_path, os.path.basename(self.initrd)
10891108
)
1109+
url_shim = os.path.join(
1110+
self.url, self.shim_target_efi_path, os.path.basename(self.shim)
1111+
)
10901112

10911113
if not sha1sum_kernel == self.params.get("sha1sum_vmlinuz", None):
10921114
if os.path.isfile(self.kernel):
@@ -1106,6 +1128,15 @@ def setup_url(self):
11061128
os.path.join(self.image_path, os.path.basename(self.initrd)),
11071129
)
11081130

1131+
if not sha1sum_shim == self.params.get("sha1sum_shim", None):
1132+
if os.path.isfile(self.shim):
1133+
os.remove(self.shim)
1134+
LOG.info("Downloading %s -> %s", url_shim, self.image_path)
1135+
download.get_file(
1136+
url_shim,
1137+
os.path.join(self.image_path, os.path.basename(self.shim)),
1138+
)
1139+
11091140
if "repo=cdrom" in self.kernel_params:
11101141
# Red Hat
11111142
self.kernel_params = re.sub(
@@ -1154,6 +1185,13 @@ def setup_nfs(self):
11541185
self.image_path,
11551186
)
11561187
process.run(initrd_fetch_cmd, verbose=DEBUG)
1188+
shim_fetch_cmd = "cp %s/%s/%s %s" % (
1189+
self.nfs_mount,
1190+
self.shim_target_efi_path,
1191+
os.path.basename(self.shim),
1192+
self.image_path,
1193+
)
1194+
process.run(shim_fetch_cmd, verbose=DEBUG)
11571195
finally:
11581196
utils_disk.cleanup(self.nfs_mount)
11591197

0 commit comments

Comments
 (0)