Add prune retention planning
This commit is contained in:
@@ -74,6 +74,7 @@ func Validate(cfg Config) error {
|
||||
errs = validateLinks(errs, destinationContext+".links", destination.Links)
|
||||
errs = validateStatePolicy(errs, destinationContext+".state", destination.State)
|
||||
errs = validateReconciliationPolicy(errs, destinationContext+".reconciliation", destination.Reconciliation)
|
||||
errs = validateRetentionPolicy(errs, destinationContext+".retention", destination.Retention)
|
||||
errs = validateTransferPolicy(errs, destinationContext+".transfer", destination.Transfer)
|
||||
}
|
||||
}
|
||||
@@ -323,6 +324,23 @@ func validateReconciliationPolicy(errs ValidationErrors, context string, policy
|
||||
return errs
|
||||
}
|
||||
|
||||
func validateRetentionPolicy(errs ValidationErrors, context string, policy RetentionPolicy) ValidationErrors {
|
||||
prune := policy.Prune
|
||||
if !prune.Enabled {
|
||||
return errs
|
||||
}
|
||||
if prune.OlderThan == nil && prune.KeepLatest == nil {
|
||||
errs = append(errs, context+".prune must set older_than or keep_latest when enabled is true")
|
||||
}
|
||||
if prune.OlderThan != nil && *prune.OlderThan <= 0 {
|
||||
errs = append(errs, context+".prune.older_than must be greater than zero")
|
||||
}
|
||||
if prune.KeepLatest != nil && *prune.KeepLatest < 0 {
|
||||
errs = append(errs, context+".prune.keep_latest must be zero or greater")
|
||||
}
|
||||
return errs
|
||||
}
|
||||
|
||||
func validateStatePolicy(errs ValidationErrors, context string, policy StatePolicy) ValidationErrors {
|
||||
if policy.Mode != StateModeSingleOwner && policy.Mode != StateModeSharedRoot {
|
||||
errs = append(errs, context+".mode must be "+StateModeSingleOwner+" or "+StateModeSharedRoot)
|
||||
|
||||
Reference in New Issue
Block a user