11 Commits

Author SHA1 Message Date
429a4a6712 Hilarious oversights 2023-03-26 03:38:27 -07:00
acfbb90f91 hooks? 2023-03-26 02:26:02 -07:00
9f26c09453 hooks? 2023-03-26 02:25:56 -07:00
248f759d96 hooks? 2023-03-26 02:25:27 -07:00
0125e92a0a hooks? 2023-03-26 02:24:20 -07:00
a59c573174 hooks? 2023-03-26 02:24:05 -07:00
b3687abb62 hooks? 2023-03-26 02:23:07 -07:00
91b2b0d98a hooks? 2023-03-26 02:22:15 -07:00
cf9be50c2a hooks? 2023-03-26 02:21:58 -07:00
5ffe16cd31 hooks? 2023-03-26 02:20:39 -07:00
8e03950102 Bump python version 2023-03-26 02:17:04 -07:00
4 changed files with 26 additions and 3 deletions

View File

@ -1 +1 @@
3.10.5
3.10.10

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(
len(children), minimum_items
))
return
elif len(children) <= max_items:
self.log("Path only has {} items, but needs more than {} for rotation; Won't rotate this path.".format(
len(children), max_items
@ -195,6 +196,14 @@ class BackupRotator:
self.log("Rotating path for max age of {} days: {}".format(max_age_days, 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)))
children_to_delete = []

View File

@ -9,6 +9,6 @@ pyyaml = ">=5.4"
[dev-packages]
[requires]
python_version = "3.10.5"
python_version = "3.10.10"

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
### 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 >
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 >