@@ -2,67 +2,68 @@ package scheduler
2
2
3
3
import (
4
4
"fmt"
5
+ "time"
6
+
5
7
"github.com/neo9/mongodb-backups/pkg/utils"
6
8
log "github.com/sirupsen/logrus"
7
- "time"
8
9
)
9
10
10
11
func init () {
11
12
log .SetFormatter (& log.JSONFormatter {})
12
13
}
13
14
14
15
func (scheduler * Scheduler ) deleteOldBackups () {
15
- files , err := scheduler .Bucket .ListFiles (scheduler .Plan .Name )
16
- if err != nil {
16
+ files , err := scheduler .Bucket .ListFiles (scheduler .Plan .Name )
17
+ if err != nil {
17
18
scheduler .incRetentionMetricError (fmt .Sprintf ("Could not list files for plan %s" , scheduler .Plan .Name ))
18
- return
19
+ return
19
20
}
20
21
21
- retentionDuration , err := utils .GetDurationFromTimeString (scheduler .Plan .Retention )
22
- if err != nil {
22
+ retentionDuration , err := utils .GetDurationFromTimeString (scheduler .Plan .Retention )
23
+ if err != nil {
23
24
scheduler .incRetentionMetricError (fmt .Sprintf ("Could not execute retention: %v" , err ))
24
- return
25
+ return
25
26
}
26
27
27
- var removeFiles []string
28
+ var removeFiles []string
28
29
29
- for i := 0 ; i < len (files ); i ++ {
30
- file := files [i ]
31
- log .Debugf ("File: " , file .Name )
32
- timestamp , err := utils .GetBucketFileTimestamp (file .Name )
33
- if err != nil {
30
+ for i := 0 ; i < len (files ); i ++ {
31
+ file := files [i ]
32
+ log .Debugf ("File: " , file .Name )
33
+ timestamp , err := utils .GetBucketFileTimestamp (file .Name )
34
+ if err != nil {
34
35
scheduler .incRetentionMetricError (fmt .Sprintf ("Could not apply retention: %v" , err ))
35
36
}
36
37
37
- ageInSeconds := time .Now ().Unix () - timestamp
38
- diffInSeconds := ageInSeconds - int64 (retentionDuration .Seconds ())
38
+ ageInSeconds := time .Now ().Unix () - timestamp
39
+ diffInSeconds := ageInSeconds - int64 (retentionDuration .Seconds ())
39
40
40
- if diffInSeconds > 0 {
41
+ if diffInSeconds > 0 {
41
42
log .Debugf ("File is %s old and schedule for removal" , file .Name )
42
- removeFiles = append (removeFiles , file .Name )
43
+ removeFiles = append (removeFiles , file .Name )
43
44
} else {
44
45
log .Debugf ("File is %s old and will be removed in %s" , file .Name ,
45
- time .Duration (diffInSeconds * - 1 ) * time .Second )
46
+ time .Duration (diffInSeconds * - 1 )* time .Second )
46
47
}
47
48
}
48
49
49
- log .Infof ("Retention: %d file(s) to remove" , len (removeFiles ))
50
+ log .Infof ("Retention: %d file(s) to remove" , len (removeFiles ))
50
51
51
- status := "success"
52
- for i := 0 ; i < len (removeFiles ); i ++ {
53
- err := scheduler .Bucket .DeleteFile (removeFiles [i ])
54
- if err != nil {
52
+ status := "success"
53
+ for i := 0 ; i < len (removeFiles ); i ++ {
54
+ err := scheduler .Bucket .DeleteFile (removeFiles [i ])
55
+ if err != nil {
55
56
scheduler .incRetentionMetricError (fmt .Sprintf ("Could not remove file %s" , removeFiles [i ]))
56
- status = "error"
57
+ status = "error"
57
58
}
58
59
}
59
60
60
- snapshotCount := float64 (len (files ) / 2 - len (removeFiles ))
61
+ snapshotCount := float64 (len (files )/ 2 - len (removeFiles ))
61
62
scheduler .Metrics .BucketCount .WithLabelValues (scheduler .Plan .Name ).Set (snapshotCount )
62
63
scheduler .Metrics .RetentionTotal .WithLabelValues (scheduler .Plan .Name , status ).Inc ()
63
64
}
64
65
65
66
func (scheduler * Scheduler ) incRetentionMetricError (error string ) {
66
- log .Error (error )
67
- scheduler .Metrics .RetentionTotal .WithLabelValues (scheduler .Plan .Name , "error" ).Inc ()
67
+ log .Error (error )
68
+ scheduler .Metrics .RetentionTotal .WithLabelValues (scheduler .Plan .Name , "error" ).Inc ()
68
69
}
0 commit comments