3
0

fixes after database profiler/logger refactor

This commit is contained in:
Tit Petric
2019-08-06 20:27:56 +00:00
parent cc3c100c62
commit f472ac05d1
21 changed files with 26 additions and 110 deletions

View File

@@ -68,9 +68,7 @@ func Configure() *cli.Config {
return err
}
db = db.With(ctx)
// Disable profiler for migrations
db.Profiler = nil
db = db.With(ctx).Quiet()
return migrate.Migrate(db, c.Log)
},

View File

@@ -8,11 +8,14 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
"github.com/titpetric/factory"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMigrations(t *testing.T) {
factory.Database.Add("compose", os.Getenv("COMPOSE_DB_DSN"))
db := factory.Database.MustGet("compose")
db.SetLogger(dbLogger.Default{})
if err := Migrate(db, logger.Default()); err != nil {
t.Fatalf("Unexpected error: %+v", err)
}

View File

@@ -5,9 +5,9 @@ package repository
import (
"os"
"testing"
"time"
"github.com/titpetric/factory"
dbLogger "github.com/titpetric/factory/logger"
"github.com/cortezaproject/corteza-server/pkg/logger"
)
@@ -17,37 +17,7 @@ func TestMain(m *testing.M) {
factory.Database.Add("compose", os.Getenv("COMPOSE_DB_DSN"))
db := factory.Database.MustGet("compose")
db.Profiler = &factory.DatabaseProfilerStdout{}
db.SetLogger(dbLogger.Default{})
os.Exit(m.Run())
}
// zapProfiler logs query statistics to zap.logger
type (
testLogProfiler struct {
logger testProfilerLogger
}
testProfilerLogger interface {
Logf(format string, args ...interface{})
}
)
func newTestLogProfiler(logger testProfilerLogger) *testLogProfiler {
return &testLogProfiler{
logger: logger,
}
}
// Post prints the query statistics to stdout
func (p testLogProfiler) Post(c *factory.DatabaseProfilerContext) {
p.logger.Logf(
"%s\nArgs: %v\nDuration: %fs",
c.Query,
c.Args,
time.Since(c.Time).Seconds(),
)
}
// Flush stdout (no-op for this profiler)
func (testLogProfiler) Flush() {}

View File

@@ -31,16 +31,9 @@ func tx(t *testing.T, f func(context.Context, *factory.DB, *types.Namespace) err
ns, err = Namespace(ctx, db).Create(&types.Namespace{})
test.Assert(t, err == nil, "Test transaction setup (namespace creation) resulted in an error: %+v", err)
// Setup test log profiler and route all db logs to test log facility
// We do this right after transaction is started and setup is done, no need for extra queries there...
db.Profiler = newTestLogProfiler(t)
err = f(ctx, db, ns)
test.Assert(t, err == nil, "Test transaction resulted in an error: %+v", err)
// Remove profiler to omit final rollback statement in the logs
db.Profiler = nil
err = db.Rollback()
err = db.Quiet().Rollback()
test.Assert(t, err == nil, "Could not rollback transaction: %+v", err)
}

View File

@@ -7,7 +7,6 @@ import (
"testing"
"github.com/pkg/errors"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
@@ -15,8 +14,6 @@ import (
)
func TestChart(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
// Set Identity (required for permission checks).

View File

@@ -7,7 +7,6 @@ import (
"fmt"
"os"
"testing"
"time"
"github.com/titpetric/factory"
"go.uber.org/zap"
@@ -16,6 +15,7 @@ import (
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/test"
"github.com/cortezaproject/corteza-server/pkg/logger"
dbLogger "github.com/titpetric/factory/logger"
)
type (
@@ -29,7 +29,7 @@ func TestMain(m *testing.M) {
factory.Database.Add("compose", os.Getenv("COMPOSE_DB_DSN"))
db := factory.Database.MustGet("compose")
db.Profiler = &factory.DatabaseProfilerStdout{}
db.SetLogger(dbLogger.Default{})
// migrate database schema
if err := composeMigrate.Migrate(db, logger.Default()); err != nil {
@@ -76,33 +76,3 @@ func createTestNamespaces(ctx context.Context, t *testing.T) (ns1 *types.Namespa
return ns1, ns2
}
// zapProfiler logs query statistics to zap.logger
type (
testLogProfiler struct {
logger testProfilerLogger
}
testProfilerLogger interface {
Logf(format string, args ...interface{})
}
)
func newTestLogProfiler(logger testProfilerLogger) *testLogProfiler {
return &testLogProfiler{
logger: logger,
}
}
// Post prints the query statistics to stdout
func (p testLogProfiler) Post(c *factory.DatabaseProfilerContext) {
p.logger.Logf(
"%s\nArgs: %v\nDuration: %fs",
c.Query,
c.Args,
time.Since(c.Time).Seconds(),
)
}
// Flush stdout (no-op for this profiler)
func (testLogProfiler) Flush() {}

View File

@@ -6,16 +6,12 @@ import (
"context"
"testing"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
"github.com/cortezaproject/corteza-server/internal/test"
)
func TestModule(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
// Set Identity (required for permission checks).

View File

@@ -6,16 +6,12 @@ import (
"context"
"testing"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
"github.com/cortezaproject/corteza-server/internal/test"
)
func TestNamespace(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
// Set Identity (required for permission checks).

View File

@@ -8,7 +8,6 @@ import (
"github.com/davecgh/go-spew/spew"
"github.com/pkg/errors"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
@@ -16,8 +15,6 @@ import (
)
func TestPage(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
// Set fake Identity (required for permission checks).

View File

@@ -6,8 +6,6 @@ import (
"context"
"testing"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
"github.com/cortezaproject/corteza-server/internal/permissions"
@@ -15,8 +13,6 @@ import (
)
func TestRecord(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
ctx = auth.SetIdentityToContext(ctx, auth.NewIdentity(1337))

View File

@@ -7,7 +7,6 @@ import (
"testing"
"github.com/pkg/errors"
"github.com/titpetric/factory"
"github.com/cortezaproject/corteza-server/compose/types"
"github.com/cortezaproject/corteza-server/internal/auth"
@@ -15,8 +14,6 @@ import (
)
func TestTrigger(t *testing.T) {
factory.Database.MustGet("compose").Profiler = newTestLogProfiler(t)
ctx := context.WithValue(context.Background(), "testing", true)
// Set Identity (required for permission checks).

View File

@@ -8,12 +8,14 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
"github.com/titpetric/factory"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMigrations(t *testing.T) {
factory.Database.Add("messaging", os.Getenv("MESSAGING_DB_DSN"))
db := factory.Database.MustGet("messaging")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
if err := Migrate(db, logger.Default()); err != nil {
t.Fatalf("Unexpected error: %#v", err)
}

View File

@@ -11,12 +11,13 @@ import (
migrate "github.com/cortezaproject/corteza-server/messaging/db"
"github.com/cortezaproject/corteza-server/pkg/logger"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMain(m *testing.M) {
factory.Database.Add("messaging", os.Getenv("MESSAGING_DB_DSN"))
db := factory.Database.MustGet("messaging")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
// migrate database schema
if err := migrate.Migrate(db, logger.Default()); err != nil {

View File

@@ -24,6 +24,6 @@ func tx(t *testing.T, f func() error) {
err = f()
test.Assert(t, err == nil, "Test transaction resulted in an error: %+v", err)
err = db.Rollback()
err = db.Quiet().Rollback()
test.Assert(t, err == nil, "Could not rollback transaction: %+v", err)
}

View File

@@ -13,6 +13,7 @@ import (
messagingMigrate "github.com/cortezaproject/corteza-server/messaging/db"
"github.com/cortezaproject/corteza-server/pkg/logger"
dbLogger "github.com/titpetric/factory/logger"
)
type mockDB struct{}
@@ -24,7 +25,7 @@ func TestMain(m *testing.M) {
factory.Database.Add("messaging", os.Getenv("MESSAGING_DB_DSN"))
db := factory.Database.MustGet("messaging")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
// migrate database schema
if err := messagingMigrate.Migrate(db, logger.Default()); err != nil {

View File

@@ -86,9 +86,7 @@ func Configure() *cli.Config {
return err
}
db = db.With(ctx)
// Disable profiler for migrations
db.Profiler = nil
db = db.With(ctx).Quiet()
return migrate.Migrate(db, c.Log)
},

View File

@@ -8,12 +8,13 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
"github.com/titpetric/factory"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMigrations(t *testing.T) {
factory.Database.Add("system", os.Getenv("SYSTEM_DB_DSN"))
db := factory.Database.MustGet("system")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
if err := Migrate(db, logger.Default()); err != nil {
t.Fatalf("Unexpected error: %#v", err)

View File

@@ -11,12 +11,13 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
systemMigrate "github.com/cortezaproject/corteza-server/system/db"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMain(m *testing.M) {
factory.Database.Add("system", os.Getenv("SYSTEM_DB_DSN"))
db := factory.Database.MustGet("system")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
// migrate database schema
if err := systemMigrate.Migrate(db, logger.Default()); err != nil {

View File

@@ -24,6 +24,6 @@ func tx(t *testing.T, f func() error) {
err = f()
test.Assert(t, err == nil, "Test transaction resulted in an error: %+v", err)
err = db.Rollback()
err = db.Quiet().Rollback()
test.Assert(t, err == nil, "Could not rollback transaction: %+v", err)
}

View File

@@ -11,6 +11,7 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
systemMigrate "github.com/cortezaproject/corteza-server/system/db"
dbLogger "github.com/titpetric/factory/logger"
)
func TestMain(m *testing.M) {
@@ -18,7 +19,7 @@ func TestMain(m *testing.M) {
factory.Database.Add("system", os.Getenv("SYSTEM_DB_DSN"))
db := factory.Database.MustGet("system")
db.Profiler = &factory.Database.ProfilerStdout
db.SetLogger(dbLogger.Default{})
// migrate database schema
if err := systemMigrate.Migrate(db, logger.Default()); err != nil {

View File

@@ -106,9 +106,7 @@ func Configure() *cli.Config {
return err
}
db = db.With(ctx)
// Disable profiler for migrations
db.Profiler = nil
db = db.With(ctx).Quiet()
return migrate.Migrate(db, c.Log)
},