@@ -87,9 +87,9 @@ func defaultDevConfig() *DevConfig {
87
87
func NewStores (cfg * Config , clock clock.Clock ) (* stores , error ) {
88
88
var (
89
89
networkDir = filepath .Join (cfg .LitDir , cfg .Network )
90
- acctStore accounts. Store
91
- sessStore session. Store
92
- closeFns = make ( map [ string ] func () error )
90
+ stores = & stores {
91
+ closeFns : make ( map [ string ] func () error ),
92
+ }
93
93
)
94
94
95
95
switch cfg .DatabaseBackend {
@@ -98,76 +98,68 @@ func NewStores(cfg *Config, clock clock.Clock) (*stores, error) {
98
98
// the directory where we will store the database file exists.
99
99
err := makeDirectories (networkDir )
100
100
if err != nil {
101
- return nil , err
101
+ return stores , err
102
102
}
103
103
104
104
sqlStore , err := db .NewSqliteStore (cfg .Sqlite )
105
105
if err != nil {
106
- return nil , err
106
+ return stores , err
107
107
}
108
108
109
- acctStore = accounts .NewSQLStore (sqlStore .BaseDB , clock )
110
- sessStore = session .NewSQLStore (sqlStore .BaseDB , clock )
111
- closeFns ["sqlite" ] = sqlStore .BaseDB .Close
109
+ acctStore := accounts .NewSQLStore (sqlStore .BaseDB , clock )
110
+ sessStore := session .NewSQLStore (sqlStore .BaseDB , clock )
111
+
112
+ stores .accounts = acctStore
113
+ stores .sessions = sessStore
114
+ stores .closeFns ["sqlite" ] = sqlStore .BaseDB .Close
112
115
113
116
case DatabaseBackendPostgres :
114
117
sqlStore , err := db .NewPostgresStore (cfg .Postgres )
115
118
if err != nil {
116
- return nil , err
119
+ return stores , err
117
120
}
118
121
119
- acctStore = accounts .NewSQLStore (sqlStore .BaseDB , clock )
120
- sessStore = session .NewSQLStore (sqlStore .BaseDB , clock )
121
- closeFns ["postgres" ] = sqlStore .BaseDB .Close
122
+ acctStore := accounts .NewSQLStore (sqlStore .BaseDB , clock )
123
+ sessStore := session .NewSQLStore (sqlStore .BaseDB , clock )
124
+
125
+ stores .accounts = acctStore
126
+ stores .sessions = sessStore
127
+ stores .closeFns ["postgres" ] = sqlStore .BaseDB .Close
122
128
123
129
default :
124
130
accountStore , err := accounts .NewBoltStore (
125
131
filepath .Dir (cfg .MacaroonPath ), accounts .DBFilename ,
126
132
clock ,
127
133
)
128
134
if err != nil {
129
- return nil , err
135
+ return stores , err
130
136
}
131
- closeFns ["bbolt-accounts" ] = accountStore .Close
137
+
138
+ stores .accounts = accountStore
139
+ stores .closeFns ["bbolt-accounts" ] = accountStore .Close
132
140
133
141
sessionStore , err := session .NewDB (
134
142
networkDir , session .DBFilename , clock , accountStore ,
135
143
)
136
144
if err != nil {
137
- return nil , err
145
+ return stores , err
138
146
}
139
- closeFns ["bbolt-sessions" ] = sessionStore .Close
140
147
141
- acctStore = accountStore
142
- sessStore = sessionStore
148
+ stores . sessions = sessionStore
149
+ stores . closeFns [ "bbolt-sessions" ] = sessionStore . Close
143
150
}
144
151
145
152
firewallBoltDB , err := firewalldb .NewBoltDB (
146
- networkDir , firewalldb .DBFilename , sessStore ,
153
+ networkDir , firewalldb .DBFilename , stores . sessions ,
147
154
)
148
155
if err != nil {
149
- return nil , fmt .Errorf ("error creating firewall BoltDB: %v" ,
156
+ return stores , fmt .Errorf ("error creating firewall BoltDB: %v" ,
150
157
err )
151
158
}
152
- closeFns ["bbolt-firewalldb" ] = firewallBoltDB .Close
153
-
154
- return & stores {
155
- accounts : acctStore ,
156
- sessions : sessStore ,
157
- firewall : firewalldb .NewDB (firewallBoltDB ),
158
- firewallBolt : firewallBoltDB ,
159
- close : func () error {
160
- var returnErr error
161
- for storeName , fn := range closeFns {
162
- err := fn ()
163
- if err != nil {
164
- log .Errorf ("error closing %s store: %v" ,
165
- storeName , err )
166
- returnErr = err
167
- }
168
- }
169
-
170
- return returnErr
171
- },
172
- }, nil
159
+
160
+ stores .firewall = firewalldb .NewDB (firewallBoltDB )
161
+ stores .firewallBolt = firewallBoltDB
162
+ stores .closeFns ["bbolt-firewalldb" ] = firewallBoltDB .Close
163
+
164
+ return stores , nil
173
165
}
0 commit comments