File virtman-git-error-reporting.diff of Package virt-manager

Subject: details: Better logging and error reporting for child dialogs
From: Cole Robinson crobinso@redhat.com Tue Aug 30 14:29:51 2011 -0400
Date: Tue Aug 30 14:29:51 2011 -0400:
Git: cbbc8044bf3eaed18f09c0c2af40e9a4aa6e7717


Index: virt-manager-0.9.0/src/virtManager/details.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/details.py
+++ virt-manager-0.9.0/src/virtManager/details.py
@@ -1392,6 +1392,7 @@ class vmmDetails(vmmGObjectUI):
             if self.addhw is None:
                 self.addhw = vmmAddHardware(self.vm)
 
+            logging.debug("Launching addhw for vm '%s'", self.vm.get_name())
             self.addhw.show(self.topwin)
         except Exception, e:
             self.err.show_err((_("Error launching hardware dialog: %s") %
@@ -1771,24 +1772,34 @@ class vmmDetails(vmmGObjectUI):
         curpath = disk.path
         devtype = disk.device
 
-        if curpath:
-            # Disconnect cdrom
-            self.change_storage_media(dev_id_info, None)
+        try:
+            if curpath:
+                # Disconnect cdrom
+                self.change_storage_media(dev_id_info, None)
+                return
+        except Exception, e:
+            self.err.show_err((_("Error disconnecting media: %s") % e))
             return
 
-        def change_cdrom_wrapper(src_ignore, dev_id_info, newpath):
-            return self.change_storage_media(dev_id_info, newpath)
+        try:
+            def change_cdrom_wrapper(src_ignore, dev_id_info, newpath):
+                return self.change_storage_media(dev_id_info, newpath)
+
+            # Launch 'Choose CD' dialog
+            if self.media_choosers[devtype] is None:
+                ret = vmmChooseCD(self.vm, dev_id_info)
 
-        # Launch 'Choose CD' dialog
-        if self.media_choosers[devtype] is None:
-            ret = vmmChooseCD(self.vm, dev_id_info)
-
-            ret.connect("cdrom-chosen", change_cdrom_wrapper)
-            self.media_choosers[devtype] = ret
-
-        dialog = self.media_choosers[devtype]
-        dialog.dev_id_info = dev_id_info
-        dialog.show(self.topwin)
+                ret.connect("cdrom-chosen", change_cdrom_wrapper)
+                self.media_choosers[devtype] = ret
+
+            dialog = self.media_choosers[devtype]
+            dialog.dev_id_info = dev_id_info
+
+            logging.debug("Launching choosecd for vm '%s'", self.vm.get_name())
+            dialog.show(self.topwin)
+        except Exception, e:
+            self.err.show_err((_("Error launching media dialog: %s") % e))
+            return
 
     ##################################################
     # Details/Hardware config changes (apply button) #
openSUSE Build Service is sponsored by