in prometheus/handlers/handlers.go [276:295]
func decodeBulkRulesPostRequest(c echo.Context) ([]rulefmt.Rule, error) {
body, err := ioutil.ReadAll(c.Request().Body)
if err != nil {
glog.Errorf("Error reading bulk rules payload: %v", err)
return []rulefmt.Rule{}, fmt.Errorf("error reading request body: %v", err)
}
var payload []rulefmt.Rule
err = json.Unmarshal(body, &payload)
if err == nil {
return payload, nil
}
// Try to unmarshal into the RuleJSONWrapper struct if prometheus struct doesn't work
jsonPayload := []alert.RuleJSONWrapper{}
err = json.Unmarshal(body, &jsonPayload)
if err != nil {
glog.Errorf("Error unmarshaling bulk rules: %v", err)
return []rulefmt.Rule{}, fmt.Errorf("error unmarshalling payload: %v", err)
}
return rulesFromJSON(jsonPayload)
}