diff options
author | Cole Robinson <crobinso@redhat.com> | 2022-01-26 11:59:51 -0500 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2022-01-26 11:59:51 -0500 |
commit | 30138897272463ae699de336c6e7208ec9867594 (patch) | |
tree | 368af68dafb90fe8e3a790f7660e3bb0079b573e /virtinst | |
parent | 245e89ac389a370defa11be9be294b7517bb89be (diff) | |
download | virt-manager-30138897272463ae699de336c6e7208ec9867594.tar.gz |
guest: Use os.firmware=efi for --boot uefi, if it is supported
<os firmware='efi'> is the libvirt official way to do what we
historically implement with `--boot uefi`, and UEFI setup in
virt-manager.
Let's prefer libvirt's official method if the support is advertised
in domcapabilities.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Diffstat (limited to 'virtinst')
-rw-r--r-- | virtinst/domcapabilities.py | 9 | ||||
-rw-r--r-- | virtinst/guest.py | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py index 509dbca9..6e917425 100644 --- a/virtinst/domcapabilities.py +++ b/virtinst/domcapabilities.py @@ -256,15 +256,16 @@ class DomainCapabilities(XMLBuilder): """ return self.arch in list(self._uefi_arch_patterns.keys()) - def supports_uefi_xml(self): + def supports_uefi_loader(self): """ - Return True if libvirt advertises support for proper UEFI setup + Return True if libvirt advertises support for UEFI loader """ - if "efi" in self.os.get_enum("firmware").get_values(): - return True return ("readonly" in self.os.loader.enum_names() and "yes" in self.os.loader.get_enum("readonly").get_values()) + def supports_firmware_efi(self): + return "efi" in self.os.get_enum("firmware").get_values() + def supports_safe_host_model(self): """ Return True if domcaps reports support for cpu mode=host-model. diff --git a/virtinst/guest.py b/virtinst/guest.py index 82779d12..b5bc7376 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -553,6 +553,11 @@ class Guest(XMLBuilder): """ Enable UEFI using our default logic """ + domcaps = self.lookup_domcaps() + if domcaps.supports_firmware_efi(): + self.os.firmware = "efi" + return + path = self._lookup_default_uefi_path() log.debug("Setting default UEFI path=%s", path) self.set_uefi_path(path) @@ -748,11 +753,11 @@ class Guest(XMLBuilder): """ domcaps = self.lookup_domcaps() - if not domcaps.supports_uefi_xml(): + if not domcaps.supports_uefi_loader(): raise RuntimeError(_("Libvirt version does not support UEFI.")) if not domcaps.arch_can_uefi(): - raise RuntimeError( + raise RuntimeError( # pragma: no cover _("Don't know how to setup UEFI for arch '%s'") % self.os.arch) |