1
0
Fork 0
mirror of https://github.com/borgbase/vorta synced 2025-01-03 05:36:19 +00:00

Remove jobs before deleting profile (#1107)

This commit is contained in:
Manu 2021-11-15 15:18:11 +04:00 committed by GitHub
parent d8b61a0e33
commit 0b2a7c02c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 9 deletions

View file

@ -17,7 +17,6 @@
def init_logger(background=False):
logger.setLevel(logging.DEBUG)
logging.getLogger('peewee').setLevel(logging.INFO)
logging.getLogger('apscheduler').setLevel(logging.INFO)
logging.getLogger('PyQt5').setLevel(logging.INFO)
# create logging format

View file

@ -53,8 +53,7 @@ def set_timer_for_profile(self, profile_id):
# First stop and remove any existing timer for this profile
self.lock.acquire()
if profile_id in self.timers:
self.timers[profile_id]['qtt'].stop()
del self.timers[profile_id]
self.remove_job(profile_id)
# If no repo is set or only manual backups, just return without
# replacing the job we removed above.
@ -121,7 +120,6 @@ def reload_all_timers(self):
for profile in BackupProfileModel.select():
self.set_timer_for_profile(profile.id)
@property
def next_job(self):
next_job = now = dt.now()
next_profile = None
@ -180,7 +178,7 @@ def create_backup(self, profile_id):
def notify(self, result):
notifier = VortaNotifications.pick()
profile_name = result['params']['profile_name']
profile_id = result['params']['profile']
profile_id = result['params']['profile'].id
if result['returncode'] in [0, 1]:
notifier.deliver(self.tr('Vorta Backup'),
@ -229,3 +227,7 @@ def post_backup_tasks(self, profile_id):
self.app.jobs_manager.add_job(job)
logger.info('Finished background task for profile %s', profile.name)
def remove_job(self, profile_id):
self.timers[profile_id]['qtt'].stop()
del self.timers[profile_id]

View file

@ -44,7 +44,8 @@ def on_user_click(self):
menu.addSeparator()
status = menu.addAction(self.app.scheduler.next_job)
next_task_time = self.app.scheduler.next_job()
status = menu.addAction(next_task_time)
status.setEnabled(False)
if self.app.jobs_manager.is_worker_running():
@ -52,7 +53,7 @@ def on_user_click(self):
cancel_action = menu.addAction(self.tr('Cancel Backup'))
cancel_action.triggered.connect(self.app.backup_cancelled_event.emit)
else:
status.setText(self.tr('Next Task: %s') % self.app.scheduler.next_job)
status.setText(self.tr('Next Task: %s') % next_task_time)
profiles = BackupProfileModel.select()
if profiles.count() > 1:
profile_menu = menu.addMenu(self.tr('Backup Now'))

View file

@ -157,15 +157,16 @@ def profile_rename_action(self):
def profile_delete_action(self):
if self.profileSelector.count() > 1:
to_delete = BackupProfileModel.get(id=self.profileSelector.currentData())
to_delete_id = self.profileSelector.currentData()
to_delete = BackupProfileModel.get(id=to_delete_id)
# TODO: Remove pending background jobs
msg = self.tr("Are you sure you want to delete profile '{}'?".format(to_delete.name))
reply = QMessageBox.question(self, self.tr("Confirm deletion"),
msg, QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
to_delete.delete_instance(recursive=True)
self.app.scheduler.remove_job(to_delete_id) # Remove pending jobs
self.profileSelector.removeItem(self.profileSelector.currentIndex())
self.profile_select_action(0)