mirror of https://github.com/grafana/grafana.git
Folders: Use folder service to count library panels (#98802)
* Use folder service to count library panels --------- Co-authored-by: suntala <arati.rana@grafana.com>
This commit is contained in:
parent
2594b4f7af
commit
7c87ff1b84
|
@ -195,19 +195,16 @@ func (lps LibraryPanelService) CountInFolders(ctx context.Context, orgID int64,
|
||||||
if len(folderUIDs) == 0 {
|
if len(folderUIDs) == 0 {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var count int64
|
var count int64
|
||||||
return count, lps.SQLStore.WithDbSession(ctx, func(sess *db.Session) error {
|
return count, lps.SQLStore.WithDbSession(ctx, func(sess *db.Session) error {
|
||||||
metrics.MFolderIDsServiceCount.WithLabelValues(metrics.LibraryPanels).Inc()
|
metrics.MFolderIDsServiceCount.WithLabelValues(metrics.LibraryPanels).Inc()
|
||||||
// the sequential IDs for the respective entries of dashboard and folder tables are different,
|
s := fmt.Sprintf(`SELECT COUNT(*) FROM library_element WHERE org_id = ? AND folder_uid IN (%s) AND kind = ?`, strings.Repeat("?,", len(folderUIDs)-1)+"?")
|
||||||
// so we need to get the folder ID from the dashboard table
|
|
||||||
// TODO: In the future, we should consider adding a folder UID column to the library_element table
|
|
||||||
// and use that instead of the folder ID.
|
|
||||||
s := fmt.Sprintf(`SELECT COUNT(*) FROM library_element
|
|
||||||
WHERE org_id = ? AND folder_id IN (SELECT id FROM dashboard WHERE org_id = ? AND uid IN (%s)) AND kind = ?`, strings.Repeat("?,", len(folderUIDs)-1)+"?")
|
|
||||||
args := make([]interface{}, 0, len(folderUIDs)+2)
|
args := make([]interface{}, 0, len(folderUIDs)+2)
|
||||||
args = append(args, orgID, orgID)
|
args = append(args, orgID)
|
||||||
for _, folderUID := range folderUIDs {
|
for _, uid := range folderUIDs {
|
||||||
args = append(args, folderUID)
|
args = append(args, uid)
|
||||||
}
|
}
|
||||||
args = append(args, int64(model.PanelElement))
|
args = append(args, int64(model.PanelElement))
|
||||||
_, err := sess.SQL(s, args...).Get(&count)
|
_, err := sess.SQL(s, args...).Get(&count)
|
||||||
|
|
|
@ -732,7 +732,7 @@ func createDashboard(t *testing.T, sqlStore db.DB, user *user.SignedInUser, dash
|
||||||
dashPermissionService.On("SetPermissions", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return([]accesscontrol.ResourcePermission{}, nil)
|
dashPermissionService.On("SetPermissions", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return([]accesscontrol.ResourcePermission{}, nil)
|
||||||
service, err := dashboardservice.ProvideDashboardServiceImpl(
|
service, err := dashboardservice.ProvideDashboardServiceImpl(
|
||||||
cfg, dashboardStore, folderStore,
|
cfg, dashboardStore, folderStore,
|
||||||
featuremgmt.WithFeatures(), acmock.NewMockedPermissionsService(), dashPermissionService, ac,
|
features, acmock.NewMockedPermissionsService(), dashPermissionService, ac,
|
||||||
foldertest.NewFakeService(), folder.NewFakeStore(),
|
foldertest.NewFakeService(), folder.NewFakeStore(),
|
||||||
nil, nil, nil, nil, quotaService, nil,
|
nil, nil, nil, nil, quotaService, nil,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue