[virt-tools-list] [virt-manager PATCH 1/2] guest: Default to libosinfo recommended resources

Fabiano Fidêncio fidencio at redhat.com
Wed Dec 5 08:15:18 UTC 2018


Let's create a new method that defaults to libosinfo's recommended
resources (when they're available) for memory and vcpus.

It'll help us to avoid erroring out whenever virt-install is called
without specifying the memory amount, as the recommended amount of
memory would come from libosinfo.

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

diff --git a/virtinst/guest.py b/virtinst/guest.py
index eeb40cb6..ced8f259 100644
--- a/virtinst/guest.py
+++ b/virtinst/guest.py
@@ -475,11 +475,11 @@ class Guest(XMLBuilder):
     def set_defaults(self, _guest):
         if not self.uuid:
             self.uuid = util.generate_uuid(self.conn)
-        if not self.vcpus:
-            self.vcpus = 1
 
         self.set_capabilities_defaults()
 
+        self._set_default_resources()
+
         self._set_default_machine()
         self._set_default_uefi()
 
@@ -510,6 +510,18 @@ class Guest(XMLBuilder):
     # Private xml routines #
     ########################
 
+    def _set_default_resources(self):
+        res = self.osinfo.get_recommended_resources(self)
+        if not res:
+            return
+
+        if not self.memory and res.get('ram') > 0:
+            self.memory = res['ram'] // 1024
+
+        if not self.vcpus:
+            self.vcpus = res.get('n-cpus') if res.get('n-cpus') > 0 else 1
+
+
     def _set_default_machine(self):
         if self.os.machine:
             return
-- 
2.19.1




More information about the virt-tools-list mailing list