[virt-tools-list] [virt-manager PATCH 8/9] unattended: Use generate_*_for_tree()

Fabiano Fidêncio fidencio at redhat.com
Tue Jul 16 15:14:31 UTC 2019


Let's use generate_for_tree() and generate_command_line_for_tree()
methods whenever it's possible.

This method, similarly to generate_for_media() and
generate_command_line_for_media() will take an OsinfoTree as parameter
and will use its info in order to better decide how to properly generate
the install-script and kernel command-line.

It's important to mention that those APIs are part of libosinfo v1.6.0
release and that's the reason the check for them has been added.

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 virtinst/install/unattended.py | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/virtinst/install/unattended.py b/virtinst/install/unattended.py
index f32e60a4..35b61451 100644
--- a/virtinst/install/unattended.py
+++ b/virtinst/install/unattended.py
@@ -125,10 +125,11 @@ class OSInstallScript:
                 return True
         return False  # pragma: no cover
 
-    def __init__(self, script, osobj, osinfomediaobj):
+    def __init__(self, script, osobj, osinfomediaobj, osinfotreeobj):
         self._script = script
         self._osobj = osobj
         self._osinfomediaobj = osinfomediaobj
+        self._osinfotreeobj = osinfotreeobj
         self._config = None
 
         if not OSInstallScript.have_new_libosinfo():  # pragma: no cover
@@ -183,6 +184,11 @@ class OSInstallScript:
         if self._osinfomediaobj:
             return self._script.generate_for_media(
                     self._osinfomediaobj, self._config)
+        if hasattr(self._script, "generate_for_tree") and self._osinfotreeobj:
+            # osinfo_install_script_generate_for_tree() is part of
+            # libosinfo 1.6.0
+            return self._script.generate_for_tree(
+                    self._osinfotreeobj, self._config)
 
         return self._script.generate(self._osobj.get_handle(), self._config)
 
@@ -190,7 +196,12 @@ class OSInstallScript:
         if self._osinfomediaobj:
             return self._script.generate_command_line_for_media(
                     self._osinfomediaobj, self._config)
-
+        if (hasattr(self._script, "generate_command_line_for_tree") and
+                self._osinfotreeobj):
+            # osinfo_install_script_generate_command_line_for_tree() is part of
+            # libosinfo 1.6.0
+            return self._script.generate_command_line_for_tree(
+                    self._osinfotreeobj, self._config)
         return self._script.generate_command_line(
                 self._osobj.get_handle(), self._config)
 
@@ -323,7 +334,9 @@ def prepare_install_script(guest, unattended_data,
             unattended_data.profile, os_media)
 
     osinfomediaobj = os_media.get_osinfo_media() if os_media else None
-    script = OSInstallScript(rawscript, guest.osinfo, osinfomediaobj)
+    osinfotreeobj = os_tree.get_osinfo_tree() if os_tree else None
+    script = OSInstallScript(
+            rawscript, guest.osinfo, osinfomediaobj, osinfotreeobj)
 
     script.set_preferred_injection_method(injection_method)
 
-- 
2.21.0




More information about the virt-tools-list mailing list