From b5984da8bfe005f3f21d09d3035c645585d84dd9 Mon Sep 17 00:00:00 2001 From: Eric Torres Date: Wed, 17 Apr 2019 18:49:33 -0700 Subject: [PATCH] Add basic logic for updating symlink after snapshot removal --- rbackup/struct/repository.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rbackup/struct/repository.py b/rbackup/struct/repository.py index e2525f8..af5e14a 100644 --- a/rbackup/struct/repository.py +++ b/rbackup/struct/repository.py @@ -113,15 +113,17 @@ class Repository(Hierarchy): :type index: int """ snapshot_to_delete = self._snapshots[index] - - # TODO add logic for deleting snapshot pointed to by self.snapshot_symlink - snapshot_to_delete.cleanup() del self._snapshots[index] del self._snapshot_metadata[index] self.write_metadata(self._snapshot_metadata) + if not self._snapshot_metadata: + self.snapshot_symlink.unlink() + else: + self.snapshot_symlink.symlink_to(self._snapshots[-1]) + def __getitem__(self, idx): """Retrieve a Snapshot at a certain index.""" return self._snapshots[idx]