Compare commits

...

4 Commits

Author SHA1 Message Date
Shivansh Singh 9a1242f06e
Merge fe4cc4a9f3 into 9cabbbd193 2024-04-14 19:56:29 +02:00
Manu 9cabbbd193 Input to change macOS version for building 2024-04-08 16:24:31 +01:00
Aryaman Sharma 3268bf1599
Notify after post_backup_tasks. By @TheLazron (#1940) 2024-04-07 18:05:04 +01:00
shivansh02 fe4cc4a9f3 run borg compact after each prune 2024-03-06 21:38:01 +05:30
3 changed files with 30 additions and 4 deletions

View File

@ -3,17 +3,21 @@ on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to use for building macOS release'
description: 'Branch to use for building release'
required: true
default: 'master'
borg_version:
description: 'Borg version to package'
required: true
default: '1.2.1'
default: '1.2.8'
macos_version:
description: 'macOS version for building'
required: true
default: 'macos-11'
jobs:
build:
runs-on: macos-11
runs-on: ${{ github.event.inputs.macos_version }}
steps:
- name: Check out selected branch

View File

@ -1,10 +1,15 @@
from vorta.store.models import RepoModel
from vorta.borg.compact import BorgCompactJob
from vorta.store.models import BackupProfileModel, RepoModel
from vorta.utils import borg_compat, format_archive_name
from .borg_job import BorgJob
class BorgPruneJob(BorgJob):
def _set_status(self, text):
self.mountErrors.setText(text)
self.mountErrors.repaint()
def started_event(self):
self.app.backup_started_event.emit()
self.app.backup_progress_event.emit(f"[{self.params['profile_name']}] {self.tr('Pruning old archives…')}")
@ -22,6 +27,17 @@ class BorgPruneJob(BorgJob):
self.result.emit(result)
self.app.backup_progress_event.emit(f"[{self.params['profile_name']}] {self.tr('Pruning done.')}")
# run compact if borg>=1.2
if borg_compat.check("COMPACT_SUBCOMMAND"):
profile = BackupProfileModel.get(id=self.params['profile_id'])
params = BorgCompactJob.prepare(profile)
if params['ok']:
job = BorgCompactJob(params['cmd'], params, profile.repo.id)
job.updated.connect(self._set_status)
self.app.jobs_manager.add_job(job)
else:
self._set_status(params['message'])
@classmethod
def prepare(cls, profile):
ret = super().prepare(profile)

View File

@ -459,6 +459,7 @@ class VortaScheduler(QtCore.QObject):
Pruning and checking after successful backup.
"""
profile = BackupProfileModel.get(id=profile_id)
notifier = VortaNotifications.pick()
logger.info('Doing post-backup jobs for %s', profile.name)
if profile.prune_on:
msg = BorgPruneJob.prepare(profile)
@ -489,6 +490,11 @@ class VortaScheduler(QtCore.QObject):
self.app.jobs_manager.add_job(job)
logger.info('Finished background task for profile %s', profile.name)
notifier.deliver(
self.tr('Vorta Backup'),
self.tr('Post Backup Tasks successful for %s' % profile.name),
level='info',
)
def remove_job(self, profile_id):
if profile_id in self.timers: