Instrumentation: add context.Context to the dashboard get flow. (#34955)

Signed-off-by: bergquist <carl.bergquist@gmail.com>
This commit is contained in:
Carl Bergquist
2021-06-15 16:08:27 +02:00
committed by GitHub
parent 93860a90d8
commit b40e78a943
7 changed files with 63 additions and 48 deletions
+8 -7
View File
@@ -1,6 +1,7 @@
package api
import (
"context"
"encoding/json"
"errors"
"fmt"
@@ -31,7 +32,7 @@ func isDashboardStarredByUser(c *models.ReqContext, dashID int64) (bool, error)
}
query := models.IsStarredByUserQuery{UserId: c.UserId, DashboardId: dashID}
if err := bus.Dispatch(&query); err != nil {
if err := bus.DispatchCtx(c.Req.Context(), &query); err != nil {
return false, err
}
@@ -70,7 +71,7 @@ func (hs *HTTPServer) TrimDashboard(c *models.ReqContext, cmd models.TrimDashboa
func (hs *HTTPServer) GetDashboard(c *models.ReqContext) response.Response {
uid := c.Params(":uid")
dash, rsp := getDashboardHelper(c.OrgId, 0, uid)
dash, rsp := getDashboardHelper(c.Req.Context(), c.OrgId, 0, uid)
if rsp != nil {
return rsp
}
@@ -135,7 +136,7 @@ func (hs *HTTPServer) GetDashboard(c *models.ReqContext) response.Response {
// lookup folder title
if dash.FolderId > 0 {
query := models.GetDashboardQuery{Id: dash.FolderId, OrgId: c.OrgId}
if err := bus.Dispatch(&query); err != nil {
if err := bus.DispatchCtx(c.Req.Context(), &query); err != nil {
if errors.Is(err, models.ErrFolderNotFound) {
return response.Error(404, "Folder not found", err)
}
@@ -196,7 +197,7 @@ func getUserLogin(userID int64) string {
return query.Result.Login
}
func getDashboardHelper(orgID int64, id int64, uid string) (*models.Dashboard, response.Response) {
func getDashboardHelper(ctx context.Context, orgID int64, id int64, uid string) (*models.Dashboard, response.Response) {
var query models.GetDashboardQuery
if len(uid) > 0 {
@@ -205,7 +206,7 @@ func getDashboardHelper(orgID int64, id int64, uid string) (*models.Dashboard, r
query = models.GetDashboardQuery{Id: id, OrgId: orgID}
}
if err := bus.Dispatch(&query); err != nil {
if err := bus.DispatchCtx(ctx, &query); err != nil {
return nil, response.Error(404, "Dashboard not found", err)
}
@@ -231,7 +232,7 @@ func (hs *HTTPServer) DeleteDashboardByUID(c *models.ReqContext) response.Respon
}
func (hs *HTTPServer) deleteDashboard(c *models.ReqContext) response.Response {
dash, rsp := getDashboardHelper(c.OrgId, 0, c.Params(":uid"))
dash, rsp := getDashboardHelper(c.Req.Context(), c.OrgId, 0, c.Params(":uid"))
if rsp != nil {
return rsp
}
@@ -625,7 +626,7 @@ func CalculateDashboardDiff(c *models.ReqContext, apiOptions dtos.CalculateDiffO
// RestoreDashboardVersion restores a dashboard to the given version.
func (hs *HTTPServer) RestoreDashboardVersion(c *models.ReqContext, apiCmd dtos.RestoreDashboardVersionCommand) response.Response {
dash, rsp := getDashboardHelper(c.OrgId, c.ParamsInt64(":dashboardId"), "")
dash, rsp := getDashboardHelper(c.Req.Context(), c.OrgId, c.ParamsInt64(":dashboardId"), "")
if rsp != nil {
return rsp
}
+2 -2
View File
@@ -13,7 +13,7 @@ import (
func (hs *HTTPServer) GetDashboardPermissionList(c *models.ReqContext) response.Response {
dashID := c.ParamsInt64(":dashboardId")
_, rsp := getDashboardHelper(c.OrgId, dashID, "")
_, rsp := getDashboardHelper(c.Req.Context(), c.OrgId, dashID, "")
if rsp != nil {
return rsp
}
@@ -57,7 +57,7 @@ func (hs *HTTPServer) UpdateDashboardPermissions(c *models.ReqContext, apiCmd dt
dashID := c.ParamsInt64(":dashboardId")
_, rsp := getDashboardHelper(c.OrgId, dashID, "")
_, rsp := getDashboardHelper(c.Req.Context(), c.OrgId, dashID, "")
if rsp != nil {
return rsp
}
+6 -5
View File
@@ -1,6 +1,7 @@
package api
import (
"context"
"encoding/json"
"fmt"
"testing"
@@ -65,7 +66,7 @@ func TestDashboardPermissionAPIEndpoint(t *testing.T) {
getDashboardQueryResult := models.NewDashboard("Dash")
setUp := func() {
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = getDashboardQueryResult
return nil
})
@@ -117,7 +118,7 @@ func TestDashboardPermissionAPIEndpoint(t *testing.T) {
setUp := func() {
getDashboardQueryResult := models.NewDashboard("Dash")
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = getDashboardQueryResult
return nil
})
@@ -170,7 +171,7 @@ func TestDashboardPermissionAPIEndpoint(t *testing.T) {
setUp := func() {
getDashboardQueryResult := models.NewDashboard("Dash")
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = getDashboardQueryResult
return nil
})
@@ -241,7 +242,7 @@ func TestDashboardPermissionAPIEndpoint(t *testing.T) {
setUp := func() {
getDashboardQueryResult := models.NewDashboard("Dash")
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = getDashboardQueryResult
return nil
})
@@ -292,7 +293,7 @@ func TestDashboardPermissionAPIEndpoint(t *testing.T) {
setUp := func() {
getDashboardQueryResult := models.NewDashboard("Dash")
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = getDashboardQueryResult
return nil
})
+6 -5
View File
@@ -1,6 +1,7 @@
package api
import (
"context"
"encoding/json"
"errors"
"fmt"
@@ -110,7 +111,7 @@ func TestDashboardAPIEndpoint(t *testing.T) {
state := &testState{}
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = fakeDash
state.dashQueries = append(state.dashQueries, query)
return nil
@@ -275,7 +276,7 @@ func TestDashboardAPIEndpoint(t *testing.T) {
return nil
})
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = fakeDash
state.dashQueries = append(state.dashQueries, query)
return nil
@@ -830,7 +831,7 @@ func TestDashboardAPIEndpoint(t *testing.T) {
fakeDash.FolderId = folderID
fakeDash.HasAcl = false
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = fakeDash
return nil
})
@@ -878,7 +879,7 @@ func TestDashboardAPIEndpoint(t *testing.T) {
fakeDash.Id = 2
fakeDash.HasAcl = false
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
query.Result = fakeDash
return nil
})
@@ -926,7 +927,7 @@ func TestDashboardAPIEndpoint(t *testing.T) {
query.Result = []*models.Dashboard{{}}
return nil
})
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
bus.AddHandlerCtx("test", func(ctx context.Context, query *models.GetDashboardQuery) error {
dataValue, err := simplejson.NewJson([]byte(`{"id": 1, "editable": true, "style": "dark"}`))
require.NoError(t, err)
query.Result = &models.Dashboard{Id: 1, Data: dataValue}