def get_vm_size(self, vm): size = 0 if vm.private_img is not None: size += qubesutils.get_disk_usage (vm.private_img) if vm.updateable: size += qubesutils.get_disk_usage(vm.root_img) return size
def get_vm_size(self, vm): size = 0 if vm.private_img is not None: size += qubesutils.get_disk_usage(vm.private_img) if vm.updateable: size += qubesutils.get_disk_usage(vm.root_img) return size
def __init__(self, vm): self.vm = vm if vm.qid == 0: local_user = grp.getgrnam('qubes').gr_mem[0] home_dir = pwd.getpwnam(local_user).pw_dir self.size = qubesutils.get_disk_usage(home_dir) else: self.size = self.get_vm_size(vm) super(BackupVMsWindow.VmListItem, self).__init__(vm.name+ " (" + qubesutils.size_to_human(self.size) + ")")
def __init__(self, vm): self.vm = vm if vm.qid == 0: local_user = grp.getgrnam('qubes').gr_mem[0] home_dir = pwd.getpwnam(local_user).pw_dir self.size = qubesutils.get_disk_usage(home_dir) else: self.size = self.get_vm_size(vm) super(BackupVMsWindow.VmListItem, self).__init__(vm.name + " (" + qubesutils.size_to_human(self.size) + ")")
def current_page_changed(self, id): if self.currentPage() is self.confirm_page: self.target_appvm = None if self.appvm_combobox.currentText() != "None": #An existing appvm chosen self.target_appvm = str(self.appvm_combobox.currentText()) # FIXME: ensure that at least a non empty passphrase has been provided del self.func_output[:] try: self.files_to_backup = qubesutils.backup_prepare(str(self.backup_dir), exclude_list = self.excluded, print_callback = self.gather_output) except Exception as ex: print "Exception:",ex QMessageBox.critical(None, "Error while preparing backup.", "ERROR: {0}".format(ex)) self.textEdit.setReadOnly(True) self.textEdit.setFontFamily("Monospace") self.textEdit.setText("\n".join(self.func_output)) elif self.currentPage() is self.commit_page: self.button(self.FinishButton).setDisabled(True) self.button(self.CancelButton).setDisabled(True) self.thread_monitor = ThreadMonitor() initial_usage = qubesutils.get_disk_usage(self.backup_dir) thread = threading.Thread (target= self.__do_backup__ , args=(self.thread_monitor,)) thread.daemon = True thread.start() self.button(self.CancelButton).setDisabled(False) counter = 0 while not self.thread_monitor.is_finished(): self.app.processEvents() time.sleep (0.1) counter += 1 if counter == 20: progress = self.check_backup_progress(initial_usage, self.total_size) self.progress_bar.setValue(progress) counter = 0 if not self.thread_monitor.success: QMessageBox.warning (None, "Backup error!", "ERROR: {1}".format(self.vm.name, self.thread_monitor.error_msg)) if self.dev_mount_path != None: umount_device(self.dev_mount_path) self.button(self.FinishButton).setEnabled(True)
def check_backup_progress(self, initial_usage, total_backup_size): du = qubesutils.get_disk_usage(self.backup_dir) done = du - initial_usage percent = int((float(done)/total_backup_size)*100) return percent