mirror of
https://github.com/datarhei/core.git
synced 2025-09-27 04:16:25 +08:00
Simplify updating cleanup rules
This commit is contained in:
@@ -129,8 +129,6 @@ func (rfs *filesystem) compilePatterns(patterns []Pattern) []Pattern {
|
||||
}
|
||||
|
||||
func (rfs *filesystem) UpdateCleanup(id string, newPatterns []Pattern) {
|
||||
rfs.logger.Debug().WithField("id", id).Log("Update pattern group")
|
||||
|
||||
newPatterns = rfs.compilePatterns(newPatterns)
|
||||
|
||||
rfs.cleanupLock.Lock()
|
||||
@@ -141,39 +139,32 @@ func (rfs *filesystem) UpdateCleanup(id string, newPatterns []Pattern) {
|
||||
|
||||
onlyCurrent, onlyNew := slices.DiffEqualer(currentPatterns, newPatterns)
|
||||
|
||||
patterns := []Pattern{}
|
||||
|
||||
for _, p := range currentPatterns {
|
||||
for _, p := range newPatterns {
|
||||
found := false
|
||||
for _, x := range onlyCurrent {
|
||||
for _, x := range onlyNew {
|
||||
if p.Equal(x) == nil {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
patterns = append(patterns, p)
|
||||
rfs.logger.Debug().WithFields(log.Fields{
|
||||
"id": id,
|
||||
"pattern": p.Pattern,
|
||||
"max_files": p.MaxFiles,
|
||||
"max_file_age": p.MaxFileAge.Seconds(),
|
||||
}).Log("Keep pattern")
|
||||
} else {
|
||||
rfs.logger.Debug().WithFields(log.Fields{
|
||||
"id": id,
|
||||
"pattern": p.Pattern,
|
||||
"max_files": p.MaxFiles,
|
||||
"max_file_age": p.MaxFileAge.Seconds(),
|
||||
}).Log("Add pattern")
|
||||
}
|
||||
}
|
||||
|
||||
for _, p := range onlyNew {
|
||||
rfs.logger.Debug().WithFields(log.Fields{
|
||||
"id": id,
|
||||
"pattern": p.Pattern,
|
||||
"max_files": p.MaxFiles,
|
||||
"max_file_age": p.MaxFileAge.Seconds(),
|
||||
}).Log("Add pattern")
|
||||
}
|
||||
|
||||
patterns = append(patterns, onlyNew...)
|
||||
|
||||
rfs.cleanupPatterns[id] = patterns
|
||||
rfs.cleanupPatterns[id] = newPatterns
|
||||
|
||||
for _, p := range onlyCurrent {
|
||||
rfs.logger.Debug().WithFields(log.Fields{
|
||||
@@ -258,10 +249,14 @@ func (rfs *filesystem) purge(patterns []Pattern) int64 {
|
||||
continue
|
||||
}
|
||||
|
||||
_, nfiles := rfs.Filesystem.RemoveList("/", fs.ListOptions{
|
||||
files, nfiles := rfs.Filesystem.RemoveList("/", fs.ListOptions{
|
||||
Pattern: pattern.Pattern,
|
||||
})
|
||||
|
||||
for _, file := range files {
|
||||
rfs.logger.Debug().WithField("path", file).Log("Purged file")
|
||||
}
|
||||
|
||||
nfilesTotal += nfiles
|
||||
}
|
||||
|
||||
|
@@ -48,6 +48,12 @@ func TestUpdateCleanup(t *testing.T) {
|
||||
|
||||
require.Equal(t, cleanfs.cleanupPatterns["foobar"], patterns)
|
||||
|
||||
patterns[0].MaxFiles = 42
|
||||
|
||||
cleanfs.UpdateCleanup("foobar", patterns)
|
||||
|
||||
require.Equal(t, cleanfs.cleanupPatterns["foobar"], patterns)
|
||||
|
||||
cleanfs.UpdateCleanup("foobar", patterns[1:])
|
||||
|
||||
require.Equal(t, cleanfs.cleanupPatterns["foobar"], patterns[1:])
|
||||
|
Reference in New Issue
Block a user