move eval_conditions to API models package (#51447)

This commit is contained in:
Yuriy Tseretyan 2022-06-27 11:52:41 -04:00 committed by GitHub
parent 99f921cf32
commit 78c012df65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 12 deletions

View File

@ -43,7 +43,7 @@ func TestRouteTestGrafanaRuleConfig(t *testing.T) {
response := srv.RouteTestGrafanaRuleConfig(rc, definitions.TestRulePayload{
Expr: "",
GrafanaManagedCondition: &models.EvalAlertConditionCommand{
GrafanaManagedCondition: &definitions.EvalAlertConditionCommand{
Condition: data1.RefID,
Data: []models.AlertQuery{data1, data2},
Now: time.Time{},
@ -75,7 +75,7 @@ func TestRouteTestGrafanaRuleConfig(t *testing.T) {
response := srv.RouteTestGrafanaRuleConfig(rc, definitions.TestRulePayload{
Expr: "",
GrafanaManagedCondition: &models.EvalAlertConditionCommand{
GrafanaManagedCondition: &definitions.EvalAlertConditionCommand{
Condition: data1.RefID,
Data: []models.AlertQuery{data1, data2},
Now: time.Time{},
@ -115,7 +115,7 @@ func TestRouteTestGrafanaRuleConfig(t *testing.T) {
response := srv.RouteTestGrafanaRuleConfig(rc, definitions.TestRulePayload{
Expr: "",
GrafanaManagedCondition: &models.EvalAlertConditionCommand{
GrafanaManagedCondition: &definitions.EvalAlertConditionCommand{
Condition: data1.RefID,
Data: []models.AlertQuery{data1},
Now: time.Time{},
@ -129,7 +129,7 @@ func TestRouteTestGrafanaRuleConfig(t *testing.T) {
response = srv.RouteTestGrafanaRuleConfig(rc, definitions.TestRulePayload{
Expr: "",
GrafanaManagedCondition: &models.EvalAlertConditionCommand{
GrafanaManagedCondition: &definitions.EvalAlertConditionCommand{
Condition: data1.RefID,
Data: []models.AlertQuery{data1},
Now: time.Time{},

View File

@ -1,16 +1,18 @@
package models
package definitions
import (
"encoding/json"
"fmt"
"time"
"github.com/grafana/grafana/pkg/services/ngalert/models"
)
// EvalAlertConditionCommand is the command for evaluating a condition
type EvalAlertConditionCommand struct {
Condition string `json:"condition"`
Data []AlertQuery `json:"data"`
Now time.Time `json:"now"`
Condition string `json:"condition"`
Data []models.AlertQuery `json:"data"` // TODO yuri. Create API model for AlertQuery
Now time.Time `json:"now"`
}
func (cmd *EvalAlertConditionCommand) UnmarshalJSON(b []byte) error {

View File

@ -69,7 +69,7 @@ type TestRulePayload struct {
// Example: (node_filesystem_avail_bytes{fstype!="",job="integrations/node_exporter"} node_filesystem_size_bytes{fstype!="",job="integrations/node_exporter"} * 100 < 5 and node_filesystem_readonly{fstype!="",job="integrations/node_exporter"} == 0)
Expr string `json:"expr,omitempty"`
// GrafanaManagedCondition for grafana alerts
GrafanaManagedCondition *models.EvalAlertConditionCommand `json:"grafana_condition,omitempty"`
GrafanaManagedCondition *EvalAlertConditionCommand `json:"grafana_condition,omitempty"`
}
// swagger:parameters RouteEvalQueries

View File

@ -4,8 +4,9 @@ import (
"encoding/json"
"testing"
"github.com/grafana/grafana/pkg/services/ngalert/models"
"github.com/stretchr/testify/require"
"github.com/grafana/grafana/pkg/services/ngalert/models"
)
func TestRulePayloadMarshaling(t *testing.T) {
@ -30,7 +31,7 @@ func TestRulePayloadMarshaling(t *testing.T) {
data.Model = raw
return TestRulePayload{
GrafanaManagedCondition: &models.EvalAlertConditionCommand{
GrafanaManagedCondition: &EvalAlertConditionCommand{
Condition: "placeholder",
Data: []models.AlertQuery{data},
},
@ -41,7 +42,7 @@ func TestRulePayloadMarshaling(t *testing.T) {
desc: "failure mixed",
input: TestRulePayload{
Expr: "rate({cluster=\"us-central1\", job=\"loki-prod/loki-canary\"}[1m]) > 0",
GrafanaManagedCondition: &models.EvalAlertConditionCommand{},
GrafanaManagedCondition: &EvalAlertConditionCommand{},
},
err: true,
},