feat: setup logs retention by max file size
This commit is contained in:
1 parent
70c8492f4f
commit
f914eae3c5
44 files changed
+2316
-161
No files matched your search
@@ -4,6 +4,7 @@ import (
|
||||
"RenewCMS/internal/domain/audit"
|
||||
"RenewCMS/internal/infrastructure/auditing"
|
||||
persistence "RenewCMS/internal/infrastructure/persistence/repositories"
|
||||
"RenewCMS/internal/infrastructure/useCases"
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
@@ -25,6 +26,10 @@ type activityProbeRepo struct {
|
||||
deleteErr error
|
||||
deleteCalls int
|
||||
readErr error
|
||||
sizeErr error
|
||||
sizeBytes *int64
|
||||
oldestErr error
|
||||
oldestCalls int
|
||||
}
|
||||
|
||||
var _ audit.Repository = &activityProbeRepo{}
|
||||
@@ -64,6 +69,24 @@ func (p *activityProbeRepo) DeleteOlderThan(cutoff time.Time) (int, error) {
|
||||
return p.inner.DeleteOlderThan(cutoff)
|
||||
}
|
||||
|
||||
func (p *activityProbeRepo) DeleteOldest(limit int, before time.Time) (int, error) {
|
||||
p.oldestCalls++
|
||||
if p.oldestErr != nil {
|
||||
return 0, p.oldestErr
|
||||
}
|
||||
return p.inner.DeleteOldest(limit, before)
|
||||
}
|
||||
|
||||
func (p *activityProbeRepo) SizeBytes() (int64, error) {
|
||||
if p.sizeErr != nil {
|
||||
return 0, p.sizeErr
|
||||
}
|
||||
if p.sizeBytes != nil {
|
||||
return *p.sizeBytes, nil
|
||||
}
|
||||
return p.inner.SizeBytes()
|
||||
}
|
||||
|
||||
type activitySettingsFake struct {
|
||||
settings audit.Settings
|
||||
saveErr error
|
||||
@@ -85,12 +108,13 @@ func (f *activitySettingsFake) Get() (audit.Settings, error) {
|
||||
return f.settings, nil
|
||||
}
|
||||
|
||||
func (f *activitySettingsFake) SaveRetention(days int) error {
|
||||
func (f *activitySettingsFake) SaveRetention(days int, maxGB int) error {
|
||||
if f.saveErr != nil {
|
||||
return f.saveErr
|
||||
}
|
||||
f.retentionOK++
|
||||
f.settings.RetentionDays = days
|
||||
f.settings.RetentionMaxGB = maxGB
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -144,3 +168,16 @@ func (h *activityHarness) seed(t *testing.T, event audit.Event) audit.Event {
|
||||
}
|
||||
|
||||
var errDiskFull = errors.New("disk full")
|
||||
|
||||
func newSizeEvents(t *testing.T) audit.Repository {
|
||||
t.Helper()
|
||||
return persistence.NewAuditEventRepository(openActivityDatabase(t))
|
||||
}
|
||||
|
||||
func retentionDays(days int) useCases.UpdateActivityRetentionCommand {
|
||||
return useCases.UpdateActivityRetentionCommand{Days: &days}
|
||||
}
|
||||
|
||||
func retentionMaxGB(maxGB int) useCases.UpdateActivityRetentionCommand {
|
||||
return useCases.UpdateActivityRetentionCommand{MaxGB: &maxGB}
|
||||
}
|
||||
Reference in new issue
Block a user