Alerting: Support deleting rule groups in the provisioning API (#83514)
* Alerting: feat: support deleting rule groups in the provisioning API Adds support for DELETE to the provisioning API's alert rule groups route, which allows deleting the rule group with a single API call. Previously, groups were deleted by deleting rules one-by-one. Fixes #81860 This change doesn't add any new paths to the API, only new methods. --------- Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
This commit is contained in:
co-authored by
Yuri Tseretyan
parent
467302480f
commit
b905777ba9
@@ -343,24 +343,40 @@ func TestProvisioningApi(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("alert rule groups", func(t *testing.T) {
|
||||
t.Run("are present, GET returns 200", func(t *testing.T) {
|
||||
t.Run("are present", func(t *testing.T) {
|
||||
sut := createProvisioningSrvSut(t)
|
||||
rc := createTestRequestCtx()
|
||||
insertRule(t, sut, createTestAlertRule("rule", 1))
|
||||
|
||||
response := sut.RouteGetAlertRuleGroup(&rc, "folder-uid", "my-cool-group")
|
||||
t.Run("GET returns 200", func(t *testing.T) {
|
||||
response := sut.RouteGetAlertRuleGroup(&rc, "folder-uid", "my-cool-group")
|
||||
|
||||
require.Equal(t, 200, response.Status())
|
||||
require.Equal(t, 200, response.Status())
|
||||
})
|
||||
|
||||
t.Run("DELETE returns 204", func(t *testing.T) {
|
||||
response := sut.RouteDeleteAlertRuleGroup(&rc, "folder-uid", "my-cool-group")
|
||||
|
||||
require.Equal(t, 204, response.Status())
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("are missing, GET returns 404", func(t *testing.T) {
|
||||
t.Run("are missing", func(t *testing.T) {
|
||||
sut := createProvisioningSrvSut(t)
|
||||
rc := createTestRequestCtx()
|
||||
insertRule(t, sut, createTestAlertRule("rule", 1))
|
||||
|
||||
response := sut.RouteGetAlertRuleGroup(&rc, "folder-uid", "does not exist")
|
||||
t.Run("GET returns 404", func(t *testing.T) {
|
||||
response := sut.RouteGetAlertRuleGroup(&rc, "folder-uid", "does not exist")
|
||||
|
||||
require.Equal(t, 404, response.Status())
|
||||
require.Equal(t, 404, response.Status())
|
||||
})
|
||||
|
||||
t.Run("DELETE returns 404", func(t *testing.T) {
|
||||
response := sut.RouteDeleteAlertRuleGroup(&rc, "folder-uid", "does not exist")
|
||||
|
||||
require.Equal(t, 404, response.Status())
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("are invalid at group level", func(t *testing.T) {
|
||||
@@ -1587,6 +1603,7 @@ func createTestEnv(t *testing.T, testConfig string) testEnvironment {
|
||||
})
|
||||
sqlStore := db.InitTestDB(t)
|
||||
store := store.DBstore{
|
||||
Logger: log,
|
||||
SQLStore: sqlStore,
|
||||
Cfg: setting.UnifiedAlertingSettings{
|
||||
BaseInterval: time.Second * 10,
|
||||
|
||||
Reference in New Issue
Block a user