mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 05:37:53 +08:00
Alerting: Add UID of rules to response that were affected by update group request (#75985)
* update storage's method InstertRules to return ids of added rules as slice to keep the same order as rules in the argument * schematize response of update rule group endpoint, add created, updated, deleted fields that contain UID of affected rules. * update integration tests to use the new fields
This commit is contained in:
@ -524,7 +524,7 @@ func TestIntegrationAlertAndGroupsQuery(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
status, _ := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
_, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
}
|
||||
|
||||
@ -664,7 +664,7 @@ func TestIntegrationRulerAccess(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
status, body := tc.client.PostRulesGroup(t, "default", &rules)
|
||||
_, status, body := tc.client.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, tc.expStatus, status)
|
||||
res := &Response{}
|
||||
err = json.Unmarshal([]byte(body), &res)
|
||||
@ -1097,7 +1097,7 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
tc.rule,
|
||||
},
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
_, status, body := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
res := &Response{}
|
||||
err = json.Unmarshal([]byte(body), &res)
|
||||
require.NoError(t, err)
|
||||
@ -1170,9 +1170,12 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
resp, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
require.JSONEq(t, `{"message":"rule group updated successfully"}`, body)
|
||||
require.Equal(t, "rule group updated successfully", resp.Message)
|
||||
assert.Len(t, resp.Created, 2)
|
||||
assert.Empty(t, resp.Updated)
|
||||
assert.Empty(t, resp.Deleted)
|
||||
}
|
||||
|
||||
// With the rules created, let's make sure that rule definition is stored correctly.
|
||||
@ -1339,7 +1342,7 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
Interval: interval,
|
||||
}
|
||||
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
_, status, body := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusNotFound, status)
|
||||
var res map[string]any
|
||||
assert.NoError(t, json.Unmarshal([]byte(body), &res))
|
||||
@ -1445,7 +1448,7 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
},
|
||||
Interval: interval,
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
_, status, body := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusBadRequest, status)
|
||||
var res map[string]any
|
||||
require.NoError(t, json.Unmarshal([]byte(body), &res))
|
||||
@ -1519,9 +1522,10 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
},
|
||||
Interval: interval,
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
respModel, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
require.JSONEq(t, `{"message":"rule group updated successfully"}`, body)
|
||||
require.Equal(t, respModel.Updated, []string{ruleUID})
|
||||
require.Len(t, respModel.Deleted, 1)
|
||||
|
||||
// let's make sure that rule definitions are updated correctly.
|
||||
u := fmt.Sprintf("http://grafana:password@%s/api/ruler/grafana/api/v1/rules/default", grafanaListedAddr)
|
||||
@ -1637,9 +1641,9 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
},
|
||||
Interval: interval,
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
respModel, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
require.JSONEq(t, `{"message":"rule group updated successfully"}`, body)
|
||||
require.Equal(t, respModel.Updated, []string{ruleUID})
|
||||
|
||||
// let's make sure that rule definitions are updated correctly.
|
||||
u := fmt.Sprintf("http://grafana:password@%s/api/ruler/grafana/api/v1/rules/default", grafanaListedAddr)
|
||||
@ -1723,9 +1727,12 @@ func TestIntegrationAlertRuleCRUD(t *testing.T) {
|
||||
},
|
||||
Interval: interval,
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
respModel, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
require.JSONEq(t, `{"message":"no changes detected in the rule group"}`, body)
|
||||
require.Equal(t, "no changes detected in the rule group", respModel.Message)
|
||||
assert.Empty(t, respModel.Created)
|
||||
assert.Empty(t, respModel.Updated)
|
||||
assert.Empty(t, respModel.Deleted)
|
||||
|
||||
// let's make sure that rule definitions are updated correctly.
|
||||
u := fmt.Sprintf("http://grafana:password@%s/api/ruler/grafana/api/v1/rules/default", grafanaListedAddr)
|
||||
@ -1993,7 +2000,7 @@ func TestIntegrationQuota(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
_, status, body := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusForbidden, status)
|
||||
var res map[string]any
|
||||
require.NoError(t, json.Unmarshal([]byte(body), &res))
|
||||
@ -2030,9 +2037,9 @@ func TestIntegrationQuota(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
status, body := apiClient.PostRulesGroup(t, "default", &rules)
|
||||
respModel, status, _ := apiClient.PostRulesGroupWithStatus(t, "default", &rules)
|
||||
assert.Equal(t, http.StatusAccepted, status)
|
||||
require.JSONEq(t, `{"message":"rule group updated successfully"}`, body)
|
||||
require.Len(t, respModel.Updated, 1)
|
||||
|
||||
// let's make sure that rule definitions are updated correctly.
|
||||
u := fmt.Sprintf("http://grafana:password@%s/api/ruler/grafana/api/v1/rules/default", grafanaListedAddr)
|
||||
|
Reference in New Issue
Block a user