Notify on failed repo checks (#1113)

This commit is contained in:
Manu 2021-11-17 13:29:22 +04:00 committed by GitHub
parent 4c3e97a76c
commit 8f1fc6deb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -39,6 +39,7 @@ class VortaApp(QtSingleApplication):
backup_cancelled_event = QtCore.pyqtSignal()
backup_log_event = QtCore.pyqtSignal(str, dict)
backup_progress_event = QtCore.pyqtSignal(str)
check_failed_event = QtCore.pyqtSignal(str)
def __init__(self, args_raw, single_app=False):
super().__init__(APP_ID, args_raw)
@ -79,6 +80,7 @@ class VortaApp(QtSingleApplication):
self.backup_finished_event.connect(self.backup_finished_event_response)
self.backup_cancelled_event.connect(self.backup_cancelled_event_response)
self.message_received_event.connect(self.message_received_event_response)
self.check_failed_event.connect(self.check_failed_response)
self.backup_log_event.connect(self.react_to_log)
self.aboutToQuit.connect(self.quit_app_action)
self.set_borg_details_action()
@ -285,3 +287,12 @@ class VortaApp(QtSingleApplication):
if BackupProfileModel.select().count() == 0:
default_profile = BackupProfileModel(name='Default')
default_profile.save()
def check_failed_response(self, repo_url):
msg = QMessageBox()
msg.setIcon(QMessageBox.Critical)
msg.setStandardButtons(QMessageBox.Ok)
msg.setWindowTitle(self.tr('Repo Check Failed'))
msg.setText(self.tr('Repository data check for repo %s failed') % repo_url)
msg.setInformativeText(self.tr('Repair or recreate the repository soon to avoid missing data.'))
msg.exec()

View File

@ -10,7 +10,11 @@ class BorgCheckJob(BorgJob):
def finished_event(self, result):
self.app.backup_finished_event.emit(result)
self.result.emit(result)
self.app.backup_progress_event.emit(self.tr('Check completed.'))
if result['returncode'] != 0:
self.app.backup_progress_event.emit(self.tr('Repo check failed. See logs for details.'))
self.app.check_failed_event.emit(self.params['repo_url'])
else:
self.app.backup_progress_event.emit(self.tr('Check completed.'))
@classmethod
def prepare(cls, profile):