Alerting: Code-gen parsing of URL parameters and fix related bugs (#50731)

* Extend template and generate

* Generate and fix up alertmanager endpoints

* Prometheus routes

* fix up Testing endpoints

* touch up ruler API

* Update provisioning and fix 500

* Drop dead code

* Remove more dead code

* Resolve merge conflicts
This commit is contained in:
Alexander Weaver
2022-06-23 15:13:39 -05:00
committed by GitHub
parent 80f6560c9c
commit 0d9389e1f4
21 changed files with 262 additions and 262 deletions
@@ -128,13 +128,23 @@ func TestProvisioningApi(t *testing.T) {
rc := createTestRequestCtx()
cp := createInvalidContactPoint()
response := sut.RoutePutContactPoint(&rc, cp)
response := sut.RoutePutContactPoint(&rc, cp, "email-uid")
require.Equal(t, 400, response.Status())
require.NotEmpty(t, response.Body())
require.Contains(t, string(response.Body()), "recipient must be specified")
})
})
t.Run("are missing, PUT returns 404", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
cp := createInvalidContactPoint()
response := sut.RoutePutContactPoint(&rc, cp, "does not exist")
require.Equal(t, 404, response.Status())
})
})
t.Run("templates", func(t *testing.T) {
@@ -142,10 +152,9 @@ func TestProvisioningApi(t *testing.T) {
t.Run("PUT returns 400", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
withURLParams(rc, namePathParam, "test")
tmpl := definitions.MessageTemplateContent{Template: ""}
response := sut.RoutePutTemplate(&rc, tmpl)
response := sut.RoutePutTemplate(&rc, tmpl, "test")
require.Equal(t, 400, response.Status())
require.NotEmpty(t, response.Body())
@@ -171,10 +180,9 @@ func TestProvisioningApi(t *testing.T) {
t.Run("PUT returns 400", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
withURLParams(rc, namePathParam, "interval")
mti := createInvalidMuteTiming()
response := sut.RoutePutMuteTiming(&rc, mti)
response := sut.RoutePutMuteTiming(&rc, mti, "interval")
require.Equal(t, 400, response.Status())
require.NotEmpty(t, response.Body())
@@ -185,10 +193,9 @@ func TestProvisioningApi(t *testing.T) {
t.Run("are missing, PUT returns 404", func(t *testing.T) {
sut := createProvisioningSrvSut(t)
rc := createTestRequestCtx()
withURLParams(rc, namePathParam, "does not exist")
mti := definitions.MuteTimeInterval{}
response := sut.RoutePutMuteTiming(&rc, mti)
response := sut.RoutePutMuteTiming(&rc, mti, "does not exist")
require.Equal(t, 404, response.Status())
})
@@ -214,7 +221,7 @@ func TestProvisioningApi(t *testing.T) {
insertRule(t, sut, createTestAlertRule("rule", 1))
rule := createInvalidAlertRule()
response := sut.RoutePutAlertRule(&rc, rule)
response := sut.RoutePutAlertRule(&rc, rule, "rule")
require.Equal(t, 400, response.Status())
require.NotEmpty(t, response.Body())
@@ -227,7 +234,7 @@ func TestProvisioningApi(t *testing.T) {
rc := createTestRequestCtx()
rule := createTestAlertRule("rule", 1)
response := sut.RoutePutAlertRule(&rc, rule)
response := sut.RoutePutAlertRule(&rc, rule, "does not exist")
require.Equal(t, 404, response.Status())
})
@@ -274,12 +281,6 @@ func createTestRequestCtx() gfcore.ReqContext {
}
}
func withURLParams(rc gfcore.ReqContext, key, value string) {
params := web.Params(rc.Req)
params[key] = value
rc.Req = web.SetURLParams(rc.Req, params)
}
type fakeNotificationPolicyService struct {
tree definitions.Route
prov models.Provenance
@@ -407,7 +408,7 @@ var testConfig = `
"receivers": [{
"name": "grafana-default-email",
"grafana_managed_receiver_configs": [{
"uid": "",
"uid": "email-uid",
"name": "email receiver",
"type": "email",
"isDefault": true,