@@ -27,7 +27,7 @@ type Server struct {
27
27
log * logrus.Logger
28
28
store store.Storer
29
29
auth auth.Auther
30
- md * metadata.Database
30
+ md metadata.LookupSaver
31
31
}
32
32
33
33
// Main is the top of the pile. Start here.
@@ -41,7 +41,7 @@ func Main(log *logrus.Logger) {
41
41
opts .FileStorePrefix = "tmp"
42
42
}
43
43
44
- server , err := NewServer (opts , log )
44
+ server , err := NewServer (opts , log , nil )
45
45
if err != nil {
46
46
log .Fatal (err )
47
47
}
@@ -60,7 +60,7 @@ func Main(log *logrus.Logger) {
60
60
}
61
61
62
62
// NewServer creates a new *Server with a router and its routes registered
63
- func NewServer (opts * Options , log * logrus.Logger ) (* Server , error ) {
63
+ func NewServer (opts * Options , log * logrus.Logger , md metadata. LookupSaver ) (* Server , error ) {
64
64
var err error
65
65
66
66
log .Debug ("creating new server" )
@@ -72,7 +72,7 @@ func NewServer(opts *Options, log *logrus.Logger) (*Server, error) {
72
72
srv .setupRouter ()
73
73
srv .setupNegroni ()
74
74
75
- err = srv .getDB ( )
75
+ err = srv .getMd ( md )
76
76
if err != nil {
77
77
return nil , err
78
78
}
@@ -188,19 +188,25 @@ func (srv *Server) setupAuther() error {
188
188
panic ("fell through to a bad place ¯\\ _(ツ)_/¯" )
189
189
}
190
190
191
- func (srv * Server ) getDB ( ) error {
191
+ func (srv * Server ) getMd ( md metadata. LookupSaver ) error {
192
192
srv .log .Debug ("getting database handle" )
193
- db , err := metadata .NewDatabase (srv .opts .DatabaseURL , srv .log )
194
- if err != nil {
195
- return err
196
- }
197
193
198
- err = db .Init ()
199
- if err != nil {
200
- return err
194
+ if md == nil {
195
+ mddb , err := metadata .NewDatabase (srv .opts .DatabaseURL , srv .log )
196
+
197
+ if err != nil {
198
+ return err
199
+ }
200
+
201
+ err = mddb .Init ()
202
+ if err != nil {
203
+ return err
204
+ }
205
+
206
+ md = mddb
201
207
}
202
208
203
- srv .md = db
209
+ srv .md = md
204
210
return nil
205
211
}
206
212
0 commit comments