From 22aa09d3925ae5bb85623d6728e510bb7695d116 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Wed, 1 Mar 2023 07:52:16 -0800 Subject: [PATCH] DashboardStore: Provide an interface directly rather than pointer receiver (#63910) --- pkg/cmd/grafana-cli/runner/wire.go | 2 - pkg/server/wire.go | 2 - pkg/services/dashboards/database/acl.go | 8 +-- pkg/services/dashboards/database/acl_test.go | 2 +- pkg/services/dashboards/database/database.go | 63 ++++++++++--------- .../database/database_folder_test.go | 4 +- .../dashboards/database/database_test.go | 10 +-- .../folderimpl/dashboard_folder_store_test.go | 6 +- .../libraryelements/libraryelements_test.go | 2 +- .../librarypanels/librarypanels_test.go | 2 +- .../database/database_test.go | 20 +++--- .../publicdashboards/service/service_test.go | 2 +- 12 files changed, 60 insertions(+), 63 deletions(-) diff --git a/pkg/cmd/grafana-cli/runner/wire.go b/pkg/cmd/grafana-cli/runner/wire.go index 86b52a5223a..4a872b394ad 100644 --- a/pkg/cmd/grafana-cli/runner/wire.go +++ b/pkg/cmd/grafana-cli/runner/wire.go @@ -46,7 +46,6 @@ import ( "github.com/grafana/grafana/pkg/services/contexthandler/authproxy" "github.com/grafana/grafana/pkg/services/dashboardimport" dashboardimportservice "github.com/grafana/grafana/pkg/services/dashboardimport/service" - "github.com/grafana/grafana/pkg/services/dashboards" dashboardstore "github.com/grafana/grafana/pkg/services/dashboards/database" dashboardservice "github.com/grafana/grafana/pkg/services/dashboards/service" "github.com/grafana/grafana/pkg/services/dashboardsnapshots" @@ -262,7 +261,6 @@ var wireSet = wire.NewSet( dashboardservice.ProvideSimpleDashboardService, dashboardservice.ProvideDashboardProvisioningService, dashboardservice.ProvideDashboardPluginService, - wire.Bind(new(dashboards.Store), new(*dashboardstore.DashboardStore)), folderimpl.ProvideDashboardFolderStore, wire.Bind(new(folder.FolderStore), new(*folderimpl.DashboardFolderStoreImpl)), dashboardimportservice.ProvideService, diff --git a/pkg/server/wire.go b/pkg/server/wire.go index e4875379983..3a6e96eb07f 100644 --- a/pkg/server/wire.go +++ b/pkg/server/wire.go @@ -48,7 +48,6 @@ import ( "github.com/grafana/grafana/pkg/services/correlations" "github.com/grafana/grafana/pkg/services/dashboardimport" dashboardimportservice "github.com/grafana/grafana/pkg/services/dashboardimport/service" - "github.com/grafana/grafana/pkg/services/dashboards" dashboardstore "github.com/grafana/grafana/pkg/services/dashboards/database" dashboardservice "github.com/grafana/grafana/pkg/services/dashboards/service" "github.com/grafana/grafana/pkg/services/dashboardsnapshots" @@ -303,7 +302,6 @@ var wireBasicSet = wire.NewSet( dashboardservice.ProvideSimpleDashboardService, dashboardservice.ProvideDashboardProvisioningService, dashboardservice.ProvideDashboardPluginService, - wire.Bind(new(dashboards.Store), new(*dashboardstore.DashboardStore)), wire.Bind(new(folder.FolderStore), new(*folderimpl.DashboardFolderStoreImpl)), dashboardimportservice.ProvideService, wire.Bind(new(dashboardimport.Service), new(*dashboardimportservice.ImportDashboardService)), diff --git a/pkg/services/dashboards/database/acl.go b/pkg/services/dashboards/database/acl.go index 4e28b944622..66408182727 100644 --- a/pkg/services/dashboards/database/acl.go +++ b/pkg/services/dashboards/database/acl.go @@ -14,7 +14,7 @@ import ( // 1) Permissions for the dashboard // 2) permissions for its parent folder // 3) if no specific permissions have been set for the dashboard or its parent folder then get the default permissions -func (d *DashboardStore) GetDashboardACLInfoList(ctx context.Context, query *dashboards.GetDashboardACLInfoListQuery) ([]*dashboards.DashboardACLInfoDTO, error) { +func (d *dashboardStore) GetDashboardACLInfoList(ctx context.Context, query *dashboards.GetDashboardACLInfoListQuery) ([]*dashboards.DashboardACLInfoDTO, error) { queryResult := make([]*dashboards.DashboardACLInfoDTO, 0) outerErr := d.store.WithDbSession(ctx, func(dbSession *db.Session) error { falseStr := d.store.GetDialect().BooleanStr(false) @@ -97,7 +97,7 @@ func (d *DashboardStore) GetDashboardACLInfoList(ctx context.Context, query *das } // HasEditPermissionInFolders validates that an user have access to a certain folder -func (d *DashboardStore) HasEditPermissionInFolders(ctx context.Context, query *folder.HasEditPermissionInFoldersQuery) (bool, error) { +func (d *dashboardStore) HasEditPermissionInFolders(ctx context.Context, query *folder.HasEditPermissionInFoldersQuery) (bool, error) { var queryResult bool if query.SignedInUser.HasRole(org.RoleEditor) { queryResult = true @@ -129,7 +129,7 @@ func (d *DashboardStore) HasEditPermissionInFolders(ctx context.Context, query * return queryResult, nil } -func (d *DashboardStore) HasAdminPermissionInDashboardsOrFolders(ctx context.Context, query *folder.HasAdminPermissionInDashboardsOrFoldersQuery) (bool, error) { +func (d *dashboardStore) HasAdminPermissionInDashboardsOrFolders(ctx context.Context, query *folder.HasAdminPermissionInDashboardsOrFoldersQuery) (bool, error) { var queryResult bool err := d.store.WithDbSession(ctx, func(dbSession *db.Session) error { if query.SignedInUser.HasRole(org.RoleAdmin) { @@ -160,7 +160,7 @@ func (d *DashboardStore) HasAdminPermissionInDashboardsOrFolders(ctx context.Con return queryResult, nil } -func (d *DashboardStore) DeleteACLByUser(ctx context.Context, userID int64) error { +func (d *dashboardStore) DeleteACLByUser(ctx context.Context, userID int64) error { return d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { var rawSQL = "DELETE FROM dashboard_acl WHERE user_id = ?" _, err := sess.Exec(rawSQL, userID) diff --git a/pkg/services/dashboards/database/acl_test.go b/pkg/services/dashboards/database/acl_test.go index 153b4112926..6ed81faf772 100644 --- a/pkg/services/dashboards/database/acl_test.go +++ b/pkg/services/dashboards/database/acl_test.go @@ -27,7 +27,7 @@ func TestIntegrationDashboardACLDataAccess(t *testing.T) { var sqlStore *sqlstore.SQLStore var currentUser user.User var savedFolder, childDash *dashboards.Dashboard - var dashboardStore *DashboardStore + var dashboardStore dashboards.Store setup := func(t *testing.T) { sqlStore = db.InitTestDB(t) diff --git a/pkg/services/dashboards/database/database.go b/pkg/services/dashboards/database/database.go index bdacac546d5..657ebc34e45 100644 --- a/pkg/services/dashboards/database/database.go +++ b/pkg/services/dashboards/database/database.go @@ -28,7 +28,7 @@ import ( "github.com/grafana/grafana/pkg/util" ) -type DashboardStore struct { +type dashboardStore struct { store db.DB cfg *setting.Cfg log log.Logger @@ -36,17 +36,18 @@ type DashboardStore struct { tagService tag.Service } -type DashboardTag struct { +// SQL bean helper to save tags +type dashboardTag struct { Id int64 DashboardId int64 Term string } // DashboardStore implements the Store interface -var _ dashboards.Store = (*DashboardStore)(nil) +var _ dashboards.Store = (*dashboardStore)(nil) -func ProvideDashboardStore(sqlStore db.DB, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tagService tag.Service, quotaService quota.Service) (*DashboardStore, error) { - s := &DashboardStore{store: sqlStore, cfg: cfg, log: log.New("dashboard-store"), features: features, tagService: tagService} +func ProvideDashboardStore(sqlStore db.DB, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tagService tag.Service, quotaService quota.Service) (dashboards.Store, error) { + s := &dashboardStore{store: sqlStore, cfg: cfg, log: log.New("dashboard-store"), features: features, tagService: tagService} defaultLimits, err := readQuotaConfig(cfg) if err != nil { @@ -64,11 +65,11 @@ func ProvideDashboardStore(sqlStore db.DB, cfg *setting.Cfg, features featuremgm return s, nil } -func (d *DashboardStore) emitEntityEvent() bool { +func (d *dashboardStore) emitEntityEvent() bool { return d.features != nil && d.features.IsEnabled(featuremgmt.FlagPanelTitleSearch) } -func (d *DashboardStore) ValidateDashboardBeforeSave(ctx context.Context, dashboard *dashboards.Dashboard, overwrite bool) (bool, error) { +func (d *dashboardStore) ValidateDashboardBeforeSave(ctx context.Context, dashboard *dashboards.Dashboard, overwrite bool) (bool, error) { isParentFolderChanged := false err := d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { var err error @@ -92,7 +93,7 @@ func (d *DashboardStore) ValidateDashboardBeforeSave(ctx context.Context, dashbo return isParentFolderChanged, nil } -func (d *DashboardStore) GetProvisionedDataByDashboardID(ctx context.Context, dashboardID int64) (*dashboards.DashboardProvisioning, error) { +func (d *dashboardStore) GetProvisionedDataByDashboardID(ctx context.Context, dashboardID int64) (*dashboards.DashboardProvisioning, error) { var data dashboards.DashboardProvisioning err := d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { _, err := sess.Where("dashboard_id = ?", dashboardID).Get(&data) @@ -105,7 +106,7 @@ func (d *DashboardStore) GetProvisionedDataByDashboardID(ctx context.Context, da return &data, err } -func (d *DashboardStore) GetProvisionedDataByDashboardUID(ctx context.Context, orgID int64, dashboardUID string) (*dashboards.DashboardProvisioning, error) { +func (d *dashboardStore) GetProvisionedDataByDashboardUID(ctx context.Context, orgID int64, dashboardUID string) (*dashboards.DashboardProvisioning, error) { var provisionedDashboard dashboards.DashboardProvisioning err := d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { var dashboard dashboards.Dashboard @@ -128,7 +129,7 @@ func (d *DashboardStore) GetProvisionedDataByDashboardUID(ctx context.Context, o return &provisionedDashboard, err } -func (d *DashboardStore) GetProvisionedDashboardData(ctx context.Context, name string) ([]*dashboards.DashboardProvisioning, error) { +func (d *dashboardStore) GetProvisionedDashboardData(ctx context.Context, name string) ([]*dashboards.DashboardProvisioning, error) { var result []*dashboards.DashboardProvisioning err := d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { return sess.Where("name = ?", name).Find(&result) @@ -136,7 +137,7 @@ func (d *DashboardStore) GetProvisionedDashboardData(ctx context.Context, name s return result, err } -func (d *DashboardStore) SaveProvisionedDashboard(ctx context.Context, cmd dashboards.SaveDashboardCommand, provisioning *dashboards.DashboardProvisioning) (*dashboards.Dashboard, error) { +func (d *dashboardStore) SaveProvisionedDashboard(ctx context.Context, cmd dashboards.SaveDashboardCommand, provisioning *dashboards.DashboardProvisioning) (*dashboards.Dashboard, error) { var result *dashboards.Dashboard var err error err = d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { @@ -154,7 +155,7 @@ func (d *DashboardStore) SaveProvisionedDashboard(ctx context.Context, cmd dashb return result, err } -func (d *DashboardStore) SaveDashboard(ctx context.Context, cmd dashboards.SaveDashboardCommand) (*dashboards.Dashboard, error) { +func (d *dashboardStore) SaveDashboard(ctx context.Context, cmd dashboards.SaveDashboardCommand) (*dashboards.Dashboard, error) { var result *dashboards.Dashboard var err error err = d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { @@ -170,7 +171,7 @@ func (d *DashboardStore) SaveDashboard(ctx context.Context, cmd dashboards.SaveD return result, err } -func (d *DashboardStore) UpdateDashboardACL(ctx context.Context, dashboardID int64, items []*dashboards.DashboardACL) error { +func (d *dashboardStore) UpdateDashboardACL(ctx context.Context, dashboardID int64, items []*dashboards.DashboardACL) error { return d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { // delete existing items _, err := sess.Exec("DELETE FROM dashboard_acl WHERE dashboard_id=?", dashboardID) @@ -200,7 +201,7 @@ func (d *DashboardStore) UpdateDashboardACL(ctx context.Context, dashboardID int }) } -func (d *DashboardStore) SaveAlerts(ctx context.Context, dashID int64, alerts []*alertmodels.Alert) error { +func (d *dashboardStore) SaveAlerts(ctx context.Context, dashID int64, alerts []*alertmodels.Alert) error { return d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { existingAlerts, err := GetAlertsByDashboardId2(dashID, sess) if err != nil { @@ -221,14 +222,14 @@ func (d *DashboardStore) SaveAlerts(ctx context.Context, dashID int64, alerts [] // UnprovisionDashboard removes row in dashboard_provisioning for the dashboard making it seem as if manually created. // The dashboard will still have `created_by = -1` to see it was not created by any particular user. -func (d *DashboardStore) UnprovisionDashboard(ctx context.Context, id int64) error { +func (d *dashboardStore) UnprovisionDashboard(ctx context.Context, id int64) error { return d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { _, err := sess.Where("dashboard_id = ?", id).Delete(&dashboards.DashboardProvisioning{}) return err }) } -func (d *DashboardStore) DeleteOrphanedProvisionedDashboards(ctx context.Context, cmd *dashboards.DeleteOrphanedProvisionedDashboardsCommand) error { +func (d *dashboardStore) DeleteOrphanedProvisionedDashboards(ctx context.Context, cmd *dashboards.DeleteOrphanedProvisionedDashboardsCommand) error { return d.store.WithDbSession(ctx, func(sess *db.Session) error { var result []*dashboards.DashboardProvisioning @@ -253,7 +254,7 @@ func (d *DashboardStore) DeleteOrphanedProvisionedDashboards(ctx context.Context }) } -func (d *DashboardStore) Count(ctx context.Context, scopeParams *quota.ScopeParameters) (*quota.Map, error) { +func (d *dashboardStore) Count(ctx context.Context, scopeParams *quota.ScopeParameters) (*quota.Map, error) { u := "a.Map{} type result struct { Count int64 @@ -517,7 +518,7 @@ func saveDashboard(sess *db.Session, cmd *dashboards.SaveDashboardCommand, emitE tags := dash.GetTags() if len(tags) > 0 { for _, tag := range tags { - if _, err := sess.Insert(DashboardTag{DashboardId: dash.ID, Term: tag}); err != nil { + if _, err := sess.Insert(dashboardTag{DashboardId: dash.ID, Term: tag}); err != nil { return nil, err } } @@ -563,7 +564,7 @@ func GetAlertsByDashboardId2(dashboardId int64, sess *db.Session) ([]*alertmodel return alerts, nil } -func (d *DashboardStore) updateAlerts(ctx context.Context, existingAlerts []*alertmodels.Alert, alertsIn []*alertmodels.Alert, log log.Logger) error { +func (d *dashboardStore) updateAlerts(ctx context.Context, existingAlerts []*alertmodels.Alert, alertsIn []*alertmodels.Alert, log log.Logger) error { return d.store.WithDbSession(ctx, func(sess *db.Session) error { for _, alert := range alertsIn { update := false @@ -624,7 +625,7 @@ func (d *DashboardStore) updateAlerts(ctx context.Context, existingAlerts []*ale }) } -func (d *DashboardStore) deleteMissingAlerts(alerts []*alertmodels.Alert, existingAlerts []*alertmodels.Alert, sess *db.Session) error { +func (d *dashboardStore) deleteMissingAlerts(alerts []*alertmodels.Alert, existingAlerts []*alertmodels.Alert, sess *db.Session) error { for _, missingAlert := range alerts { missing := true @@ -647,7 +648,7 @@ func (d *DashboardStore) deleteMissingAlerts(alerts []*alertmodels.Alert, existi return nil } -func (d *DashboardStore) deleteAlertByIdInternal(alertId int64, reason string, sess *db.Session) error { +func (d *dashboardStore) deleteAlertByIdInternal(alertId int64, reason string, sess *db.Session) error { d.log.Debug("Deleting alert", "id", alertId, "reason", reason) if _, err := sess.Exec("DELETE FROM alert WHERE id = ?", alertId); err != nil { @@ -669,7 +670,7 @@ func (d *DashboardStore) deleteAlertByIdInternal(alertId int64, reason string, s return nil } -func (d *DashboardStore) GetDashboardsByPluginID(ctx context.Context, query *dashboards.GetDashboardsByPluginIDQuery) ([]*dashboards.Dashboard, error) { +func (d *dashboardStore) GetDashboardsByPluginID(ctx context.Context, query *dashboards.GetDashboardsByPluginIDQuery) ([]*dashboards.Dashboard, error) { var dashboards = make([]*dashboards.Dashboard, 0) err := d.store.WithDbSession(ctx, func(dbSession *db.Session) error { whereExpr := "org_id=? AND plugin_id=? AND is_folder=" + d.store.GetDialect().BooleanStr(false) @@ -683,13 +684,13 @@ func (d *DashboardStore) GetDashboardsByPluginID(ctx context.Context, query *das return dashboards, nil } -func (d *DashboardStore) DeleteDashboard(ctx context.Context, cmd *dashboards.DeleteDashboardCommand) error { +func (d *dashboardStore) DeleteDashboard(ctx context.Context, cmd *dashboards.DeleteDashboardCommand) error { return d.store.WithTransactionalDbSession(ctx, func(sess *db.Session) error { return d.deleteDashboard(cmd, sess, d.emitEntityEvent()) }) } -func (d *DashboardStore) deleteDashboard(cmd *dashboards.DeleteDashboardCommand, sess *db.Session, emitEntityEvent bool) error { +func (d *dashboardStore) deleteDashboard(cmd *dashboards.DeleteDashboardCommand, sess *db.Session, emitEntityEvent bool) error { dashboard := dashboards.Dashboard{ID: cmd.ID, OrgID: cmd.OrgID} has, err := sess.Get(&dashboard) if err != nil { @@ -828,7 +829,7 @@ func createEntityEvent(dashboard *dashboards.Dashboard, eventType store.EntityEv return entityEvent } -func (d *DashboardStore) deleteAlertDefinition(dashboardId int64, sess *db.Session) error { +func (d *dashboardStore) deleteAlertDefinition(dashboardId int64, sess *db.Session) error { alerts := make([]*alertmodels.Alert, 0) if err := sess.Where("dashboard_id = ?", dashboardId).Find(&alerts); err != nil { return err @@ -845,7 +846,7 @@ func (d *DashboardStore) deleteAlertDefinition(dashboardId int64, sess *db.Sessi return nil } -func (d *DashboardStore) GetDashboard(ctx context.Context, query *dashboards.GetDashboardQuery) (*dashboards.Dashboard, error) { +func (d *dashboardStore) GetDashboard(ctx context.Context, query *dashboards.GetDashboardQuery) (*dashboards.Dashboard, error) { var queryResult *dashboards.Dashboard err := d.store.WithDbSession(ctx, func(sess *db.Session) error { if query.ID == 0 && len(query.Slug) == 0 && len(query.UID) == 0 { @@ -870,7 +871,7 @@ func (d *DashboardStore) GetDashboard(ctx context.Context, query *dashboards.Get return queryResult, err } -func (d *DashboardStore) GetDashboardUIDByID(ctx context.Context, query *dashboards.GetDashboardRefByIDQuery) (*dashboards.DashboardRef, error) { +func (d *dashboardStore) GetDashboardUIDByID(ctx context.Context, query *dashboards.GetDashboardRefByIDQuery) (*dashboards.DashboardRef, error) { us := &dashboards.DashboardRef{} err := d.store.WithDbSession(ctx, func(sess *db.Session) error { var rawSQL = `SELECT uid, slug from dashboard WHERE Id=?` @@ -888,7 +889,7 @@ func (d *DashboardStore) GetDashboardUIDByID(ctx context.Context, query *dashboa return us, nil } -func (d *DashboardStore) GetDashboards(ctx context.Context, query *dashboards.GetDashboardsQuery) ([]*dashboards.Dashboard, error) { +func (d *dashboardStore) GetDashboards(ctx context.Context, query *dashboards.GetDashboardsQuery) ([]*dashboards.Dashboard, error) { var dashboards = make([]*dashboards.Dashboard, 0) err := d.store.WithDbSession(ctx, func(sess *db.Session) error { if len(query.DashboardIDs) == 0 && len(query.DashboardUIDs) == 0 { @@ -913,7 +914,7 @@ func (d *DashboardStore) GetDashboards(ctx context.Context, query *dashboards.Ge return dashboards, nil } -func (d *DashboardStore) FindDashboards(ctx context.Context, query *dashboards.FindPersistedDashboardsQuery) ([]dashboards.DashboardSearchProjection, error) { +func (d *dashboardStore) FindDashboards(ctx context.Context, query *dashboards.FindPersistedDashboardsQuery) ([]dashboards.DashboardSearchProjection, error) { filters := []interface{}{ permissions.DashboardPermissionFilter{ OrgRole: query.SignedInUser.OrgRole, @@ -995,7 +996,7 @@ func (d *DashboardStore) FindDashboards(ctx context.Context, query *dashboards.F return res, nil } -func (d *DashboardStore) GetDashboardTags(ctx context.Context, query *dashboards.GetDashboardTagsQuery) ([]*dashboards.DashboardTagCloudItem, error) { +func (d *dashboardStore) GetDashboardTags(ctx context.Context, query *dashboards.GetDashboardTagsQuery) ([]*dashboards.DashboardTagCloudItem, error) { queryResult := make([]*dashboards.DashboardTagCloudItem, 0) err := d.store.WithDbSession(ctx, func(dbSession *db.Session) error { sql := `SELECT @@ -1022,7 +1023,7 @@ func (d *DashboardStore) GetDashboardTags(ctx context.Context, query *dashboards // // This will be updated to take CountDashboardsInFolderQuery as an argument and // lookup dashboards using the ParentFolderUID when dashboards are associated with a parent folder UID instead of ID. -func (d *DashboardStore) CountDashboardsInFolder( +func (d *dashboardStore) CountDashboardsInFolder( ctx context.Context, req *dashboards.CountDashboardsInFolderRequest) (int64, error) { var count int64 var err error diff --git a/pkg/services/dashboards/database/database_folder_test.go b/pkg/services/dashboards/database/database_folder_test.go index 09a1e0a1af9..1de7418767f 100644 --- a/pkg/services/dashboards/database/database_folder_test.go +++ b/pkg/services/dashboards/database/database_folder_test.go @@ -29,7 +29,7 @@ func TestIntegrationDashboardFolderDataAccess(t *testing.T) { var sqlStore *sqlstore.SQLStore var flder, dashInRoot, childDash *dashboards.Dashboard var currentUser user.User - var dashboardStore *DashboardStore + var dashboardStore dashboards.Store setup := func() { sqlStore = db.InitTestDB(t) @@ -477,7 +477,7 @@ func TestIntegrationDashboardFolderDataAccess(t *testing.T) { }) } -func moveDashboard(t *testing.T, dashboardStore *DashboardStore, orgId int64, dashboard *simplejson.Json, +func moveDashboard(t *testing.T, dashboardStore dashboards.Store, orgId int64, dashboard *simplejson.Json, newFolderId int64) *dashboards.Dashboard { t.Helper() diff --git a/pkg/services/dashboards/database/database_test.go b/pkg/services/dashboards/database/database_test.go index cb5b3e8e8be..05ee1636359 100644 --- a/pkg/services/dashboards/database/database_test.go +++ b/pkg/services/dashboards/database/database_test.go @@ -37,7 +37,7 @@ func TestIntegrationDashboardDataAccess(t *testing.T) { var sqlStore *sqlstore.SQLStore var cfg *setting.Cfg var savedFolder, savedDash, savedDash2 *dashboards.Dashboard - var dashboardStore *DashboardStore + var dashboardStore dashboards.Store var starService star.Service var publicDashboardStore *database.PublicDashboardStoreImpl @@ -783,7 +783,7 @@ func insertTestRule(t *testing.T, sqlStore db.DB, foderOrgID int64, folderUID st require.NoError(t, err) } -func insertTestDashboard(t *testing.T, dashboardStore *DashboardStore, title string, orgId int64, +func insertTestDashboard(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, isFolder bool, tags ...interface{}) *dashboards.Dashboard { t.Helper() cmd := dashboards.SaveDashboardCommand{ @@ -804,7 +804,7 @@ func insertTestDashboard(t *testing.T, dashboardStore *DashboardStore, title str return dash } -func insertTestDashboardForPlugin(t *testing.T, dashboardStore *DashboardStore, title string, orgId int64, +func insertTestDashboardForPlugin(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, isFolder bool, pluginId string) *dashboards.Dashboard { t.Helper() cmd := dashboards.SaveDashboardCommand{ @@ -824,7 +824,7 @@ func insertTestDashboardForPlugin(t *testing.T, dashboardStore *DashboardStore, return dash } -func updateDashboardACL(t *testing.T, dashboardStore *DashboardStore, dashboardID int64, +func updateDashboardACL(t *testing.T, dashboardStore dashboards.Store, dashboardID int64, items ...dashboards.DashboardACL) error { t.Helper() @@ -841,7 +841,7 @@ func updateDashboardACL(t *testing.T, dashboardStore *DashboardStore, dashboardI // testSearchDashboards is a (near) copy of the dashboard service // SearchDashboards, which is a wrapper around FindDashboards. -func testSearchDashboards(d *DashboardStore, query *dashboards.FindPersistedDashboardsQuery) error { +func testSearchDashboards(d dashboards.Store, query *dashboards.FindPersistedDashboardsQuery) error { res, err := d.FindDashboards(context.Background(), query) if err != nil { return err diff --git a/pkg/services/folder/folderimpl/dashboard_folder_store_test.go b/pkg/services/folder/folderimpl/dashboard_folder_store_test.go index dc0c5b040c9..d21db8cfe86 100644 --- a/pkg/services/folder/folderimpl/dashboard_folder_store_test.go +++ b/pkg/services/folder/folderimpl/dashboard_folder_store_test.go @@ -19,7 +19,7 @@ import ( func TestIntegrationDashboardFolderStore(t *testing.T) { var sqlStore *sqlstore.SQLStore var cfg *setting.Cfg - var dashboardStore *database.DashboardStore + var dashboardStore dashboards.Store setup := func() { sqlStore, cfg = db.InitTestDBwithCfg(t) @@ -96,7 +96,7 @@ func TestIntegrationDashboardFolderStore(t *testing.T) { }) } -func insertTestDashboard(t *testing.T, dashboardStore *database.DashboardStore, title string, orgId int64, folderId int64, tags ...interface{}) *dashboards.Dashboard { +func insertTestDashboard(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, tags ...interface{}) *dashboards.Dashboard { t.Helper() cmd := dashboards.SaveDashboardCommand{ OrgID: orgId, @@ -116,7 +116,7 @@ func insertTestDashboard(t *testing.T, dashboardStore *database.DashboardStore, return dash } -func insertTestFolder(t *testing.T, dashboardStore *database.DashboardStore, title string, orgId int64, folderId int64, tags ...interface{}) *dashboards.Dashboard { +func insertTestFolder(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, tags ...interface{}) *dashboards.Dashboard { t.Helper() cmd := dashboards.SaveDashboardCommand{ OrgID: orgId, diff --git a/pkg/services/libraryelements/libraryelements_test.go b/pkg/services/libraryelements/libraryelements_test.go index 310ebee5451..516484efe7f 100644 --- a/pkg/services/libraryelements/libraryelements_test.go +++ b/pkg/services/libraryelements/libraryelements_test.go @@ -333,7 +333,7 @@ func createFolderWithACL(t *testing.T, sqlStore db.DB, title string, user user.S return folder } -func updateFolderACL(t *testing.T, dashboardStore *database.DashboardStore, folderID int64, items []folderACLItem) { +func updateFolderACL(t *testing.T, dashboardStore dashboards.Store, folderID int64, items []folderACLItem) { t.Helper() if len(items) == 0 { diff --git a/pkg/services/librarypanels/librarypanels_test.go b/pkg/services/librarypanels/librarypanels_test.go index 450a116a33e..57451f99261 100644 --- a/pkg/services/librarypanels/librarypanels_test.go +++ b/pkg/services/librarypanels/librarypanels_test.go @@ -743,7 +743,7 @@ func createFolderWithACL(t *testing.T, sqlStore db.DB, title string, user *user. return folder } -func updateFolderACL(t *testing.T, dashboardStore *database.DashboardStore, folderID int64, items []folderACLItem) { +func updateFolderACL(t *testing.T, dashboardStore dashboards.Store, folderID int64, items []folderACLItem) { t.Helper() if len(items) == 0 { diff --git a/pkg/services/publicdashboards/database/database_test.go b/pkg/services/publicdashboards/database/database_test.go index b5656f64f87..754b9136808 100644 --- a/pkg/services/publicdashboards/database/database_test.go +++ b/pkg/services/publicdashboards/database/database_test.go @@ -74,7 +74,7 @@ func TestIntegrationFindDashboard(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard @@ -104,7 +104,7 @@ func TestIntegrationExistsEnabledByAccessToken(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard @@ -177,7 +177,7 @@ func TestIntegrationExistsEnabledByDashboardUid(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard @@ -242,7 +242,7 @@ func TestIntegrationFindByDashboardUid(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard @@ -310,7 +310,7 @@ func TestIntegrationFindByAccessToken(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard var err error @@ -378,7 +378,7 @@ func TestIntegrationCreatePublicDashboard(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard var savedDashboard2 *dashboards.Dashboard @@ -457,7 +457,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard var anotherSavedDashboard *dashboards.Dashboard @@ -562,7 +562,7 @@ func TestIntegrationGetOrgIdByAccessToken(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard var err error @@ -634,7 +634,7 @@ func TestIntegrationDelete(t *testing.T) { } var sqlStore db.DB var cfg *setting.Cfg - var dashboardStore *dashboardsDB.DashboardStore + var dashboardStore dashboards.Store var publicdashboardStore *PublicDashboardStoreImpl var savedDashboard *dashboards.Dashboard var savedPublicDashboard *PublicDashboard @@ -672,7 +672,7 @@ func TestIntegrationDelete(t *testing.T) { } // helper function to insert a dashboard -func insertTestDashboard(t *testing.T, dashboardStore *dashboardsDB.DashboardStore, title string, orgId int64, +func insertTestDashboard(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, isFolder bool, tags ...interface{}) *dashboards.Dashboard { t.Helper() cmd := dashboards.SaveDashboardCommand{ diff --git a/pkg/services/publicdashboards/service/service_test.go b/pkg/services/publicdashboards/service/service_test.go index 41f74436fc5..560d8690927 100644 --- a/pkg/services/publicdashboards/service/service_test.go +++ b/pkg/services/publicdashboards/service/service_test.go @@ -996,7 +996,7 @@ func AddAnnotationsToDashboard(t *testing.T, dash *dashboards.Dashboard, annotat return dash } -func insertTestDashboard(t *testing.T, dashboardStore *dashboardsDB.DashboardStore, title string, orgId int64, +func insertTestDashboard(t *testing.T, dashboardStore dashboards.Store, title string, orgId int64, folderId int64, isFolder bool, templateVars []map[string]interface{}, customPanels []interface{}, tags ...interface{}) *dashboards.Dashboard { t.Helper()