mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CloudMigrations: add parent folder name to alert rule resource (#96366)
This commit is contained in:
parent
924b0d0863
commit
29ee90bc26
@ -697,6 +697,7 @@ func TestGetParentNames(t *testing.T) {
|
||||
folders []folder.CreateFolderCommand
|
||||
dashboards []dashboards.Dashboard
|
||||
libraryElements []libraryElement
|
||||
alertRules []alertRule
|
||||
expectedParentNames map[cloudmigration.MigrateDataType][]string
|
||||
}{
|
||||
{
|
||||
@ -717,10 +718,15 @@ func TestGetParentNames(t *testing.T) {
|
||||
{UID: "libraryElementUID-0", FolderUID: &libraryElementFolderUID},
|
||||
{UID: "libraryElementUID-1"},
|
||||
},
|
||||
alertRules: []alertRule{
|
||||
{UID: "alertRuleUID-0", FolderUID: ""},
|
||||
{UID: "alertRuleUID-1", FolderUID: "folderUID-B"},
|
||||
},
|
||||
expectedParentNames: map[cloudmigration.MigrateDataType][]string{
|
||||
cloudmigration.DashboardDataType: {"", "Folder A", "Folder B"},
|
||||
cloudmigration.FolderDataType: {"Folder A"},
|
||||
cloudmigration.LibraryElementDataType: {"Folder A"},
|
||||
cloudmigration.AlertRuleType: {"Folder B"},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -728,7 +734,7 @@ func TestGetParentNames(t *testing.T) {
|
||||
for _, tc := range testcases {
|
||||
s.folderService = &foldertest.FakeService{ExpectedFolders: tc.fakeFolders}
|
||||
|
||||
dataUIDsToParentNamesByType, err := s.getParentNames(ctx, user, tc.dashboards, tc.folders, tc.libraryElements)
|
||||
dataUIDsToParentNamesByType, err := s.getParentNames(ctx, user, tc.dashboards, tc.folders, tc.libraryElements, tc.alertRules)
|
||||
require.NoError(t, err)
|
||||
|
||||
for dataType, expectedParentNames := range tc.expectedParentNames {
|
||||
|
@ -195,7 +195,7 @@ func (s *Service) getMigrationDataJSON(ctx context.Context, signedInUser *user.S
|
||||
}
|
||||
|
||||
// Obtain the names of parent elements for Dashboard and Folders data types
|
||||
parentNamesByType, err := s.getParentNames(ctx, signedInUser, dashs, folders, libraryElements)
|
||||
parentNamesByType, err := s.getParentNames(ctx, signedInUser, dashs, folders, libraryElements, alertRules)
|
||||
if err != nil {
|
||||
s.log.Error("Failed to get parent folder names", "err", err)
|
||||
}
|
||||
@ -662,7 +662,14 @@ func (s *Service) getFolderNamesForFolderUIDs(ctx context.Context, signedInUser
|
||||
|
||||
// getParentNames finds the parent names for resources and returns a map of data type: {data UID : parentName}
|
||||
// for dashboards, folders and library elements - the parent is the parent folder
|
||||
func (s *Service) getParentNames(ctx context.Context, signedInUser *user.SignedInUser, dashboards []dashboards.Dashboard, folders []folder.CreateFolderCommand, libraryElements []libraryElement) (map[cloudmigration.MigrateDataType]map[string](string), error) {
|
||||
func (s *Service) getParentNames(
|
||||
ctx context.Context,
|
||||
signedInUser *user.SignedInUser,
|
||||
dashboards []dashboards.Dashboard,
|
||||
folders []folder.CreateFolderCommand,
|
||||
libraryElements []libraryElement,
|
||||
alertRules []alertRule,
|
||||
) (map[cloudmigration.MigrateDataType]map[string](string), error) {
|
||||
parentNamesByType := make(map[cloudmigration.MigrateDataType]map[string]string)
|
||||
for _, dataType := range currentMigrationTypes {
|
||||
parentNamesByType[dataType] = make(map[string]string)
|
||||
@ -684,6 +691,11 @@ func (s *Service) getParentNames(ctx context.Context, signedInUser *user.SignedI
|
||||
parentFolderUIDsSet[*libraryElement.FolderUID] = struct{}{}
|
||||
}
|
||||
}
|
||||
for _, alertRule := range alertRules {
|
||||
if alertRule.FolderUID != "" {
|
||||
parentFolderUIDsSet[alertRule.FolderUID] = struct{}{}
|
||||
}
|
||||
}
|
||||
parentFolderUIDsSlice := make([]string, 0, len(parentFolderUIDsSet))
|
||||
for parentFolderUID := range parentFolderUIDsSet {
|
||||
parentFolderUIDsSlice = append(parentFolderUIDsSlice, parentFolderUID)
|
||||
@ -708,6 +720,11 @@ func (s *Service) getParentNames(ctx context.Context, signedInUser *user.SignedI
|
||||
parentNamesByType[cloudmigration.LibraryElementDataType][libraryElement.UID] = foldersUIDsToFolderName[*libraryElement.FolderUID]
|
||||
}
|
||||
}
|
||||
for _, alertRule := range alertRules {
|
||||
if alertRule.FolderUID != "" {
|
||||
parentNamesByType[cloudmigration.AlertRuleType][alertRule.UID] = foldersUIDsToFolderName[alertRule.FolderUID]
|
||||
}
|
||||
}
|
||||
|
||||
return parentNamesByType, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user