Răsfoiți Sursa

backup: update last backup timestamp only when backup succeed

QubesOS/qubes-issues#2931
Marek Marczykowski-Górecki 6 ani în urmă
părinte
comite
bde8d45cca
1 a modificat fișierele cu 10 adăugiri și 6 ștergeri
  1. 10 6
      qubes/backup.py

+ 10 - 6
qubes/backup.py

@@ -652,9 +652,6 @@ class Backup(object):
             self._done_vms_bytes += vm_info.size
             self._current_vm_bytes = 0
             self._send_progress_update()
-            # Save date of last backup
-            if vm_info.vm:
-                vm_info.vm.backup_timestamp = datetime.datetime.now()
 
         yield from output_queue.put(QUEUE_FINISHED)
 
@@ -799,9 +796,16 @@ class Backup(object):
                 os.close(backup_stdout)
             else:
                 backup_stdout.close()
-            if vmproc_task:
-                yield from vmproc_task
-            shutil.rmtree(self.tmpdir)
+            try:
+                if vmproc_task:
+                    yield from vmproc_task
+            finally:
+                shutil.rmtree(self.tmpdir)
+
+        # Save date of last backup, only when backup succeeded
+        for qid, vm_info in files_to_backup.items():
+            if vm_info.vm:
+                vm_info.vm.backup_timestamp = datetime.datetime.now()
 
         self.app.save()