@@ -24,6 +24,10 @@ import (
24
24
_ "net/http/pprof"
25
25
"sync"
26
26
27
+ "github.com/Comcast/codex/db/retry"
28
+
29
+ "github.com/Comcast/codex/db/postgresql"
30
+
27
31
"github.com/Comcast/codex-svalinn/requestParser"
28
32
"github.com/Comcast/codex/db/batchInserter"
29
33
@@ -68,7 +72,7 @@ type SvalinnConfig struct {
68
72
Webhook WebhookConfig
69
73
RequestParser requestParser.Config
70
74
BatchInserter batchInserter.Config
71
- Db db .Config
75
+ Db postgresql .Config
72
76
InsertRetries RetryConfig
73
77
BlacklistInterval time.Duration
74
78
}
@@ -88,7 +92,7 @@ type Svalinn struct {
88
92
}
89
93
90
94
type database struct {
91
- dbConn * db. Connection
95
+ dbClose func () error
92
96
blacklistStop chan struct {}
93
97
blacklistRefresher blacklist.List
94
98
inserter db.Inserter
@@ -105,7 +109,7 @@ func svalinn(arguments []string) {
105
109
106
110
var (
107
111
f , v = pflag .NewFlagSet (applicationName , pflag .ContinueOnError ), viper .New ()
108
- logger , metricsRegistry , codex , err = server .Initialize (applicationName , arguments , f , v , secure .Metrics , db .Metrics , requestParser .Metrics , batchInserter .Metrics )
112
+ logger , metricsRegistry , codex , err = server .Initialize (applicationName , arguments , f , v , secure .Metrics , postgresql . Metrics , dbretry .Metrics , requestParser .Metrics , batchInserter .Metrics )
109
113
)
110
114
111
115
if parseErr , done := printVersion (f , arguments ); done {
@@ -201,31 +205,32 @@ func exitIfError(logger log.Logger, err error) {
201
205
202
206
func setupDb (config * SvalinnConfig , logger log.Logger , metricsRegistry xmetrics.Registry ) (database , error ) {
203
207
var (
204
- d database
205
- err error
208
+ d database
206
209
)
207
210
d .health = health .New ()
208
211
d .health .Logger = healthlogger .NewHealthLogger (logger )
209
212
210
- d . dbConn , err = db .CreateDbConnection (config .Db , metricsRegistry , d .health )
213
+ dbConn , err := postgresql .CreateDbConnection (config .Db , metricsRegistry , d .health )
211
214
if err != nil {
212
215
return database {}, err
213
216
}
214
217
215
- d .inserter = db .CreateRetryInsertService (
216
- d .dbConn ,
217
- db .WithRetries (config .InsertRetries .NumRetries ),
218
- db .WithInterval (config .InsertRetries .Interval ),
219
- db .WithIntervalMultiplier (config .InsertRetries .IntervalMult ),
220
- db .WithMeasures (metricsRegistry ),
218
+ d .dbClose = dbConn .Close
219
+
220
+ d .inserter = dbretry .CreateRetryInsertService (
221
+ dbConn ,
222
+ dbretry .WithRetries (config .InsertRetries .NumRetries ),
223
+ dbretry .WithInterval (config .InsertRetries .Interval ),
224
+ dbretry .WithIntervalMultiplier (config .InsertRetries .IntervalMult ),
225
+ dbretry .WithMeasures (metricsRegistry ),
221
226
)
222
227
223
228
d .blacklistStop = make (chan struct {}, 1 )
224
229
blacklistConfig := blacklist.RefresherConfig {
225
230
Logger : logger ,
226
231
UpdateInterval : config .BlacklistInterval ,
227
232
}
228
- d .blacklistRefresher = blacklist .NewListRefresher (blacklistConfig , d . dbConn , d .blacklistStop )
233
+ d .blacklistRefresher = blacklist .NewListRefresher (blacklistConfig , dbConn , d .blacklistStop )
229
234
return d , nil
230
235
231
236
}
@@ -272,7 +277,7 @@ func waitUntilShutdown(logger log.Logger, s *Svalinn, database database) {
272
277
s .waitGroup .Wait ()
273
278
s .requestParser .Stop ()
274
279
s .batchInserter .Stop ()
275
- err = database .dbConn . Close ()
280
+ err = database .dbClose ()
276
281
if err != nil {
277
282
logging .Error (logger , emperror .Context (err )... ).Log (logging .MessageKey (), "closing database threads failed" ,
278
283
logging .ErrorKey (), err .Error ())
0 commit comments