return [ d for d in dirs if os.path.isdir(os.path.join(basedir, d)) ]
- def listOldBackups(self):
+ def listExistingBackups(self):
"""Returns a list of old backups."""
backups = []
then use mode for given epoch. Use given mode otherwise."""
now = datetime.datetime.now()
- oldbackups = self.listOldBackups()
+ oldbackups = self.listExistingBackups()
# Get epoch of backup
if epoch == None:
"""Prune old backup files"""
allDirs = sorted(self.listAllDirs())
- # Collect all directories not matching backup name
+ # Collect all directories that are removed
removeDirs = [ d for d in allDirs if not Backup.isBackupDir(d) ]
- # Get all directories which are kept
- backups = self.listOldBackups()
- keepdirs = []
+ # Get all backups
+ backups = self.listExistingBackups()
+ # Group backups by epoch and sort them by age
byepoch = { e : list(sorted( [ b for b in backups if b.epoch == e ], \
- key=lambda b : b.date, reverse=True)) for e in self.conf.getRealEpochsSorted() }
+ key=lambda b : b.date, reverse=True)) \
+ for e in self.conf.getRealEpochsSorted() }
+ # If we have too many backups of a specific epoch --> add them to remove list
for e in byepoch:
epoch = self.conf.epochs[e]
old = byepoch[e][epoch.numkeeps:]
man.backup(epoch, mode)
if cmd == "list":
- for b in sorted(man.listOldBackups(), key=lambda b: b.date):
+ for b in sorted(man.listExistingBackups(), key=lambda b: b.date):
print(b.colAlignedString())
if cmd == "prune":