Chore: Moving to slog (folders) (#87000)
* moving folders to slog * trying to fix the tests * fix per-logger filters in slog * allow using slog.Default() * bring cfg back to keep the pr small * fix tests * back to the roots
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -17,7 +18,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/events"
|
||||
"github.com/grafana/grafana/pkg/infra/db"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/metrics"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/auth/identity"
|
||||
@@ -38,8 +38,7 @@ import (
|
||||
type Service struct {
|
||||
store store
|
||||
db db.DB
|
||||
log log.Logger
|
||||
cfg *setting.Cfg
|
||||
log *slog.Logger
|
||||
dashboardStore dashboards.Store
|
||||
dashboardFolderStore folder.FolderStore
|
||||
features featuremgmt.FeatureToggles
|
||||
@@ -55,7 +54,7 @@ type Service struct {
|
||||
func ProvideService(
|
||||
ac accesscontrol.AccessControl,
|
||||
bus bus.Bus,
|
||||
cfg *setting.Cfg,
|
||||
_ *setting.Cfg,
|
||||
dashboardStore dashboards.Store,
|
||||
folderStore folder.FolderStore,
|
||||
db db.DB, // DB for the (new) nested folder store
|
||||
@@ -63,10 +62,9 @@ func ProvideService(
|
||||
supportBundles supportbundles.Service,
|
||||
r prometheus.Registerer,
|
||||
) folder.Service {
|
||||
store := ProvideStore(db, cfg)
|
||||
store := ProvideStore(db)
|
||||
srv := &Service{
|
||||
cfg: cfg,
|
||||
log: log.New("folder-service"),
|
||||
log: slog.Default().With("logger", "folder-service"),
|
||||
dashboardStore: dashboardStore,
|
||||
dashboardFolderStore: folderStore,
|
||||
store: store,
|
||||
@@ -546,8 +544,6 @@ func (s *Service) getFolderByTitle(ctx context.Context, orgID int64, title strin
|
||||
}
|
||||
|
||||
func (s *Service) Create(ctx context.Context, cmd *folder.CreateFolderCommand) (*folder.Folder, error) {
|
||||
logger := s.log.FromContext(ctx)
|
||||
|
||||
if cmd.SignedInUser == nil || cmd.SignedInUser.IsNil() {
|
||||
return nil, folder.ErrBadRequest.Errorf("missing signed in user")
|
||||
}
|
||||
@@ -630,7 +626,7 @@ func (s *Service) Create(ctx context.Context, cmd *folder.CreateFolderCommand) (
|
||||
}
|
||||
|
||||
if nestedFolder, err = s.nestedFolderCreate(ctx, cmd); err != nil {
|
||||
logger.Error("error saving folder to nested folder store", "error", err)
|
||||
s.log.ErrorContext(ctx, "error saving folder to nested folder store", "error", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -648,8 +644,6 @@ func (s *Service) Create(ctx context.Context, cmd *folder.CreateFolderCommand) (
|
||||
}
|
||||
|
||||
func (s *Service) Update(ctx context.Context, cmd *folder.UpdateFolderCommand) (*folder.Folder, error) {
|
||||
logger := s.log.FromContext(ctx)
|
||||
|
||||
if cmd.SignedInUser == nil {
|
||||
return nil, folder.ErrBadRequest.Errorf("missing signed in user")
|
||||
}
|
||||
@@ -683,7 +677,7 @@ func (s *Service) Update(ctx context.Context, cmd *folder.UpdateFolderCommand) (
|
||||
UID: dashFolder.UID,
|
||||
OrgID: cmd.OrgID,
|
||||
}); err != nil {
|
||||
logger.Error("failed to publish FolderTitleUpdated event", "folder", foldr.Title, "user", id, "namespace", namespace, "error", err)
|
||||
s.log.ErrorContext(ctx, "failed to publish FolderTitleUpdated event", "folder", foldr.Title, "user", id, "namespace", namespace, "error", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -692,7 +686,7 @@ func (s *Service) Update(ctx context.Context, cmd *folder.UpdateFolderCommand) (
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
logger.Error("folder update failed", "folderUID", cmd.UID, "error", err)
|
||||
s.log.ErrorContext(ctx, "folder update failed", "folderUID", cmd.UID, "error", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -710,8 +704,6 @@ func (s *Service) Update(ctx context.Context, cmd *folder.UpdateFolderCommand) (
|
||||
}
|
||||
|
||||
func (s *Service) legacyUpdate(ctx context.Context, cmd *folder.UpdateFolderCommand) (*folder.Folder, error) {
|
||||
logger := s.log.FromContext(ctx)
|
||||
|
||||
query := dashboards.GetDashboardQuery{OrgID: cmd.OrgID, UID: cmd.UID}
|
||||
queryResult, err := s.dashboardStore.GetDashboard(ctx, &query)
|
||||
if err != nil {
|
||||
@@ -736,7 +728,7 @@ func (s *Service) legacyUpdate(ctx context.Context, cmd *folder.UpdateFolderComm
|
||||
if namespace == identity.NamespaceUser || namespace == identity.NamespaceServiceAccount {
|
||||
userID, err = identity.IntIdentifier(namespace, id)
|
||||
if err != nil {
|
||||
logger.Error("failed to parse user ID", "namespace", namespace, "userID", id, "error", err)
|
||||
s.log.ErrorContext(ctx, "failed to parse user ID", "namespace", namespace, "userID", id, "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -791,7 +783,6 @@ func prepareForUpdate(dashFolder *dashboards.Dashboard, orgId int64, userId int6
|
||||
}
|
||||
|
||||
func (s *Service) Delete(ctx context.Context, cmd *folder.DeleteFolderCommand) error {
|
||||
logger := s.log.FromContext(ctx)
|
||||
if cmd.SignedInUser == nil {
|
||||
return folder.ErrBadRequest.Errorf("missing signed in user")
|
||||
}
|
||||
@@ -819,7 +810,7 @@ func (s *Service) Delete(ctx context.Context, cmd *folder.DeleteFolderCommand) e
|
||||
descendants, err := s.nestedFolderDelete(ctx, cmd)
|
||||
|
||||
if err != nil {
|
||||
logger.Error("the delete folder on folder table failed with err: ", "error", err)
|
||||
s.log.ErrorContext(ctx, "the delete folder on folder table failed with err: ", "error", err)
|
||||
return err
|
||||
}
|
||||
folders = append(folders, descendants...)
|
||||
@@ -962,7 +953,6 @@ func (s *Service) Move(ctx context.Context, cmd *folder.MoveFolderCommand) (*fol
|
||||
// its descendant folders (folders which are nested within it either directly or indirectly) from
|
||||
// the folder store and returns the UIDs for all its descendants.
|
||||
func (s *Service) nestedFolderDelete(ctx context.Context, cmd *folder.DeleteFolderCommand) ([]string, error) {
|
||||
logger := s.log.FromContext(ctx)
|
||||
descendantUIDs := []string{}
|
||||
if cmd.SignedInUser == nil {
|
||||
return descendantUIDs, folder.ErrBadRequest.Errorf("missing signed in user")
|
||||
@@ -979,25 +969,24 @@ func (s *Service) nestedFolderDelete(ctx context.Context, cmd *folder.DeleteFold
|
||||
|
||||
descendants, err := s.store.GetDescendants(ctx, cmd.OrgID, cmd.UID)
|
||||
if err != nil {
|
||||
logger.Error("failed to get descendant folders", "error", err)
|
||||
s.log.ErrorContext(ctx, "failed to get descendant folders", "error", err)
|
||||
return descendantUIDs, err
|
||||
}
|
||||
|
||||
for _, f := range descendants {
|
||||
descendantUIDs = append(descendantUIDs, f.UID)
|
||||
}
|
||||
logger.Info("deleting folder and its descendants", "org_id", cmd.OrgID, "uid", cmd.UID)
|
||||
s.log.InfoContext(ctx, "deleting folder and its descendants", "org_id", cmd.OrgID, "uid", cmd.UID)
|
||||
toDelete := append(descendantUIDs, cmd.UID)
|
||||
err = s.store.Delete(ctx, toDelete, cmd.OrgID)
|
||||
if err != nil {
|
||||
logger.Info("failed deleting folder", "org_id", cmd.OrgID, "uid", cmd.UID, "err", err)
|
||||
s.log.InfoContext(ctx, "failed deleting folder", "org_id", cmd.OrgID, "uid", cmd.UID, "err", err)
|
||||
return descendantUIDs, err
|
||||
}
|
||||
return descendantUIDs, nil
|
||||
}
|
||||
|
||||
func (s *Service) GetDescendantCounts(ctx context.Context, q *folder.GetDescendantCountsQuery) (folder.DescendantCounts, error) {
|
||||
logger := s.log.FromContext(ctx)
|
||||
if q.SignedInUser == nil {
|
||||
return nil, folder.ErrBadRequest.Errorf("missing signed-in user")
|
||||
}
|
||||
@@ -1013,7 +1002,7 @@ func (s *Service) GetDescendantCounts(ctx context.Context, q *folder.GetDescenda
|
||||
if s.features.IsEnabled(ctx, featuremgmt.FlagNestedFolders) {
|
||||
descendantFolders, err := s.store.GetDescendants(ctx, q.OrgID, *q.UID)
|
||||
if err != nil {
|
||||
logger.Error("failed to get descendant folders", "error", err)
|
||||
s.log.ErrorContext(ctx, "failed to get descendant folders", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
for _, f := range descendantFolders {
|
||||
@@ -1025,7 +1014,7 @@ func (s *Service) GetDescendantCounts(ctx context.Context, q *folder.GetDescenda
|
||||
for _, v := range s.registry {
|
||||
c, err := v.CountInFolders(ctx, q.OrgID, folders, q.SignedInUser)
|
||||
if err != nil {
|
||||
logger.Error("failed to count folder descendants", "error", err)
|
||||
s.log.ErrorContext(ctx, "failed to count folder descendants", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
countsMap[v.Kind()] = c
|
||||
|
||||
Reference in New Issue
Block a user