diff --git a/qubesmanager/qube_manager.py b/qubesmanager/qube_manager.py index 64bd2dd..95664e8 100644 --- a/qubesmanager/qube_manager.py +++ b/qubesmanager/qube_manager.py @@ -820,8 +820,20 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QMainWindow): QMessageBox.Yes | QMessageBox.Cancel) if reply == QMessageBox.Yes: + failed = [] for info in selected_vms: - info.vm.template = template + try: + info.vm.template = template + except: + failed.append(info.name) + + if failed: + info_dialog = QMessageBox(self) + info_dialog.setWindowTitle(self.tr("Warning!")) + info_dialog.setText( + self.tr("Some template change failed: {0} " + ).format(", ".join(failed))) + info_dialog.show() def change_network(self, netvm_name): selected_vms = self.get_selected_vms() @@ -836,25 +848,39 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QMainWindow): return try: - check_power = any(info.state['power'] == 'Running' for info - in self.get_selected_vms()) - netvm = self.qubes_cache.get_vm(name=netvm_name) - if check_power and netvm.state['power'] != 'Running': - reply = QMessageBox.question( - self, self.tr("Qube Start Confirmation"), - self.tr("
Can not change netvm to a halted Qube.
" - "Do you want to start the Qube '{0}'?").format( - netvm_name), - QMessageBox.Yes | QMessageBox.Cancel) + if netvm_name is not None: + check_power = any(info.state['power'] == 'Running' for info + in self.get_selected_vms()) + netvm = self.qubes_cache.get_vm(name=netvm_name) + if check_power and netvm.state['power'] != 'Running': + reply = QMessageBox.question( + self, self.tr("Qube Start Confirmation"), + self.tr("
Can not change netvm to a halted Qube.
" + "Do you want to start the Qube '{0}'?").format( + netvm_name), + QMessageBox.Yes | QMessageBox.Cancel) - if reply == QMessageBox.Yes: - with common_threads.busy_cursor(): - netvm.vm.start() - else: - return + if reply == QMessageBox.Yes: + with common_threads.busy_cursor(): + netvm.vm.start() + else: + return + failed = [] for info in self.get_selected_vms(): - info.vm.netvm = netvm_name + try: + info.vm.netvm = netvm_name + except: + failed.append(info.name) + + if failed: + info_dialog = QMessageBox(self) + info_dialog.setWindowTitle(self.tr("Warning!")) + info_dialog.setText( + self.tr("Some network change failed: {0} " + ).format(", ".join(failed))) + info_dialog.show() + except exc.QubesValueError as ex: QMessageBox.warning( self,