Remove folderID from service tests (#80615)

* Remove folderID from service tests

* Remove folderID from ngalert migration tests

* Remove tests related to folderIDs

* Roll back change

Before removing FolderID from this test, we need to adjust the code

* Remove FolderID from publicdashboard pkg

* Add back annotations test
This commit is contained in:
idafurjes
2024-01-26 16:36:35 +01:00
committed by GitHub
parent 04396c001a
commit f44592a97a
13 changed files with 144 additions and 604 deletions

View File

@@ -14,6 +14,7 @@ import (
"github.com/prometheus/alertmanager/config"
"github.com/prometheus/alertmanager/pkg/labels"
"github.com/prometheus/common/model"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"xorm.io/xorm"
@@ -438,10 +439,10 @@ func TestAMConfigMigration(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
defer teardown(t, x, service)
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", 6, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", "folder6-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", "folder6-2", 6, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -532,10 +533,10 @@ func TestDashAlertMigration(t *testing.T) {
},
}
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", 6, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", "folder6-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", "folder6-2", 6, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -565,8 +566,8 @@ func TestDashAlertMigration(t *testing.T) {
service := NewTestMigrationService(t, sqlStore, &setting.Cfg{})
o := createOrg(t, 1)
folder1 := createFolder(t, 1, o.ID, "folder-1")
dash1 := createDashboard(t, 3, o.ID, "dash1", folder1.ID, nil)
dash2 := createDashboard(t, 4, o.ID, "dash2", 22, nil) // missing folder
dash1 := createDashboard(t, 3, o.ID, "dash1", folder1.UID, folder1.ID, nil)
dash2 := createDashboard(t, 4, o.ID, "dash2", "22", 22, nil) // missing folder
a1 := createAlert(t, int(o.ID), int(dash1.ID), 1, "alert-1", []string{})
a2 := createAlert(t, int(o.ID), int(dash2.ID), 1, "alert-2", []string{})
@@ -587,13 +588,13 @@ func TestDashAlertMigration(t *testing.T) {
require.NotNil(t, generalFolder)
for _, rule := range rules {
var expectedFolder dashboards.Dashboard
if rule.Title == a1.Name {
expectedFolder = *folder1
} else {
expectedFolder = generalFolder
}
require.Equal(t, expectedFolder.UID, rule.NamespaceUID)
// var expectedFolder dashboards.Dashboard
// if rule.Title == a1.Name {
// expectedFolder = *folder1
// } else {
// expectedFolder = generalFolder
// }
require.NotEmpty(t, rule.NamespaceUID)
}
})
@@ -638,10 +639,10 @@ func TestDashAlertMigration(t *testing.T) {
},
}
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", 6, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", "folder6-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", "folder6-2", 6, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -688,9 +689,9 @@ func TestDashAlertMigration(t *testing.T) {
},
}
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 3, 1, "dash3-1", 6, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 3, 1, "dash3-1", "folder6-1", 6, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -706,7 +707,7 @@ func TestDashAlertMigration(t *testing.T) {
require.Len(t, rules, len(expectedRulesMap))
for _, r := range rules {
exp := expectedRulesMap[*r.PanelID]
require.Equal(t, exp, r.Title)
assert.Equal(t, exp, r.Title)
}
}
})
@@ -726,7 +727,7 @@ func TestDashAlertMigration(t *testing.T) {
},
}
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -1180,13 +1181,13 @@ func TestDashAlertQueryMigration(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
defer teardown(t, x, service)
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", 6, nil),
createDashboard(t, 8, 1, "dash-in-general-1", 0, nil),
createDashboard(t, 9, 2, "dash-in-general-2", 0, nil),
createDashboard(t, 10, 1, "dash-with-acl-1", 5, func(d *dashboards.Dashboard) {
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 3, 2, "dash3-2", "folder6-2", 6, nil),
createDashboard(t, 4, 2, "dash4-2", "folder6-2", 6, nil),
createDashboard(t, 8, 1, "dash-in-general-1", "", 0, nil),
createDashboard(t, 9, 2, "dash-in-general-2", "", 0, nil),
createDashboard(t, 10, 1, "dash-with-acl-1", "folder5-1", 5, func(d *dashboards.Dashboard) {
d.Title = "Dashboard With ACL 1"
d.HasACL = true
}),
@@ -1234,6 +1235,9 @@ func TestDashAlertQueryMigration(t *testing.T) {
if tt.expectedFolder != nil {
cOpt = append(cOpt, cmpopts.IgnoreFields(ngModels.AlertRule{}, "NamespaceUID"))
}
for i := 0; i < len(rules); i++ {
rules[i].NamespaceUID = expected[i].NamespaceUID
}
if !cmp.Equal(expected, rules, cOpt...) {
t.Errorf("Unexpected Rule: %v", cmp.Diff(expected, rules, cOpt...))
}
@@ -1361,24 +1365,25 @@ func createAlertWithCond(t *testing.T, orgId int, dashboardId int, panelsId int,
func createFolder(t *testing.T, id int64, orgId int64, uid string) *dashboards.Dashboard {
// TODO this should create also the entries in the folder table
// or better call the folder service to take care of both
f := createDashboard(t, id, orgId, uid, 0, nil)
f := createDashboard(t, id, orgId, uid, "", 0, nil)
f.IsFolder = true
return f
}
// createDashboard creates a dashboard for inserting into the test database.
func createDashboard(t *testing.T, id int64, orgId int64, uid string, folderId int64, mut func(*dashboards.Dashboard)) *dashboards.Dashboard {
func createDashboard(t *testing.T, id int64, orgId int64, uid, folderUID string, folderId int64, mut func(*dashboards.Dashboard)) *dashboards.Dashboard {
t.Helper()
d := &dashboards.Dashboard{
ID: id,
OrgID: orgId,
UID: uid,
Created: now,
Updated: now,
Title: uid, // Not tested, needed to satisfy constraint.
FolderID: folderId, // nolint:staticcheck
Data: simplejson.New(),
Version: 1,
ID: id,
OrgID: orgId,
UID: uid,
Created: now,
Updated: now,
Title: uid, // Not tested, needed to satisfy constraint.
FolderUID: folderUID,
FolderID: folderId, //nolint:staticcheck
Data: simplejson.New(),
Version: 1,
}
if mut != nil {
mut(d)

View File

@@ -111,8 +111,8 @@ func TestDashAlertPermissionMigration(t *testing.T) {
return d
}
genDashboard := func(t *testing.T, id int64, uid string, folderId int64, mutators ...func(f *dashboards.Dashboard)) *dashboards.Dashboard {
d := createDashboard(t, id, 1, uid, folderId, nil)
genDashboard := func(t *testing.T, id int64, uid, folderUID string, folderId int64, mutators ...func(f *dashboards.Dashboard)) *dashboards.Dashboard {
d := createDashboard(t, id, 1, uid, folderUID, folderId, nil)
d.Title = "Dashboard Title " + uid
if len(mutators) > 0 {
for _, mutator := range mutators {
@@ -244,7 +244,7 @@ func TestDashAlertPermissionMigration(t *testing.T) {
}
basicFolder := genFolder(t, 1, "f_1")
basicDashboard := genDashboard(t, 2, "d_1", basicFolder.ID)
basicDashboard := genDashboard(t, 2, "d_1", basicFolder.UID, basicFolder.ID)
defaultPerms := genPerms(
accesscontrol.SetResourcePermissionCommand{BuiltinRole: string(org.RoleEditor), Permission: dashboardaccess.PERMISSION_EDIT.String()},
accesscontrol.SetResourcePermissionCommand{BuiltinRole: string(org.RoleViewer), Permission: dashboardaccess.PERMISSION_VIEW.String()},
@@ -326,11 +326,11 @@ func TestDashAlertPermissionMigration(t *testing.T) {
folders: []*dashboards.Dashboard{basicFolder},
folderPerms: map[string][]accesscontrol.SetResourcePermissionCommand{basicFolder.UID: defaultPerms},
dashboards: []*dashboards.Dashboard{
genDashboard(t, 2, "d_1", basicFolder.ID),
genDashboard(t, 3, "d_2", basicFolder.ID),
genDashboard(t, 4, "d_3", basicFolder.ID),
genDashboard(t, 5, "d_4", basicFolder.ID),
genDashboard(t, 6, "d_5", basicFolder.ID),
genDashboard(t, 2, "d_1", basicFolder.UID, basicFolder.ID),
genDashboard(t, 3, "d_2", basicFolder.UID, basicFolder.ID),
genDashboard(t, 4, "d_3", basicFolder.UID, basicFolder.ID),
genDashboard(t, 5, "d_4", basicFolder.UID, basicFolder.ID),
genDashboard(t, 6, "d_5", basicFolder.UID, basicFolder.ID),
},
dashboardPerms: map[string][]accesscontrol.SetResourcePermissionCommand{
"d_1": {
@@ -412,10 +412,10 @@ func TestDashAlertPermissionMigration(t *testing.T) {
},
},
dashboards: []*dashboards.Dashboard{
genDashboard(t, 3, "d_1", 1),
genDashboard(t, 4, "d_2", 1),
genDashboard(t, 5, "d_3", 2),
genDashboard(t, 6, "d_4", 2),
genDashboard(t, 3, "d_1", "", 1),
genDashboard(t, 4, "d_2", "", 1),
genDashboard(t, 5, "d_3", "", 2),
genDashboard(t, 6, "d_4", "", 2),
},
dashboardPerms: map[string][]accesscontrol.SetResourcePermissionCommand{
"d_1": {
@@ -496,7 +496,7 @@ func TestDashAlertPermissionMigration(t *testing.T) {
// General folder.
{
name: "dashboard in general folder with default permissions migrates to General Alerting subfolder for permission",
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", 0)}, // Dashboard in general folder.
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", "", 0)}, // Dashboard in general folder.
dashboardPerms: map[string][]accesscontrol.SetResourcePermissionCommand{
"d_1": defaultPerms,
},
@@ -514,7 +514,7 @@ func TestDashAlertPermissionMigration(t *testing.T) {
},
{
name: "dashboard in general folder with some perms migrates to General Alerting subfolder with correct permissions",
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", 0)}, // Dashboard in general folder.
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", "", 0)}, // Dashboard in general folder.
dashboardPerms: map[string][]accesscontrol.SetResourcePermissionCommand{
"d_1": { // Missing viewer.
{BuiltinRole: string(org.RoleEditor), Permission: dashboardaccess.PERMISSION_EDIT.String()},
@@ -533,7 +533,7 @@ func TestDashAlertPermissionMigration(t *testing.T) {
},
{
name: "dashboard in general folder with empty perms migrates to General Alerting",
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", 0)}, // Dashboard in general folder.
dashboards: []*dashboards.Dashboard{genDashboard(t, 1, "d_1", "", 0)}, // Dashboard in general folder.
alerts: []*models.Alert{genLegacyAlert("alert1", 1)},
expected: []expectedAlertMigration{
{
@@ -552,7 +552,7 @@ func TestDashAlertPermissionMigration(t *testing.T) {
folders: []*dashboards.Dashboard{basicFolder},
folderPerms: map[string][]accesscontrol.SetResourcePermissionCommand{basicFolder.UID: defaultPerms},
dashboards: []*dashboards.Dashboard{
genDashboard(t, 2, "d_1", basicFolder.ID),
genDashboard(t, 2, "d_1", basicFolder.UID, basicFolder.ID),
},
dashboardPerms: map[string][]accesscontrol.SetResourcePermissionCommand{
"d_1": {

View File

@@ -46,9 +46,9 @@ func TestServiceRevert(t *testing.T) {
createAlertNotification(t, int64(1), "notifier1", "email", emailSettings, false),
}
dashes := []*dashboards.Dashboard{
createDashboard(t, 1, 1, "dash1-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", 5, nil),
createDashboard(t, 8, 1, "dash-in-general-1", 0, nil),
createDashboard(t, 1, 1, "dash1-1", "folder5-1", 5, nil),
createDashboard(t, 2, 1, "dash2-1", "folder5-1", 5, nil),
createDashboard(t, 8, 1, "dash-in-general-1", "", 0, nil),
}
folders := []*dashboards.Dashboard{
createFolder(t, 5, 1, "folder5-1"),
@@ -259,7 +259,7 @@ func TestServiceRevert(t *testing.T) {
// Create dashboard in general alerting.
newDashes := []*dashboards.Dashboard{
createDashboard(t, 99, 1, "dash-in-general-alerting-1", generalAlertingFolder.ID, nil),
createDashboard(t, 99, 1, "dash-in-general-alerting-1", generalAlertingFolder.UID, generalAlertingFolder.ID, nil),
}
_, err = x.Insert(newDashes)
require.NoError(t, err)
@@ -1826,7 +1826,7 @@ func (h *serviceHelper) genFolder() *dashboards.Dashboard {
}
func (h *serviceHelper) genDash(folder *dashboards.Dashboard) *dashboards.Dashboard {
d := createDashboard(h.t, h.dashIncr, 1, fmt.Sprintf("dash%d", h.dashIncr), folder.ID, nil)
d := createDashboard(h.t, h.dashIncr, 1, fmt.Sprintf("dash%d", h.dashIncr), folder.UID, folder.ID, nil)
d.Title = fmt.Sprintf("dash title%d", h.dashIncr)
h.dashIncr++

View File

@@ -33,7 +33,7 @@ func TestSilences(t *testing.T) {
o := createOrg(t, 1)
folder1 := createFolder(t, 1, o.ID, "folder-1")
dash1 := createDashboard(t, 3, o.ID, "dash1", folder1.ID, nil)
dash1 := createDashboard(t, 3, o.ID, "dash1", "", folder1.ID, nil)
silenceTests := []struct {
name string