Chore: Add tracing to team service (#86999)

* add tracing to team service

* another test fix

* pass in context for team creation and membership checking
This commit is contained in:
Ieva
2024-04-29 11:32:03 +01:00
committed by GitHub
parent fbaa847a3c
commit cee713e34c
13 changed files with 107 additions and 36 deletions
@@ -11,6 +11,7 @@ import (
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/localcache"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/services/accesscontrol"
rs "github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
"github.com/grafana/grafana/pkg/services/auth/identity"
@@ -323,7 +324,7 @@ func createUserAndTeam(t *testing.T, store db.DB, userSrv user.Service, teamSvc
})
require.NoError(t, err)
team, err := teamSvc.CreateTeam("team", "", orgID)
team, err := teamSvc.CreateTeam(context.Background(), "team", "", orgID)
require.NoError(t, err)
err = store.WithDbSession(context.Background(), func(sess *db.Session) error {
@@ -373,7 +374,7 @@ func createUsersAndTeams(t *testing.T, store db.DB, svcs helperServices, orgID i
continue
}
team, err := svcs.teamSvc.CreateTeam(fmt.Sprintf("team%v", i+1), "", orgID)
team, err := svcs.teamSvc.CreateTeam(context.Background(), fmt.Sprintf("team%v", i+1), "", orgID)
require.NoError(t, err)
err = store.WithDbSession(context.Background(), func(sess *db.Session) error {
@@ -399,7 +400,7 @@ func setupTestEnv(t testing.TB) (*AccessControlStore, rs.Store, user.Service, te
acstore := ProvideService(sql)
asService := rs.NewActionSetService()
permissionStore := rs.NewStore(sql, featuremgmt.WithFeatures(), &asService)
teamService, err := teamimpl.ProvideService(sql, cfg)
teamService, err := teamimpl.ProvideService(sql, cfg, tracing.InitializeTracerForTest())
require.NoError(t, err)
orgService, err := orgimpl.ProvideService(sql, cfg, quotatest.New(false, nil))
require.NoError(t, err)
@@ -15,6 +15,7 @@ import (
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/contexthandler/ctxkey"
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
@@ -322,7 +323,7 @@ func TestApi_setTeamPermission(t *testing.T) {
server := setupTestServer(t, &user.SignedInUser{OrgID: 1, Permissions: map[int64]map[string][]string{1: accesscontrol.GroupScopesByAction(tt.permissions)}}, service)
// seed team
_, err := teamSvc.CreateTeam("test", "test@test.com", 1)
_, err := teamSvc.CreateTeam(context.Background(), "test", "test@test.com", 1)
require.NoError(t, err)
recorder := setPermission(t, server, testOptions.Resource, tt.resourceID, tt.permission, "teams", strconv.Itoa(int(tt.teamID)))
@@ -509,9 +510,9 @@ func checkSeededPermissions(t *testing.T, permissions []resourcePermissionDTO) {
func seedPermissions(t *testing.T, resourceID string, sql db.DB, cfg *setting.Cfg, service *Service) {
t.Helper()
// seed team 1 with "Edit" permission on dashboard 1
teamSvc, err := teamimpl.ProvideService(sql, cfg)
teamSvc, err := teamimpl.ProvideService(sql, cfg, tracing.InitializeTracerForTest())
require.NoError(t, err)
team, err := teamSvc.CreateTeam("test", "test@test.com", 1)
team, err := teamSvc.CreateTeam(context.Background(), "test", "test@test.com", 1)
require.NoError(t, err)
_, err = service.SetTeamPermission(context.Background(), team.OrgID, team.ID, resourceID, "Edit")
require.NoError(t, err)
@@ -9,6 +9,7 @@ import (
"github.com/grafana/grafana/pkg/api/routing"
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
@@ -98,7 +99,7 @@ func TestService_SetTeamPermission(t *testing.T) {
})
// seed team
team, err := teamSvc.CreateTeam("test", "test@test.com", 1)
team, err := teamSvc.CreateTeam(context.Background(), "test", "test@test.com", 1)
require.NoError(t, err)
var hookCalled bool
@@ -217,7 +218,7 @@ func TestService_SetPermissions(t *testing.T) {
require.NoError(t, err)
_, err = usrSvc.Create(context.Background(), &user.CreateUserCommand{Login: "user", OrgID: 1})
require.NoError(t, err)
_, err = teamSvc.CreateTeam("team", "", 1)
_, err = teamSvc.CreateTeam(context.Background(), "team", "", 1)
require.NoError(t, err)
permissions, err := service.SetPermissions(context.Background(), 1, "1", tt.commands...)
@@ -236,7 +237,7 @@ func setupTestEnvironment(t *testing.T, ops Options) (*Service, db.DB, *setting.
sql := db.InitTestDB(t)
cfg := setting.NewCfg()
teamSvc, err := teamimpl.ProvideService(sql, cfg)
teamSvc, err := teamimpl.ProvideService(sql, cfg, tracing.InitializeTracerForTest())
require.NoError(t, err)
userSvc, err := userimpl.ProvideService(sql, nil, cfg, teamSvc, nil, quotatest.New(false, nil), supportbundlestest.NewFakeBundleService())
require.NoError(t, err)
@@ -12,6 +12,7 @@ import (
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/datasources"
datasourcesService "github.com/grafana/grafana/pkg/services/datasources/service"
@@ -139,7 +140,7 @@ func GenerateDatasourcePermissions(b *testing.B, db db.DB, cfg *setting.Cfg, ac
}
func generateTeamsAndUsers(b *testing.B, store db.DB, cfg *setting.Cfg, users int) ([]int64, []int64) {
teamSvc, err := teamimpl.ProvideService(store, cfg)
teamSvc, err := teamimpl.ProvideService(store, cfg, tracing.InitializeTracerForTest())
require.NoError(b, err)
numberOfTeams := int(math.Ceil(float64(users) / UsersPerTeam))
globalUserId := 0
@@ -154,7 +155,7 @@ func generateTeamsAndUsers(b *testing.B, store db.DB, cfg *setting.Cfg, users in
// Create team
teamName := fmt.Sprintf("%s%v", "team", i)
teamEmail := fmt.Sprintf("%s@example.org", teamName)
team, err := teamSvc.CreateTeam(teamName, teamEmail, 1)
team, err := teamSvc.CreateTeam(context.Background(), teamName, teamEmail, 1)
require.NoError(b, err)
teamId := team.ID
teamIds = append(teamIds, teamId)