Browse Source

Protected loading manager settings from malformed config files

Malformed config files will no longer prevent Qube Manager from
starting.
Marta Marczykowska-Górecka 5 years ago
parent
commit
f5586e770b
1 changed files with 12 additions and 4 deletions
  1. 12 4
      qubesmanager/qube_manager.py

+ 12 - 4
qubesmanager/qube_manager.py

@@ -466,7 +466,17 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
         self.connect(self.action_toolbar, QtCore.SIGNAL("toggled(bool)"),
                      self.showhide_toolbar)
 
-        self.load_manager_settings()
+        try:
+            self.load_manager_settings()
+        except Exception as ex:  # pylint: disable=broad-except
+            QtGui.QMessageBox.warning(
+                None,
+                self.tr("Manager settings unreadable"),
+                self.tr("Qube Manager settings cannot be parsed. Previously "
+                        "saved display settings may not be restored "
+                        "correctly.\nError: {}".format(str(ex))))
+
+        self.settings_loaded = True
 
         self.fill_table()
 
@@ -642,8 +652,6 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
         self.resize(self.manager_settings.value("window_size",
                                                 QtCore.QSize(1100, 600)))
 
-        self.settings_loaded = True
-
     def get_vms_list(self):
         return [vm for vm in self.qubes_app.domains]
 
@@ -1329,7 +1337,7 @@ def main():
             asyncio.ensure_future(dispatcher.listen_for_events()))
     except asyncio.CancelledError:
         pass
-    except Exception: # pylint: disable=broad-except
+    except Exception:  # pylint: disable=broad-except
         loop_shutdown()
         exc_type, exc_value, exc_traceback = sys.exc_info()[:3]
         handle_exception(exc_type, exc_value, exc_traceback)