CloudWatch: returnData should default to true (#52759)

This commit is contained in:
Isabella Siu 2022-07-27 08:45:59 -04:00 committed by GitHub
parent 7825ad6aa3
commit 542b4f2431
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 9 deletions

View File

@ -73,6 +73,11 @@ const (
alertMaxAttempts = 8
alertPollPeriod = 1000 * time.Millisecond
logsQueryMode = "Logs"
// QueryTypes
annotationQuery = "annotationQuery"
logAction = "logAction"
timeSeriesQuery = "timeSeriesQuery"
)
var plog = log.New("tsdb.cloudwatch")
@ -356,15 +361,13 @@ func (e *cloudWatchExecutor) QueryData(ctx context.Context, req *backend.QueryDa
return e.executeLogAlertQuery(ctx, req)
}
queryType := model.QueryType
var result *backend.QueryDataResponse
switch queryType {
case "annotationQuery":
switch model.QueryType {
case annotationQuery:
result, err = e.executeAnnotationQuery(req.PluginContext, model, q)
case "logAction":
case logAction:
result, err = e.executeLogActions(ctx, req)
case "timeSeriesQuery":
case timeSeriesQuery:
fallthrough
default:
result, err = e.executeTimeSeriesQuery(ctx, req)

View File

@ -37,7 +37,7 @@ type QueryJson struct {
Statistic *string `json:"statistic,omitempty"`
Statistics []*string `json:"statistics,omitempty"`
TimezoneUTCOffset string `json:"timezoneUTCOffset,omitempty"`
QueryType string `json:"queryType,omitempty"`
QueryType string `json:"type,omitempty"`
Hide *bool `json:"hide,omitempty"`
Alias *string `json:"alias,omitempty"`
}
@ -58,7 +58,7 @@ func (e *cloudWatchExecutor) parseQueries(queries []backend.DataQuery, startTime
}
queryType := model.QueryType
if queryType != "timeSeriesQuery" && queryType != "" {
if queryType != timeSeriesQuery && queryType != "" {
continue
}
@ -166,7 +166,7 @@ func parseRequestQuery(model QueryJson, refId string, startTime time.Time, endTi
Label: "",
MatchExact: true,
Statistic: "",
ReturnData: false,
ReturnData: true,
UsedExpression: "",
RefId: refId,
Id: model.Id,

View File

@ -11,6 +11,16 @@ import (
"github.com/stretchr/testify/require"
)
func TestQueryJSON(t *testing.T) {
jsonString := []byte(`{
"type": "timeSeriesQuery"
}`)
var res QueryJson
err := json.Unmarshal(jsonString, &res)
require.NoError(t, err)
assert.Equal(t, "timeSeriesQuery", res.QueryType)
}
func TestRequestParser(t *testing.T) {
average := "Average"
false := false
@ -293,6 +303,34 @@ func TestRequestParser(t *testing.T) {
})
})
t.Run("hide and returnData", func(t *testing.T) {
t.Run("default", func(t *testing.T) {
query := getBaseJsonQuery()
query.QueryType = "timeSeriesQuery"
res, err := parseRequestQuery(query, "ref1", time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour))
require.NoError(t, err)
require.True(t, res.ReturnData)
})
t.Run("hide is true", func(t *testing.T) {
query := getBaseJsonQuery()
query.QueryType = "timeSeriesQuery"
true := true
query.Hide = &true
res, err := parseRequestQuery(query, "ref1", time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour))
require.NoError(t, err)
require.False(t, res.ReturnData)
})
t.Run("hide is false", func(t *testing.T) {
query := getBaseJsonQuery()
query.QueryType = "timeSeriesQuery"
false := false
query.Hide = &false
res, err := parseRequestQuery(query, "ref1", time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour))
require.NoError(t, err)
require.True(t, res.ReturnData)
})
})
t.Run("ID is the string `query` appended with refId if refId is a valid MetricData ID", func(t *testing.T) {
query := getBaseJsonQuery()
res, err := parseRequestQuery(query, "ref1", time.Now().Add(-2*time.Hour), time.Now().Add(-time.Hour))