Dashboards: Fix regression when deleting folder (#88311)

* Fix regression when deleting folder

* Apply suggestion from code review
This commit is contained in:
Sofia Papagiannaki
2024-05-30 14:21:34 +03:00
committed by GitHub
parent f6a1ed3581
commit 4f999f2b6c
4 changed files with 25 additions and 37 deletions
+1 -7
View File
@@ -852,16 +852,10 @@ func (s *Service) deleteChildrenInFolder(ctx context.Context, orgID int64, folde
}
func (s *Service) legacyDelete(ctx context.Context, cmd *folder.DeleteFolderCommand, folderUIDs []string) error {
if s.features.IsEnabledGlobally(featuremgmt.FlagDashboardRestore) {
if err := s.dashboardStore.SoftDeleteDashboardsInFolders(ctx, cmd.OrgID, folderUIDs); err != nil {
return toFolderError(err)
}
}
// TODO use bulk delete
for _, folderUID := range folderUIDs {
// only hard delete the folder representation in the dashboard store
// nolint:staticcheck
deleteCmd := dashboards.DeleteDashboardCommand{OrgID: cmd.OrgID, UID: folderUID, ForceDeleteFolderRules: cmd.ForceDeleteRules, SkipSoftDeletedDashboards: true}
deleteCmd := dashboards.DeleteDashboardCommand{OrgID: cmd.OrgID, UID: folderUID, ForceDeleteFolderRules: cmd.ForceDeleteRules}
if err := s.dashboardStore.DeleteDashboard(ctx, &deleteCmd); err != nil {
return toFolderError(err)
}
@@ -291,11 +291,6 @@ func TestIntegrationFolderService(t *testing.T) {
}).Return(nil).Once()
service.features = featuremgmt.WithFeatures(featuremgmt.FlagDashboardRestore)
var folderUids []string
dashStore.On("SoftDeleteDashboardsInFolders", mock.Anything, mock.Anything, mock.Anything).Run(func(args mock.Arguments) {
folderUids = args.Get(2).([]string)
}).Return(nil).Once()
expectedForceDeleteRules := false
err := service.Delete(context.Background(), &folder.DeleteFolderCommand{
UID: f.UID,
@@ -307,7 +302,6 @@ func TestIntegrationFolderService(t *testing.T) {
require.NotNil(t, actualCmd)
require.Equal(t, orgID, actualCmd.OrgID)
require.Equal(t, expectedForceDeleteRules, actualCmd.ForceDeleteFolderRules)
require.Equal(t, f.UID, folderUids[0])
})
t.Run("When deleting folder by uid, expectedForceDeleteRules as true, and dashboard Restore turned on should not return access denied error", func(t *testing.T) {
@@ -321,11 +315,6 @@ func TestIntegrationFolderService(t *testing.T) {
}).Return(nil).Once()
service.features = featuremgmt.WithFeatures(featuremgmt.FlagDashboardRestore)
var folderUids []string
dashStore.On("SoftDeleteDashboardsInFolders", mock.Anything, mock.Anything, mock.Anything).Run(func(args mock.Arguments) {
folderUids = args.Get(2).([]string)
}).Return(nil).Once()
expectedForceDeleteRules := true
err := service.Delete(context.Background(), &folder.DeleteFolderCommand{
UID: f.UID,
@@ -337,7 +326,6 @@ func TestIntegrationFolderService(t *testing.T) {
require.NotNil(t, actualCmd)
require.Equal(t, orgID, actualCmd.OrgID)
require.Equal(t, expectedForceDeleteRules, actualCmd.ForceDeleteFolderRules)
require.Equal(t, f.UID, folderUids[0])
})
t.Cleanup(func() {