store: now opening stores
This commit is contained in:
parent
1dab3978fb
commit
1a4ecb133f
3 changed files with 26 additions and 14 deletions
server/store
|
@ -36,13 +36,10 @@ func RegisterClientStoreDriver(name string, driver ClientStoreDriver) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenClientStore returns a ClientStore specified by a configuration.
|
// OpenClientStore returns a ClientStore specified by a configuration.
|
||||||
func OpenClientStore(name string, cfg *Config) (ClientStore, error) {
|
func OpenClientStore(cfg *Config) (ClientStore, error) {
|
||||||
driver, ok := clientStoreDrivers[name]
|
driver, ok := clientStoreDrivers[cfg.ClientStore]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf(
|
return nil, fmt.Errorf("store: unknown driver %q (forgotten import?)", cfg.ClientStore)
|
||||||
"store: unknown driver %q (forgotten import?)",
|
|
||||||
name,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return driver.New(cfg)
|
return driver.New(cfg)
|
||||||
|
|
|
@ -49,13 +49,10 @@ func RegisterPeerStoreDriver(name string, driver PeerStoreDriver) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenPeerStore returns a PeerStore specified by a configuration.
|
// OpenPeerStore returns a PeerStore specified by a configuration.
|
||||||
func OpenPeerStore(name string, cfg *Config) (PeerStore, error) {
|
func OpenPeerStore(cfg *Config) (PeerStore, error) {
|
||||||
driver, ok := peerStoreDrivers[name]
|
driver, ok := peerStoreDrivers[cfg.PeerStore]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf(
|
return nil, fmt.Errorf("storage: unknown driver %q (forgotten import?)", cfg.PeerStore)
|
||||||
"storage: unknown driver %q (forgotten import?)",
|
|
||||||
name,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return driver.New(cfg)
|
return driver.New(cfg)
|
||||||
|
|
|
@ -30,9 +30,27 @@ func constructor(srvcfg *config.ServerConfig, tkr *tracker.Tracker) (server.Serv
|
||||||
return nil, errors.New("store: invalid store config: " + err.Error())
|
return nil, errors.New("store: invalid store config: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cs, err := OpenClientStore(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
ps, err := OpenPeerStore(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
ips, err := OpenIPStore(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
theStore = &Store{
|
theStore = &Store{
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
tkr: tkr,
|
tkr: tkr,
|
||||||
|
ClientStore: cs,
|
||||||
|
PeerStore: ps,
|
||||||
|
IPStore: ips,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return theStore, nil
|
return theStore, nil
|
||||||
|
|
Loading…
Add table
Reference in a new issue