[virt-tools-list] [virt-manager RFC PATCH v2 6/7] osdict: expose libosinfo recommended resources for an OS

Giuseppe Scrivano gscrivan at redhat.com
Fri Jan 24 14:13:22 UTC 2014


Signed-off-by: Giuseppe Scrivano <gscrivan at redhat.com>
---
 virtinst/osdict.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/virtinst/osdict.py b/virtinst/osdict.py
index f92a856..36c5038 100644
--- a/virtinst/osdict.py
+++ b/virtinst/osdict.py
@@ -154,6 +154,14 @@ def lookup_osdict_key(variant, key, default):
     return val
 
 
+def get_recommended_resources(variant, arch):
+    v = _allvariants.get(variant)
+    if v is None:
+        return None
+
+    return v.get_recommended_resources(arch)
+
+
 class _OSVariant(object):
     """
     Object tracking guest OS specific configuration bits.
@@ -272,6 +280,10 @@ class _OSVariant(object):
         self.virtioconsole = _get_default("virtioconsole", virtioconsole)
         self.qemu_ga = _get_default("qemu_ga", qemu_ga)
 
+    def get_recommended_resources(self, arch):
+        ignore1 = arch
+        return None
+
 
 def _add_type(*args, **kwargs):
     kwargs["is_type"] = True
@@ -523,6 +535,23 @@ class _OsVariantOsInfo(_OSVariant):
                 virtiommio=virtiommio, virtioconsole=virtioconsole,
                 xen_disable_acpi=xen_disable_acpi, qemu_ga=qemu_ga)
 
+    def get_recommended_resources(self, arch):
+        ret = {}
+        def read_resource(resources, arch):
+            for i in range(resources.get_length()):
+                r = resources.get_nth(i)
+                if r.get_architecture() == arch:
+                    ret["ram"] = r.get_ram()
+                    ret["cpu"] = r.get_cpu()
+                    ret["n-cpus"] = r.get_n_cpus()
+                    ret["storage"] = r.get_storage()
+                    break
+
+        read_resource(self._os.get_recommended_resources(), "all")
+        read_resource(self._os.get_recommended_resources(), arch)
+
+        return ret
+
 _add_type("linux", "Linux")
 _add_type("windows", "Windows", clock="localtime", three_stage_install=True, inputtype="tablet", inputbus="usb", videomodel="vga")
 _add_type("solaris", "Solaris", clock="localtime")
-- 
1.8.4.2




More information about the virt-tools-list mailing list