diff --git a/qubes/backup.py b/qubes/backup.py index bfc6cb63..82984831 100644 --- a/qubes/backup.py +++ b/qubes/backup.py @@ -326,6 +326,7 @@ class Backup: #: callback for progress reporting. Will be called with one argument #: - progress in percents self.progress_callback = None + self.last_progress_time = time.time() #: backup ID, needs to be unique (for a given user), #: not necessary unpredictable; automatically generated self.backup_id = datetime.datetime.now().strftime( @@ -521,11 +522,13 @@ class Backup: if not self.total_backup_bytes: return if callable(self.progress_callback): - progress = ( - 100 * (self._done_vms_bytes + self._current_vm_bytes) / - self.total_backup_bytes) - # pylint: disable=not-callable - self.progress_callback(progress) + if time.time() - self.last_progress_time >= 1: # avoid flooding + progress = ( + 100 * (self._done_vms_bytes + self._current_vm_bytes) / + self.total_backup_bytes) + self.last_progress_time = time.time() + # pylint: disable=not-callable + self.progress_callback(progress) def _add_vm_progress(self, bytes_done): self._current_vm_bytes += bytes_done