Hilarious oversights

This commit is contained in:
root 2023-03-26 03:38:27 -07:00
parent acfbb90f91
commit 429a4a6712
2 changed files with 24 additions and 1 deletions

View File

@ -149,6 +149,7 @@ class BackupRotator:
self.log("Path only has {} items, which does not meet the minimum threshold of {} items. Won't rotate this path.".format( self.log("Path only has {} items, which does not meet the minimum threshold of {} items. Won't rotate this path.".format(
len(children), minimum_items len(children), minimum_items
)) ))
return
elif len(children) <= max_items: elif len(children) <= max_items:
self.log("Path only has {} items, but needs more than {} for rotation; Won't rotate this path.".format( self.log("Path only has {} items, but needs more than {} for rotation; Won't rotate this path.".format(
len(children), max_items len(children), max_items
@ -195,6 +196,14 @@ class BackupRotator:
self.log("Rotating path for max age of {} days: {}".format(max_age_days, path)) self.log("Rotating path for max age of {} days: {}".format(max_age_days, path))
children = self._gather_rotation_candidates(config, path) children = self._gather_rotation_candidates(config, path)
minimum_items = self._determine_minimum_items(config)
# Do we need to rotate anything out?
if len(children) < minimum_items:
self.log("Path only has {} items, which does not meet the minimum threshold of {} items. Won't rotate this path.".format(
len(children), minimum_items
))
return
self.log("Examining {} items for deletion".format(len(children))) self.log("Examining {} items for deletion".format(len(children)))
children_to_delete = [] children_to_delete = []

View File

@ -78,11 +78,25 @@ Specifies the method used when attempting to determine how old a backup file/dir
Currently, only *file* is supported Currently, only *file* is supported
### minimum-items < INTEGER >
Specifies the minimum number of backup files/dirs that must be present before rotating can happen. Should be an integer.
This option doesn't specify how much to rotate on its own, but when rotation is possible. It should probably be used with maximum-age or something other than maximum-items.
For example, when the *minimum-items* value is set to 5, and *target-type* is *file*, the program will not rotate any files until there are at least 5 in the target directory.
### maximum-items < INTEGER > ### maximum-items < INTEGER >
Specifies the maximum number of backup files/dirs that are allowed in a path before rotating will happen. Should be an integer. Specifies the maximum number of backup files/dirs that are allowed in a path before rotating will happen. Should be an integer.
For example, when the *maximum-items* value is set to 5, and *target-type* is *file*, the program will not rotate any files until there are at least 5 in the target directory. For example, when the *maximum-items* value is set to 500, and *target-type* is *file*, the program will not rotate any files until there are at least 500 in the target directory.
### maximum-age < INTEGER >
Specifies the maximum age (in days) of backup files/dirs that are allowed in a path before rotating will happen. Should be an integer.
For example, when the *maximum-age* value is set to 30, and *target-type* is *file*, the program will not rotate any files that are newer than 30 days.
### paths < Array of Paths > ### paths < Array of Paths >