Fix travis build
This commit is contained in:
parent
38051ad243
commit
831769d2dd
@ -17,6 +17,7 @@ SOURCES = \
|
|||||||
qubesmanager/block.py \
|
qubesmanager/block.py \
|
||||||
qubesmanager/clipboard.py \
|
qubesmanager/clipboard.py \
|
||||||
qubesmanager/create_new_vm.py \
|
qubesmanager/create_new_vm.py \
|
||||||
|
qubesmanager/common_threads.py \
|
||||||
qubesmanager/firewall.py \
|
qubesmanager/firewall.py \
|
||||||
qubesmanager/global_settings.py \
|
qubesmanager/global_settings.py \
|
||||||
qubesmanager/log_dialog.py \
|
qubesmanager/log_dialog.py \
|
||||||
@ -27,7 +28,6 @@ SOURCES = \
|
|||||||
qubesmanager/restore.py \
|
qubesmanager/restore.py \
|
||||||
qubesmanager/settings.py \
|
qubesmanager/settings.py \
|
||||||
qubesmanager/table_widgets.py \
|
qubesmanager/table_widgets.py \
|
||||||
qubesmanager/thread_monitor.py \
|
|
||||||
qubesmanager/ui_about.py \
|
qubesmanager/ui_about.py \
|
||||||
qubesmanager/ui_backupdlg.py \
|
qubesmanager/ui_backupdlg.py \
|
||||||
qubesmanager/ui_globalsettingsdlg.py \
|
qubesmanager/ui_globalsettingsdlg.py \
|
||||||
|
@ -44,7 +44,6 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
import time
|
|
||||||
|
|
||||||
class BackupThread(QtCore.QThread):
|
class BackupThread(QtCore.QThread):
|
||||||
def __init__(self, vm):
|
def __init__(self, vm):
|
||||||
@ -76,6 +75,7 @@ class BackupVMsWindow(ui_backupdlg.Ui_Backup, multiselectwidget.QtGui.QWizard):
|
|||||||
self.backup_settings = QtCore.QSettings()
|
self.backup_settings = QtCore.QSettings()
|
||||||
|
|
||||||
self.selected_vms = []
|
self.selected_vms = []
|
||||||
|
self.thread = None
|
||||||
|
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
|
@ -42,10 +42,11 @@ class CloneVMThread(QtCore.QThread):
|
|||||||
QtCore.QThread.__init__(self)
|
QtCore.QThread.__init__(self)
|
||||||
self.src_vm = src_vm
|
self.src_vm = src_vm
|
||||||
self.dst_name = dst_name
|
self.dst_name = dst_name
|
||||||
|
self.error = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
dst_vm = self.src_vm.app.clone_vm(self.src_vm, self.dst_name)
|
self.src_vm.app.clone_vm(self.src_vm, self.dst_name)
|
||||||
self.error = ("Sucess", "The qube was cloned sucessfully.")
|
self.error = ("Sucess", "The qube was cloned sucessfully.")
|
||||||
except exc.QubesException as ex:
|
except exc.QubesException as ex:
|
||||||
self.error = ("Error while cloning Qube!", str(ex))
|
self.error = ("Error while cloning Qube!", str(ex))
|
||||||
|
@ -22,8 +22,6 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui # pylint: disable=import-error
|
from PyQt4 import QtCore, QtGui # pylint: disable=import-error
|
||||||
@ -78,6 +76,9 @@ class NewVmDlg(QtGui.QDialog, Ui_NewVMDlg):
|
|||||||
self.qtapp = qtapp
|
self.qtapp = qtapp
|
||||||
self.app = app
|
self.app = app
|
||||||
|
|
||||||
|
self.thread = None
|
||||||
|
self.progress = None
|
||||||
|
|
||||||
# Theoretically we should be locking for writing here and unlock
|
# Theoretically we should be locking for writing here and unlock
|
||||||
# only after the VM creation finished. But the code would be
|
# only after the VM creation finished. But the code would be
|
||||||
# more messy...
|
# more messy...
|
||||||
@ -174,7 +175,7 @@ class NewVmDlg(QtGui.QDialog, Ui_NewVMDlg):
|
|||||||
if self.thread.error:
|
if self.thread.error:
|
||||||
QtGui.QMessageBox.warning(None,
|
QtGui.QMessageBox.warning(None,
|
||||||
self.tr("Error creating the qube!"),
|
self.tr("Error creating the qube!"),
|
||||||
self.tr("ERROR: {}").format(thread.error))
|
self.tr("ERROR: {}").format(self.thread.error))
|
||||||
|
|
||||||
self.done(0)
|
self.done(0)
|
||||||
|
|
||||||
@ -183,7 +184,7 @@ class NewVmDlg(QtGui.QDialog, Ui_NewVMDlg):
|
|||||||
subprocess.check_call(['qubes-vm-settings', str(self.name)])
|
subprocess.check_call(['qubes-vm-settings', str(self.name)])
|
||||||
if self.install_system.isChecked():
|
if self.install_system.isChecked():
|
||||||
subprocess.check_call(
|
subprocess.check_call(
|
||||||
['qubes-vm-boot-from-device', srt(self.name)])
|
['qubes-vm-boot-from-device', str(self.name)])
|
||||||
|
|
||||||
|
|
||||||
def type_change(self):
|
def type_change(self):
|
||||||
|
@ -28,7 +28,6 @@ import subprocess
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import traceback
|
import traceback
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
import time
|
|
||||||
|
|
||||||
import quamash
|
import quamash
|
||||||
import asyncio
|
import asyncio
|
||||||
@ -282,6 +281,7 @@ class RunCommandThread(QtCore.QThread):
|
|||||||
QtCore.QThread.__init__(self)
|
QtCore.QThread.__init__(self)
|
||||||
self.vm = vm
|
self.vm = vm
|
||||||
self.command_to_run = command_to_run
|
self.command_to_run = command_to_run
|
||||||
|
self.error = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
@ -450,7 +450,8 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
dispatcher.add_handler('domain-start-failed',
|
dispatcher.add_handler('domain-start-failed',
|
||||||
self.on_domain_status_changed)
|
self.on_domain_status_changed)
|
||||||
dispatcher.add_handler('domain-stopped', self.on_domain_status_changed)
|
dispatcher.add_handler('domain-stopped', self.on_domain_status_changed)
|
||||||
dispatcher.add_handler('domain-pre-shutdown', self.on_domain_status_changed)
|
dispatcher.add_handler('domain-pre-shutdown',
|
||||||
|
self.on_domain_status_changed)
|
||||||
dispatcher.add_handler('domain-shutdown', self.on_domain_status_changed)
|
dispatcher.add_handler('domain-shutdown', self.on_domain_status_changed)
|
||||||
dispatcher.add_handler('domain-paused', self.on_domain_status_changed)
|
dispatcher.add_handler('domain-paused', self.on_domain_status_changed)
|
||||||
dispatcher.add_handler('domain-unpaused', self.on_domain_status_changed)
|
dispatcher.add_handler('domain-unpaused', self.on_domain_status_changed)
|
||||||
@ -777,7 +778,8 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
# remove the VM
|
# remove the VM
|
||||||
thread = common_threads.RemoveVMThread(vm)
|
thread = common_threads.RemoveVMThread(vm)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
self.connect(thread, QtCore.SIGNAL("show_error(QString, QString)"), self.show_error)
|
self.connect(thread, QtCore.SIGNAL("show_error(QString, QString)"),
|
||||||
|
self.show_error)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
@ -803,7 +805,6 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
"Cloning Qube..."), "", 0, 0)
|
"Cloning Qube..."), "", 0, 0)
|
||||||
self.progress.setCancelButton(None)
|
self.progress.setCancelButton(None)
|
||||||
self.progress.setModal(True)
|
self.progress.setModal(True)
|
||||||
self.thread_closes = True
|
|
||||||
self.progress.show()
|
self.progress.show()
|
||||||
|
|
||||||
thread = common_threads.CloneVMThread(vm, clone_name)
|
thread = common_threads.CloneVMThread(vm, clone_name)
|
||||||
@ -871,7 +872,7 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
self.tr("Are you sure you want to power down the Qube"
|
self.tr("Are you sure you want to power down the Qube"
|
||||||
" <b>'{0}'</b>?<br><small>This will shutdown all the "
|
" <b>'{0}'</b>?<br><small>This will shutdown all the "
|
||||||
"running applications within this Qube.</small>").format(
|
"running applications within this Qube.</small>").format(
|
||||||
vm.name), QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel)
|
vm.name), QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel)
|
||||||
|
|
||||||
self.qt_app.processEvents()
|
self.qt_app.processEvents()
|
||||||
|
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
import sys
|
import sys
|
||||||
from PyQt4 import QtCore # pylint: disable=import-error
|
from PyQt4 import QtCore # pylint: disable=import-error
|
||||||
from PyQt4 import QtGui # pylint: disable=import-error
|
from PyQt4 import QtGui # pylint: disable=import-error
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import traceback
|
import traceback
|
||||||
@ -39,7 +37,7 @@ from . import ui_restoredlg # pylint: disable=no-name-in-module
|
|||||||
from . import multiselectwidget
|
from . import multiselectwidget
|
||||||
from . import backup_utils
|
from . import backup_utils
|
||||||
|
|
||||||
from multiprocessing import Queue, Event
|
from multiprocessing import Queue
|
||||||
from multiprocessing.queues import Empty
|
from multiprocessing.queues import Empty
|
||||||
from qubesadmin import Qubes, exc
|
from qubesadmin import Qubes, exc
|
||||||
from qubesadmin.backup import restore
|
from qubesadmin.backup import restore
|
||||||
@ -52,6 +50,7 @@ class RestoreThread(QtCore.QThread):
|
|||||||
self.vms_to_restore = vms_to_restore
|
self.vms_to_restore = vms_to_restore
|
||||||
self.error = None
|
self.error = None
|
||||||
self.msg = None
|
self.msg = None
|
||||||
|
self.canceled = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
err_msg = []
|
err_msg = []
|
||||||
@ -85,6 +84,9 @@ class RestoreVMsWindow(ui_restoredlg.Ui_Restore, QtGui.QWizard):
|
|||||||
self.vms_to_restore = None
|
self.vms_to_restore = None
|
||||||
self.func_output = []
|
self.func_output = []
|
||||||
|
|
||||||
|
self.thread = None
|
||||||
|
self.old_sigchld_handler = None
|
||||||
|
|
||||||
# Set up logging
|
# Set up logging
|
||||||
self.feedback_queue = Queue()
|
self.feedback_queue = Queue()
|
||||||
handler = logging.handlers.QueueHandler(self.feedback_queue)
|
handler = logging.handlers.QueueHandler(self.feedback_queue)
|
||||||
@ -206,13 +208,14 @@ class RestoreVMsWindow(ui_restoredlg.Ui_Restore, QtGui.QWizard):
|
|||||||
and str(self.dir_line_edit.text())
|
and str(self.dir_line_edit.text())
|
||||||
.count("media/") > 0)
|
.count("media/") > 0)
|
||||||
|
|
||||||
self.thread = RestoreThread(self.backup_restore, self.vms_to_restore)
|
self.thread = RestoreThread(self.backup_restore,
|
||||||
|
self.vms_to_restore)
|
||||||
self.thread.finished.connect(self.thread_finished)
|
self.thread.finished.connect(self.thread_finished)
|
||||||
|
|
||||||
# Start log timer
|
# Start log timer
|
||||||
timer = QtCore.QTimer(self)
|
timer = QtCore.QTimer(self)
|
||||||
timer.timeout.connect(self.update_log)
|
timer.timeout.connect(self.update_log)
|
||||||
timer.start(1000)
|
timer.start(1000)
|
||||||
|
|
||||||
self.thread.start()
|
self.thread.start()
|
||||||
|
|
||||||
|
@ -28,8 +28,6 @@ import os.path
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
import traceback
|
import traceback
|
||||||
import sys
|
import sys
|
||||||
from qubesadmin.tools import QubesArgumentParser
|
from qubesadmin.tools import QubesArgumentParser
|
||||||
@ -85,9 +83,9 @@ class RenameVMThread(QtCore.QThread):
|
|||||||
"To resolve this, please check and change the "
|
"To resolve this, please check and change the "
|
||||||
"following properties and remove the qube {} "
|
"following properties and remove the qube {} "
|
||||||
"manually.<br> ").format(
|
"manually.<br> ").format(
|
||||||
self.vm.name, name, self.vm.name) + list_text)
|
self.vm.name, self.vm.name, self.vm.name) + list_text)
|
||||||
|
|
||||||
except exc.QubesException as qex:
|
except exc.QubesException as ex:
|
||||||
self.error = ("Rename error!", str(ex))
|
self.error = ("Rename error!", str(ex))
|
||||||
except Exception as ex: # pylint: disable=broad-except
|
except Exception as ex: # pylint: disable=broad-except
|
||||||
self.error = ("Rename error!", repr(ex))
|
self.error = ("Rename error!", repr(ex))
|
||||||
@ -117,7 +115,7 @@ class RefreshAppsVMThread(QtCore.QThread):
|
|||||||
if not_running:
|
if not_running:
|
||||||
target_vm.shutdown()
|
target_vm.shutdown()
|
||||||
|
|
||||||
except Exception as ex:
|
except Exception as ex: # pylint: disable=broad-except
|
||||||
self.error = ("Refresh failed!", str(ex))
|
self.error = ("Refresh failed!", str(ex))
|
||||||
|
|
||||||
|
|
||||||
@ -265,7 +263,7 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
self,
|
self,
|
||||||
self.tr("Error while changing settings for {0}!"
|
self.tr("Error while changing settings for {0}!"
|
||||||
).format(self.vm.name),
|
).format(self.vm.name),
|
||||||
self.tr("ERROR: {0}").format('\n'.join(ret)))
|
self.tr("ERROR: {0}").format('\n'.join(error)))
|
||||||
|
|
||||||
def apply(self):
|
def apply(self):
|
||||||
self.save_changes()
|
self.save_changes()
|
||||||
@ -564,7 +562,7 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
if ok:
|
if ok:
|
||||||
thread = RenameVMThread(self.vm, new_vm_name, dependencies)
|
thread = RenameVMThread(self.vm, new_vm_name, dependencies)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
|
|
||||||
self.progress = QtGui.QProgressDialog(
|
self.progress = QtGui.QProgressDialog(
|
||||||
self.tr(
|
self.tr(
|
||||||
@ -621,7 +619,7 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
|
|
||||||
if ok:
|
if ok:
|
||||||
thread = common_threads.CloneVMThread(self.vm, cloned_vm_name)
|
thread = common_threads.CloneVMThread(self.vm, cloned_vm_name)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
|
|
||||||
self.progress = QtGui.QProgressDialog(
|
self.progress = QtGui.QProgressDialog(
|
||||||
@ -966,8 +964,8 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
self.refresh_apps_button.setText(self.tr('Refresh in progress...'))
|
self.refresh_apps_button.setText(self.tr('Refresh in progress...'))
|
||||||
|
|
||||||
thread = RefreshAppsVMThread(self.vm)
|
thread = RefreshAppsVMThread(self.vm)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
thread.finished.connect(self.refresh_finished)
|
thread.finished.connect(self.refresh_finished)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user