diff --git a/pkg/api/dashboard.go b/pkg/api/dashboard.go index 40d855773d0..c2ab6dd9a1a 100644 --- a/pkg/api/dashboard.go +++ b/pkg/api/dashboard.go @@ -103,7 +103,7 @@ func GetDashboard(c *m.ReqContext) Response { } isDashboardProvisioned := &m.IsDashboardProvisionedQuery{DashboardId: dash.Id} - err = bus.DispatchCtx(c.Req.Context(), isDashboardProvisioned) + err = bus.Dispatch(isDashboardProvisioned) if err != nil { return Error(500, "Error while checking if dashboard is provisioned", err) } diff --git a/pkg/bus/bus.go b/pkg/bus/bus.go index 69f0b95e195..1259211cddc 100644 --- a/pkg/bus/bus.go +++ b/pkg/bus/bus.go @@ -76,25 +76,13 @@ func (b *InProcBus) SetTransactionManager(tm TransactionManager) { func (b *InProcBus) DispatchCtx(ctx context.Context, msg Msg) error { var msgName = reflect.TypeOf(msg).Elem().Name() - // we prefer to use the handler that support context.Context var handler = b.handlersWithCtx[msgName] - var withCtx = true - - // fallback to use classic handlers - if handler == nil { - withCtx = false - handler = b.handlers[msgName] - } - if handler == nil { return ErrHandlerNotFound } var params = []reflect.Value{} - if withCtx { - params = append(params, reflect.ValueOf(ctx)) - } - + params = append(params, reflect.ValueOf(ctx)) params = append(params, reflect.ValueOf(msg)) ret := reflect.ValueOf(handler).Call(params) diff --git a/pkg/bus/bus_test.go b/pkg/bus/bus_test.go index 4c061900718..83a0d7190ea 100644 --- a/pkg/bus/bus_test.go +++ b/pkg/bus/bus_test.go @@ -33,22 +33,23 @@ func TestDispatchCtxCanUseNormalHandlers(t *testing.T) { t.Errorf("expected bus to return HandlerNotFound is no handler is registered") } + bus.AddHandler(handler) + bus.AddHandlerCtx(handlerWithCtx) + t.Run("when a normal handler is registered", func(t *testing.T) { - bus.AddHandler(handler) - bus.DispatchCtx(context.Background(), &testQuery{}) + bus.Dispatch(&testQuery{}) if handlerCallCount != 1 { - t.Errorf("Expected normal handler to be called once") + t.Errorf("Expected normal handler to be called 1 time. was called %d", handlerCallCount) } + }) - t.Run("when a ctx handler is registered", func(t *testing.T) { - bus.AddHandlerCtx(handlerWithCtx) - bus.DispatchCtx(context.Background(), &testQuery{}) + t.Run("when a ctx handler is registered", func(t *testing.T) { + bus.DispatchCtx(context.Background(), &testQuery{}) - if handlerWithCtxCallCount != 1 { - t.Errorf("Expected ctx handler to be called once") - } - }) + if handlerWithCtxCallCount != 1 { + t.Errorf("Expected ctx handler to be called 1 time. was called %d", handlerWithCtxCallCount) + } }) } diff --git a/pkg/services/sqlstore/stats.go b/pkg/services/sqlstore/stats.go index ef0f148bb2a..6db481bf06b 100644 --- a/pkg/services/sqlstore/stats.go +++ b/pkg/services/sqlstore/stats.go @@ -13,8 +13,7 @@ func init() { bus.AddHandler("sql", GetDataSourceStats) bus.AddHandler("sql", GetDataSourceAccessStats) bus.AddHandler("sql", GetAdminStats) - bus.AddHandler("sql", GetSystemUserCountStats) - bus.AddHandlerCtx("sql", GetSystemUserCountStatsCtx) + bus.AddHandlerCtx("sql", GetSystemUserCountStats) } var activeUserTimeLimit = time.Hour * 24 * 30 @@ -135,7 +134,7 @@ func GetAdminStats(query *m.GetAdminStatsQuery) error { return err } -func GetSystemUserCountStatsCtx(ctx context.Context, query *m.GetSystemUserCountStatsQuery) error { +func GetSystemUserCountStats(ctx context.Context, query *m.GetSystemUserCountStatsQuery) error { return withDbSession(ctx, func(sess *DBSession) error { var rawSql = `SELECT COUNT(id) AS Count FROM ` + dialect.Quote("user") @@ -150,16 +149,3 @@ func GetSystemUserCountStatsCtx(ctx context.Context, query *m.GetSystemUserCount return err }) } - -func GetSystemUserCountStats(query *m.GetSystemUserCountStatsQuery) error { - var rawSql = `SELECT COUNT(id) AS Count FROM ` + dialect.Quote("user") - var stats m.SystemUserCountStats - _, err := x.SQL(rawSql).Get(&stats) - if err != nil { - return err - } - - query.Result = &stats - - return err -} diff --git a/pkg/services/sqlstore/stats_test.go b/pkg/services/sqlstore/stats_test.go index 97f0ca0c43e..dae24952d17 100644 --- a/pkg/services/sqlstore/stats_test.go +++ b/pkg/services/sqlstore/stats_test.go @@ -1,6 +1,7 @@ package sqlstore import ( + "context" "testing" m "github.com/grafana/grafana/pkg/models" @@ -20,7 +21,7 @@ func TestStatsDataAccess(t *testing.T) { Convey("Get system user count stats should not results in error", func() { query := m.GetSystemUserCountStatsQuery{} - err := GetSystemUserCountStats(&query) + err := GetSystemUserCountStats(context.Background(), &query) So(err, ShouldBeNil) })