Alerting: Fix time-interval conversion to return bad request if payload is incorrect (#94995)

This commit is contained in:
Yuri Tseretyan
2024-10-18 13:16:03 -04:00
committed by GitHub
parent 672d5f92f2
commit 00bb3215cb
2 changed files with 54 additions and 2 deletions
@@ -11,6 +11,7 @@ import (
"github.com/grafana/grafana/pkg/services/apiserver/endpoints/request"
"github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
ngmodels "github.com/grafana/grafana/pkg/services/ngalert/models"
"github.com/grafana/grafana/pkg/services/ngalert/provisioning"
)
func convertToK8sResources(orgID int64, intervals []definitions.MuteTimeInterval, namespacer request.NamespaceMapper, selector fields.Selector) (*model.TimeIntervalList, error) {
@@ -74,14 +75,14 @@ func convertToDomainModel(interval *model.TimeInterval) (definitions.MuteTimeInt
result := definitions.MuteTimeInterval{}
err = json.Unmarshal(b, &result)
if err != nil {
return definitions.MuteTimeInterval{}, err
return definitions.MuteTimeInterval{}, provisioning.MakeErrTimeIntervalInvalid(err)
}
result.Version = interval.ResourceVersion
result.UID = interval.ObjectMeta.Name
result.Provenance = definitions.Provenance(ngmodels.ProvenanceNone)
err = result.Validate()
if err != nil {
return definitions.MuteTimeInterval{}, err
return definitions.MuteTimeInterval{}, provisioning.MakeErrTimeIntervalInvalid(err)
}
return result, nil
}