[virt-tools-list] [virt-manager PATCH] virt-manager, inspection: use add_libvirt_dom

Giuseppe Scrivano gscrivan at redhat.com
Thu Jan 8 14:12:01 UTC 2015


From: "Richard W.M. Jones" <rjones at redhat.com>

Enable inspection only if the add_libvirt_dom function is present at
runtime.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1075143

Signed-off-by: Giuseppe Scrivano <gscrivan at redhat.com>
---
 virtManager/config.py     |  4 ++--
 virtManager/inspection.py | 29 +++--------------------------
 2 files changed, 5 insertions(+), 28 deletions(-)

diff --git a/virtManager/config.py b/virtManager/config.py
index 9258313..df649ab 100644
--- a/virtManager/config.py
+++ b/virtManager/config.py
@@ -183,8 +183,8 @@ class vmmConfig(object):
         try:
             # Check we can open the Python guestfs module.
             from guestfs import GuestFS  # pylint: disable=import-error
-            GuestFS(close_on_exit=False)
-            return True
+            g = GuestFS(close_on_exit=False)
+            return bool(getattr(g, "add_libvirt_dom", None))
         except:
             return False
 
diff --git a/virtManager/inspection.py b/virtManager/inspection.py
index f5b8a89..e8b102d 100644
--- a/virtManager/inspection.py
+++ b/virtManager/inspection.py
@@ -20,7 +20,6 @@
 from Queue import Queue, Empty
 from threading import Thread
 import logging
-import os
 import re
 
 from guestfs import GuestFS  # pylint: disable=import-error
@@ -145,7 +144,7 @@ class vmmInspection(vmmGObject):
                     # Whether success or failure, we've "seen" this VM now.
                     self._vmseen[vmuuid] = True
                     try:
-                        data = self._process(conn, vm, vmuuid)
+                        data = self._process(conn, vm)
                         if data:
                             self._set_vm_inspection_data(vm, data)
                         else:
@@ -157,7 +156,7 @@ class vmmInspection(vmmGObject):
                     logging.exception("%s: exception while processing",
                                       prettyvm)
 
-    def _process(self, conn, vm, vmuuid):
+    def _process(self, conn, vm):
         if re.search(r"^guestfs-", vm.get_name()):
             logging.debug("ignore libvirt/guestfs temporary VM %s",
                           vm.get_name())
@@ -165,30 +164,8 @@ class vmmInspection(vmmGObject):
 
         g = GuestFS(close_on_exit=False)
         prettyvm = conn.get_uri() + ":" + vm.get_name()
-        ignore = vmuuid
 
-        disks = []
-        for disk in vm.get_disk_devices():
-            if (disk.path and
-                (disk.type == "block" or disk.type == "file") and
-                not disk.device == "cdrom"):
-                disks.append(disk)
-
-        if not disks:
-            logging.debug("%s: nothing to inspect", prettyvm)
-            return None
-
-        # Add the disks.  Note they *must* be added with readonly flag set.
-        for disk in disks:
-            path = disk.path
-            driver_type = disk.driver_type
-
-            if not (os.path.exists(path) and os.access(path, os.R_OK)):
-                logging.debug("%s: cannot access '%s', skipping inspection",
-                              prettyvm, path)
-                return None
-
-            g.add_drive_opts(path, readonly=1, format=driver_type)
+        g.add_libvirt_dom(vm.get_backend(), readonly=1)
 
         g.launch()
 
-- 
2.1.0




More information about the virt-tools-list mailing list