[release-12.0.1] K8s: Dashboards: Fix provisioned dashboard cleanup (#104504) (#104525)

K8s: Dashboards: Fix provisioned dashboard cleanup (#104504)
pull/104557/head
Stephanie Hingtgen 3 months ago committed by GitHub
parent cf21a9385b
commit 745015e74f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 22
      pkg/registry/apis/dashboard/legacy/sql_dashboards.go
  2. 5
      pkg/services/dashboards/service/dashboard_service.go
  3. 2
      pkg/services/dashboards/service/dashboard_service_test.go

@ -303,19 +303,15 @@ func (a *dashboardSqlAccess) scanRow(rows *sql.Rows, history bool) (*dashboardRo
}
if origin_name.String != "" {
// if the reader cannot be found, it may be an orphaned provisioned dashboard
resolvedPath := a.provisioning.GetDashboardProvisionerResolvedPath(origin_name.String)
if resolvedPath != "" {
meta.SetSourceProperties(utils.SourceProperties{
Path: origin_path.String,
Checksum: origin_hash.String,
TimestampMillis: origin_ts.Int64,
})
meta.SetManagerProperties(utils.ManagerProperties{
Kind: utils.ManagerKindClassicFP, // nolint:staticcheck
Identity: origin_name.String,
})
}
meta.SetSourceProperties(utils.SourceProperties{
Path: origin_path.String,
Checksum: origin_hash.String,
TimestampMillis: origin_ts.Int64,
})
meta.SetManagerProperties(utils.ManagerProperties{
Kind: utils.ManagerKindClassicFP, // nolint:staticcheck
Identity: origin_name.String,
})
} else if plugin_id.String != "" {
meta.SetManagerProperties(utils.ManagerProperties{
Kind: utils.ManagerKindPlugin,

@ -1153,8 +1153,11 @@ func (dr *DashboardServiceImpl) UnprovisionDashboard(ctx context.Context, dashbo
UpdatedAt: time.Now(),
Dashboard: dash.Data,
}, nil, true)
if err != nil {
return err
}
return err
return dr.dashboardStore.UnprovisionDashboard(ctx, dashboardId)
}
return dashboards.ErrDashboardNotFound

@ -1118,6 +1118,7 @@ func TestUnprovisionDashboard(t *testing.T) {
},
"spec": map[string]any{},
}}
fakeStore.On("UnprovisionDashboard", mock.Anything, int64(1)).Return(nil).Once()
k8sCliMock.On("Get", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(dash, nil)
dashWithoutAnnotations := &unstructured.Unstructured{Object: map[string]any{
"apiVersion": dashboardv0.APIVERSION,
@ -1168,6 +1169,7 @@ func TestUnprovisionDashboard(t *testing.T) {
err := service.UnprovisionDashboard(ctx, 1)
require.NoError(t, err)
k8sCliMock.AssertExpectations(t)
fakeStore.AssertExpectations(t)
})
}

Loading…
Cancel
Save