Alerting: API to pause all alert rules in a folder (#104674)

This commit is contained in:
Alexander Akhmetov
2025-05-13 17:04:01 +02:00
committed by GitHub
parent 81d72bcfc7
commit 9fe523b9e6
14 changed files with 686 additions and 38 deletions
+32
View File
@@ -1280,6 +1280,38 @@ func (a apiClient) RawConvertPrometheusDeleteNamespace(t *testing.T, namespaceTi
return sendRequestJSON[apimodels.ConvertPrometheusResponse](t, req, http.StatusAccepted)
}
func (a apiClient) UpdateNamespaceRules(t *testing.T, folder string, body *apimodels.UpdateNamespaceRulesRequest) (apimodels.UpdateNamespaceRulesResponse, int, string) {
t.Helper()
client := &http.Client{}
buf := bytes.Buffer{}
enc := json.NewEncoder(&buf)
err := enc.Encode(body)
require.NoError(t, err)
u := fmt.Sprintf("%s/api/ruler/grafana/api/v1/rules/%s", a.url, folder)
req, err := http.NewRequest(http.MethodPatch, u, &buf)
req.Header.Set("Content-Type", "application/json")
if err != nil {
t.Fatalf("failed to create request: %v", err)
}
resp, err := client.Do(req)
require.NoError(t, err)
defer func() {
_ = resp.Body.Close()
}()
b, err := io.ReadAll(resp.Body)
require.NoError(t, err)
var m apimodels.UpdateNamespaceRulesResponse
if resp.StatusCode == http.StatusAccepted {
require.NoError(t, json.Unmarshal(b, &m))
}
return m, resp.StatusCode, string(b)
}
func sendRequestRaw(t *testing.T, req *http.Request) ([]byte, int, error) {
t.Helper()
client := &http.Client{}