func GetDeleteAlertHandler()

in prometheus/handlers/handlers.go [158:178]


func GetDeleteAlertHandler(client alert.PrometheusAlertClient, getRuleName paramProvider) func(c echo.Context) error {
	return func(c echo.Context) error {
		defer glog.Flush()
		ruleName := getRuleName(c)
		tenantID := c.Get(tenantIDParam).(string)
		glog.Infof("Delete Rule: Tenant: %s, rule: %+v", tenantID, ruleName)

		if ruleName == "" {
			return echo.NewHTTPError(http.StatusBadRequest, "No rule name provided")
		}
		err := client.DeleteRule(tenantID, ruleName)
		if err != nil {
			return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
		}
		err = client.ReloadPrometheus()
		if err != nil {
			return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
		}
		return c.String(http.StatusNoContent, fmt.Sprintf("rule %s deleted", ruleName))
	}
}