mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 18:43:10 -06:00
Add ProcessContext to ConnectionManager to cleanly shut down database
connections
This commit is contained in:
parent
4c77ff3b26
commit
d4db4ed40d
|
|
@ -134,7 +134,7 @@ func TestAppserviceInternalAPI(t *testing.T) {
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
// Create required internal APIs
|
// Create required internal APIs
|
||||||
natsInstance := jetstream.NATSInstance{}
|
natsInstance := jetstream.NATSInstance{}
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(ctx, cfg.Global.DatabaseOptions)
|
||||||
rsAPI := roomserver.NewInternalAPI(ctx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(ctx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
usrAPI := userapi.NewInternalAPI(ctx, cfg, cm, &natsInstance, rsAPI, nil)
|
usrAPI := userapi.NewInternalAPI(ctx, cfg, cm, &natsInstance, rsAPI, nil)
|
||||||
asAPI := appservice.NewInternalAPI(ctx, cfg, &natsInstance, usrAPI, rsAPI)
|
asAPI := appservice.NewInternalAPI(ctx, cfg, &natsInstance, usrAPI, rsAPI)
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ func TestAdminResetPassword(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
routers := httputil.NewRouters()
|
routers := httputil.NewRouters()
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
// Needed for changing the password/login
|
// Needed for changing the password/login
|
||||||
|
|
@ -161,7 +161,7 @@ func TestPurgeRoom(t *testing.T) {
|
||||||
defer close()
|
defer close()
|
||||||
|
|
||||||
routers := httputil.NewRouters()
|
routers := httputil.NewRouters()
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ func TestJoinRoomByIDOrAlias(t *testing.T) {
|
||||||
cfg, processCtx, close := testrig.CreateConfig(t, dbType)
|
cfg, processCtx, close := testrig.CreateConfig(t, dbType)
|
||||||
defer close()
|
defer close()
|
||||||
|
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
natsInstance := jetstream.NATSInstance{}
|
natsInstance := jetstream.NATSInstance{}
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ func TestLogin(t *testing.T) {
|
||||||
SigningIdentity: gomatrixserverlib.SigningIdentity{ServerName: "vh1"},
|
SigningIdentity: gomatrixserverlib.SigningIdentity{ServerName: "vh1"},
|
||||||
})
|
})
|
||||||
|
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
routers := httputil.NewRouters()
|
routers := httputil.NewRouters()
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
|
|
|
||||||
|
|
@ -413,7 +413,7 @@ func Test_register(t *testing.T) {
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
natsInstance := jetstream.NATSInstance{}
|
natsInstance := jetstream.NATSInstance{}
|
||||||
|
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
||||||
|
|
||||||
|
|
@ -587,7 +587,7 @@ func TestRegisterUserWithDisplayName(t *testing.T) {
|
||||||
|
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
natsInstance := jetstream.NATSInstance{}
|
natsInstance := jetstream.NATSInstance{}
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
||||||
deviceName, deviceID := "deviceName", "deviceID"
|
deviceName, deviceID := "deviceName", "deviceID"
|
||||||
|
|
@ -628,7 +628,7 @@ func TestRegisterAdminUsingSharedSecret(t *testing.T) {
|
||||||
sharedSecret := "dendritetest"
|
sharedSecret := "dendritetest"
|
||||||
cfg.ClientAPI.RegistrationSharedSecret = sharedSecret
|
cfg.ClientAPI.RegistrationSharedSecret = sharedSecret
|
||||||
|
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
|
||||||
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
userAPI := userapi.NewInternalAPI(processCtx, cfg, cm, &natsInstance, rsAPI, nil)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ func mustCreateFederationDatabase(t *testing.T, dbType test.DBType) (storage.Dat
|
||||||
caches := caching.NewRistrettoCache(8*1024*1024, time.Hour, false)
|
caches := caching.NewRistrettoCache(8*1024*1024, time.Hour, false)
|
||||||
connStr, dbClose := test.PrepareDBConnectionString(t, dbType)
|
connStr, dbClose := test.PrepareDBConnectionString(t, dbType)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewDatabase(ctx, cm, &config.DatabaseOptions{
|
db, err := storage.NewDatabase(ctx, cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
}, caches, func(server gomatrixserverlib.ServerName) bool { return server == "localhost" })
|
}, caches, func(server gomatrixserverlib.ServerName) bool { return server == "localhost" })
|
||||||
|
|
|
||||||
|
|
@ -19,17 +19,20 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/matrix-org/dendrite/setup/config"
|
"github.com/matrix-org/dendrite/setup/config"
|
||||||
|
"github.com/matrix-org/dendrite/setup/process"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Connections struct {
|
type Connections struct {
|
||||||
db *sql.DB
|
db *sql.DB
|
||||||
writer Writer
|
writer Writer
|
||||||
globalConfig config.DatabaseOptions
|
globalConfig config.DatabaseOptions
|
||||||
|
processContext *process.ProcessContext
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConnectionManager(globalConfig config.DatabaseOptions) Connections {
|
func NewConnectionManager(processCtx *process.ProcessContext, globalConfig config.DatabaseOptions) Connections {
|
||||||
return Connections{
|
return Connections{
|
||||||
globalConfig: globalConfig,
|
globalConfig: globalConfig,
|
||||||
|
processContext: processCtx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,6 +53,15 @@ func (c *Connections) Connection(dbProperties *config.DatabaseOptions) (*sql.DB,
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
c.writer = writer
|
c.writer = writer
|
||||||
|
go func() {
|
||||||
|
if c.processContext == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.processContext.ComponentStarted()
|
||||||
|
<-c.processContext.WaitForShutdown()
|
||||||
|
_ = c.db.Close()
|
||||||
|
c.processContext.ComponentFinished()
|
||||||
|
}()
|
||||||
return c.db, c.writer, nil
|
return c.db, c.writer, nil
|
||||||
}
|
}
|
||||||
if c.db != nil && c.writer != nil {
|
if c.db != nil && c.writer != nil {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ func TestConnectionManager(t *testing.T) {
|
||||||
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
|
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
|
||||||
conStr, close := test.PrepareDBConnectionString(t, dbType)
|
conStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
t.Cleanup(close)
|
t.Cleanup(close)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
|
|
||||||
dbProps := &config.DatabaseOptions{ConnectionString: config.DataSource(string(conStr))}
|
dbProps := &config.DatabaseOptions{ConnectionString: config.DataSource(string(conStr))}
|
||||||
db, writer, err := cm.Connection(dbProps)
|
db, writer, err := cm.Connection(dbProps)
|
||||||
|
|
@ -47,7 +47,7 @@ func TestConnectionManager(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// test invalid connection string configured
|
// test invalid connection string configured
|
||||||
cm = sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm = sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
_, _, err = cm.Connection(&config.DatabaseOptions{ConnectionString: "http://"})
|
_, _, err = cm.Connection(&config.DatabaseOptions{ConnectionString: "http://"})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal("expected an error but got none")
|
t.Fatal("expected an error but got none")
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ func Test_uploadRequest_doUpload(t *testing.T) {
|
||||||
// create testdata folder and remove when done
|
// create testdata folder and remove when done
|
||||||
_ = os.Mkdir(testdataPath, os.ModePerm)
|
_ = os.Mkdir(testdataPath, os.ModePerm)
|
||||||
defer fileutils.RemoveDir(types.Path(testdataPath), nil)
|
defer fileutils.RemoveDir(types.Path(testdataPath), nil)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewMediaAPIDatasource(cm, &config.DatabaseOptions{
|
db, err := storage.NewMediaAPIDatasource(cm, &config.DatabaseOptions{
|
||||||
ConnectionString: "file::memory:?cache=shared",
|
ConnectionString: "file::memory:?cache=shared",
|
||||||
MaxOpenConnections: 100,
|
MaxOpenConnections: 100,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import (
|
||||||
|
|
||||||
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewMediaAPIDatasource(cm, &config.DatabaseOptions{
|
db, err := storage.NewMediaAPIDatasource(cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import (
|
||||||
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
||||||
conStr, close := test.PrepareDBConnectionString(t, dbType)
|
conStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
caches := caching.NewRistrettoCache(8*1024*1024, time.Hour, caching.DisableMetrics)
|
caches := caching.NewRistrettoCache(8*1024*1024, time.Hour, caching.DisableMetrics)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.Open(context.Background(), cm, &config.DatabaseOptions{ConnectionString: config.DataSource(conStr)}, caches)
|
db, err := storage.Open(context.Background(), cm, &config.DatabaseOptions{ConnectionString: config.DataSource(conStr)}, caches)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create Database: %v", err)
|
t.Fatalf("failed to create Database: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ func TestSingleTransactionOnInput(t *testing.T) {
|
||||||
Kind: api.KindOutlier, // don't panic if we generate an output event
|
Kind: api.KindOutlier, // don't panic if we generate an output event
|
||||||
Event: event.Headered(gomatrixserverlib.RoomVersionV6),
|
Event: event.Headered(gomatrixserverlib.RoomVersionV6),
|
||||||
}
|
}
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.Open(
|
db, err := storage.Open(
|
||||||
context.Background(), cm,
|
context.Background(), cm,
|
||||||
&config.DatabaseOptions{
|
&config.DatabaseOptions{
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,8 @@ func NewBaseDendrite(cfg *config.Dendrite, options ...BaseDendriteOptions) *Base
|
||||||
// If we're in monolith mode, we'll set up a global pool of database
|
// If we're in monolith mode, we'll set up a global pool of database
|
||||||
// connections. A component is welcome to use this pool if they don't
|
// connections. A component is welcome to use this pool if they don't
|
||||||
// have a separate database config of their own.
|
// have a separate database config of their own.
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
pCtx := process.NewProcessContext()
|
||||||
|
cm := sqlutil.NewConnectionManager(pCtx, cfg.Global.DatabaseOptions)
|
||||||
|
|
||||||
// Ideally we would only use SkipClean on routes which we know can allow '/' but due to
|
// Ideally we would only use SkipClean on routes which we know can allow '/' but due to
|
||||||
// https://github.com/gorilla/mux/issues/460 we have to attach this at the top router.
|
// https://github.com/gorilla/mux/issues/460 we have to attach this at the top router.
|
||||||
|
|
@ -160,7 +161,7 @@ func NewBaseDendrite(cfg *config.Dendrite, options ...BaseDendriteOptions) *Base
|
||||||
// directory traversal attack e.g /../../../etc/passwd
|
// directory traversal attack e.g /../../../etc/passwd
|
||||||
|
|
||||||
return &BaseDendrite{
|
return &BaseDendrite{
|
||||||
ProcessContext: process.NewProcessContext(),
|
ProcessContext: pCtx,
|
||||||
tracerCloser: closer,
|
tracerCloser: closer,
|
||||||
Cfg: cfg,
|
Cfg: cfg,
|
||||||
DNSCache: dnsCache,
|
DNSCache: dnsCache,
|
||||||
|
|
|
||||||
|
|
@ -555,7 +555,7 @@ func injectEvents(t *testing.T, userAPI userapi.UserInternalAPI, rsAPI roomserve
|
||||||
cfg.Global.ServerName = "localhost"
|
cfg.Global.ServerName = "localhost"
|
||||||
cfg.MSCs.Database.ConnectionString = "file:msc2836_test.db"
|
cfg.MSCs.Database.ConnectionString = "file:msc2836_test.db"
|
||||||
cfg.MSCs.MSCs = []string{"msc2836"}
|
cfg.MSCs.MSCs = []string{"msc2836"}
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
base := &base.BaseDendrite{
|
base := &base.BaseDendrite{
|
||||||
Cfg: cfg,
|
Cfg: cfg,
|
||||||
Routers: httputil.NewRouters(),
|
Routers: httputil.NewRouters(),
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ var ctx = context.Background()
|
||||||
|
|
||||||
func MustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
func MustCreateDatabase(t *testing.T, dbType test.DBType) (storage.Database, func()) {
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewSyncServerDatasource(context.Background(), cm, &config.DatabaseOptions{
|
db, err := storage.NewSyncServerDatasource(context.Background(), cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import (
|
||||||
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.UserDatabase, func()) {
|
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.UserDatabase, func()) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewUserDatabase(context.Background(), cm, &config.DatabaseOptions{
|
db, err := storage.NewUserDatabase(context.Background(), cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
}, "", 4, 0, 0, "")
|
}, "", 4, 0, 0, "")
|
||||||
|
|
|
||||||
|
|
@ -364,7 +364,7 @@ func mustCreateKeyserverDB(t *testing.T, dbType test.DBType) (storage.KeyDatabas
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
connStr, clearDB := test.PrepareDBConnectionString(t, dbType)
|
connStr, clearDB := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewKeyDatabase(cm, &config.DatabaseOptions{ConnectionString: config.DataSource(connStr)})
|
db, err := storage.NewKeyDatabase(cm, &config.DatabaseOptions{ConnectionString: config.DataSource(connStr)})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import (
|
||||||
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.KeyDatabase, func()) {
|
func mustCreateDatabase(t *testing.T, dbType test.DBType) (storage.KeyDatabase, func()) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewKeyDatabase(cm, &config.DatabaseOptions{
|
db, err := storage.NewKeyDatabase(cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ var (
|
||||||
|
|
||||||
func mustCreateUserDatabase(t *testing.T, dbType test.DBType) (storage.UserDatabase, func()) {
|
func mustCreateUserDatabase(t *testing.T, dbType test.DBType) (storage.UserDatabase, func()) {
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewUserDatabase(context.Background(), cm, &config.DatabaseOptions{
|
db, err := storage.NewUserDatabase(context.Background(), cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
}, "localhost", bcrypt.MinCost, openIDLifetimeMS, loginTokenLifetime, "_server")
|
}, "localhost", bcrypt.MinCost, openIDLifetimeMS, loginTokenLifetime, "_server")
|
||||||
|
|
@ -576,8 +576,8 @@ func Test_Notification(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func mustCreateKeyDatabase(t *testing.T, dbType test.DBType) (storage.KeyDatabase, func()) {
|
func mustCreateKeyDatabase(t *testing.T, dbType test.DBType) (storage.KeyDatabase, func()) {
|
||||||
cfg, _, close := testrig.CreateConfig(t, dbType)
|
cfg, processCtx, close := testrig.CreateConfig(t, dbType)
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
|
||||||
db, err := storage.NewKeyDatabase(cm, &cfg.KeyServer.Database)
|
db, err := storage.NewKeyDatabase(cm, &cfg.KeyServer.Database)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("failed to create new database: %v", err)
|
t.Fatalf("failed to create new database: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ func MustMakeInternalAPI(t *testing.T, opts apiTestOpts, dbType test.DBType, pub
|
||||||
if opts.serverName != "" {
|
if opts.serverName != "" {
|
||||||
sName = gomatrixserverlib.ServerName(opts.serverName)
|
sName = gomatrixserverlib.ServerName(opts.serverName)
|
||||||
}
|
}
|
||||||
cm := sqlutil.NewConnectionManager(cfg.Global.DatabaseOptions)
|
cm := sqlutil.NewConnectionManager(ctx, cfg.Global.DatabaseOptions)
|
||||||
|
|
||||||
accountDB, err := storage.NewUserDatabase(ctx.Context(), cm, &cfg.UserAPI.AccountDatabase, sName, bcrypt.MinCost, config.DefaultOpenIDTokenLifetimeMS, opts.loginTokenLifetime, "")
|
accountDB, err := storage.NewUserDatabase(ctx.Context(), cm, &cfg.UserAPI.AccountDatabase, sName, bcrypt.MinCost, config.DefaultOpenIDTokenLifetimeMS, opts.loginTokenLifetime, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ func TestNotifyUserCountsAsync(t *testing.T) {
|
||||||
// Create DB and Dendrite base
|
// Create DB and Dendrite base
|
||||||
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
connStr, close := test.PrepareDBConnectionString(t, dbType)
|
||||||
defer close()
|
defer close()
|
||||||
cm := sqlutil.NewConnectionManager(config.DatabaseOptions{})
|
cm := sqlutil.NewConnectionManager(nil, config.DatabaseOptions{})
|
||||||
db, err := storage.NewUserDatabase(ctx, cm, &config.DatabaseOptions{
|
db, err := storage.NewUserDatabase(ctx, cm, &config.DatabaseOptions{
|
||||||
ConnectionString: config.DataSource(connStr),
|
ConnectionString: config.DataSource(connStr),
|
||||||
}, "test", bcrypt.MinCost, 0, 0, "")
|
}, "test", bcrypt.MinCost, 0, 0, "")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue