[v9.4.x] Dashboards: Evaluate provisioned dashboard titles in a backwards compatible way (#65440)

Backport from #65184 using github.com/xorcare/pointer instead of the newer util.Pointer.

(cherry picked from commit b210a39cb7)

---------

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
Grot (@grafanabot)
2023-03-29 11:25:44 +02:00
committed by GitHub
co-authored by Emil Tullstedt
parent 90db06d65b
commit 266a7407f6
5 changed files with 72 additions and 16 deletions
+13 -3
View File
@@ -937,12 +937,22 @@ func (d *DashboardStore) deleteAlertDefinition(dashboardId int64, sess *db.Sessi
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 {
if query.ID == 0 && len(query.UID) == 0 && (query.Title == nil || query.FolderID == nil) {
return dashboards.ErrDashboardIdentifierNotSet
}
dashboard := dashboards.Dashboard{Slug: query.Slug, OrgID: query.OrgID, ID: query.ID, UID: query.UID}
has, err := sess.Get(&dashboard)
dashboard := dashboards.Dashboard{OrgID: query.OrgID, ID: query.ID, UID: query.UID}
mustCols := []string{}
if query.Title != nil {
dashboard.Title = *query.Title
mustCols = append(mustCols, "title")
}
if query.FolderID != nil {
dashboard.FolderID = *query.FolderID
mustCols = append(mustCols, "folder_id")
}
has, err := sess.MustCols(mustCols...).Get(&dashboard)
if err != nil {
return err