summaryrefslogtreecommitdiff
path: root/virtinst/domcapabilities.py
diff options
context:
space:
mode:
authorRoman Bogorodskiy <bogorodskiy@gmail.com>2021-02-11 19:41:12 +0400
committerCole Robinson <crobinso@redhat.com>2021-02-15 13:27:48 -0500
commit6c7080a39bf36283c59c924f9c0d65a05bcb221f (patch)
tree58c41392c8ea2d3a6e74ee07408d24df381485a6 /virtinst/domcapabilities.py
parentdab099d413b22cf5026437e3c9c2db0b003846d1 (diff)
downloadvirt-manager-6c7080a39bf36283c59c924f9c0d65a05bcb221f.tar.gz
virtinst: bhyve: properly configure loader
Bhyve requires explicit loader configuration. So query domain capabilities, try to find the "official" firmware and configure all the necessary loader options. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Diffstat (limited to 'virtinst/domcapabilities.py')
-rw-r--r--virtinst/domcapabilities.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py
index 81f664ed..7f81e5e8 100644
--- a/virtinst/domcapabilities.py
+++ b/virtinst/domcapabilities.py
@@ -211,6 +211,17 @@ class DomainCapabilities(XMLBuilder):
if not self.arch_can_uefi():
return # pragma: no cover
+ if self.conn.is_bhyve():
+ firmware_files = [f.value for f in self.os.loader.values]
+ if not firmware_files:
+ return
+
+ for firmware_file in firmware_files:
+ if 'BHYVE_UEFI.fd' in firmware_file:
+ return firmware_file
+
+ return firmware_files[0]
+
patterns = self._uefi_arch_patterns.get(self.arch)
for pattern in patterns:
for path in [v.value for v in self.os.loader.values]: