Alerting: Use default identifier for extra configs in Alertmanager API (#107049)
This commit is contained in:
@@ -56,7 +56,8 @@ const (
|
||||
mergeMatchersHeader = "X-Grafana-Alerting-Merge-Matchers"
|
||||
|
||||
// configIdentifierHeader is the header that specifies the identifier for imported Alertmanager config.
|
||||
configIdentifierHeader = "X-Grafana-Alerting-Config-Identifier"
|
||||
configIdentifierHeader = "X-Grafana-Alerting-Config-Identifier"
|
||||
defaultConfigIdentifier = "default"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -539,11 +540,7 @@ func (srv *ConvertPrometheusSrv) RouteConvertPrometheusPostAlertmanagerConfig(c
|
||||
|
||||
logger := srv.logger.FromContext(c.Req.Context())
|
||||
|
||||
identifier, err := parseConfigIdentifierHeader(c)
|
||||
if err != nil {
|
||||
logger.Error("Failed to parse config identifier header", "error", err, "identifier", identifier)
|
||||
return errorToResponse(err)
|
||||
}
|
||||
identifier := parseConfigIdentifierHeader(c)
|
||||
|
||||
mergeMatchers, err := parseMergeMatchersHeader(c)
|
||||
if err != nil {
|
||||
@@ -581,11 +578,7 @@ func (srv *ConvertPrometheusSrv) RouteConvertPrometheusGetAlertmanagerConfig(c *
|
||||
logger := srv.logger.FromContext(c.Req.Context())
|
||||
ctx := c.Req.Context()
|
||||
|
||||
identifier, err := parseConfigIdentifierHeader(c)
|
||||
if err != nil {
|
||||
logger.Error("failed to parse config identifier header", "err", err)
|
||||
return errorToResponse(err)
|
||||
}
|
||||
identifier := parseConfigIdentifierHeader(c)
|
||||
|
||||
cfg, err := srv.am.GetAlertmanagerConfiguration(ctx, c.GetOrgID(), false)
|
||||
if err != nil {
|
||||
@@ -629,13 +622,9 @@ func (srv *ConvertPrometheusSrv) RouteConvertPrometheusDeleteAlertmanagerConfig(
|
||||
|
||||
logger := srv.logger.FromContext(c.Req.Context())
|
||||
|
||||
identifier, err := parseConfigIdentifierHeader(c)
|
||||
if err != nil {
|
||||
logger.Error("Failed to parse config identifier header", "error", err)
|
||||
return errorToResponse(err)
|
||||
}
|
||||
identifier := parseConfigIdentifierHeader(c)
|
||||
|
||||
err = srv.am.DeleteExtraConfiguration(c.Req.Context(), c.GetOrgID(), identifier)
|
||||
err := srv.am.DeleteExtraConfiguration(c.Req.Context(), c.GetOrgID(), identifier)
|
||||
if err != nil {
|
||||
logger.Error("Failed to delete alertmanager configuration", "error", err, "identifier", identifier)
|
||||
return errorToResponse(fmt.Errorf("failed to delete alertmanager configuration: %w", err))
|
||||
@@ -812,10 +801,10 @@ func formatMergeMatchers(matchers amconfig.Matchers) string {
|
||||
return strings.Join(pairs, ",")
|
||||
}
|
||||
|
||||
func parseConfigIdentifierHeader(c *contextmodel.ReqContext) (string, error) {
|
||||
func parseConfigIdentifierHeader(c *contextmodel.ReqContext) string {
|
||||
identifier := strings.TrimSpace(c.Req.Header.Get(configIdentifierHeader))
|
||||
if identifier == "" {
|
||||
return "", errInvalidHeaderValue(configIdentifierHeader, errors.New("identifier cannot be empty"))
|
||||
return defaultConfigIdentifier
|
||||
}
|
||||
return identifier, nil
|
||||
return identifier
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user