mirror of
				https://github.com/grafana/grafana.git
				synced 2025-02-25 18:55:37 -06:00 
			
		
		
		
	return 400 if user input error
This commit is contained in:
		@@ -17,6 +17,7 @@ import (
 | 
			
		||||
	"golang.org/x/sync/errgroup"
 | 
			
		||||
 | 
			
		||||
	"github.com/aws/aws-sdk-go/aws"
 | 
			
		||||
	"github.com/aws/aws-sdk-go/aws/awserr"
 | 
			
		||||
	"github.com/aws/aws-sdk-go/aws/request"
 | 
			
		||||
	"github.com/aws/aws-sdk-go/service/cloudwatch"
 | 
			
		||||
	"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
 | 
			
		||||
@@ -100,7 +101,10 @@ func (e *CloudWatchExecutor) executeTimeSeriesQuery(ctx context.Context, queryCo
 | 
			
		||||
 | 
			
		||||
		query, err := parseQuery(queryContext.Queries[i].Model)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
			result.Results[query.RefId] = &tsdb.QueryResult{
 | 
			
		||||
				Error: err,
 | 
			
		||||
			}
 | 
			
		||||
			return result, nil
 | 
			
		||||
		}
 | 
			
		||||
		query.RefId = queryContext.Queries[i].RefId
 | 
			
		||||
 | 
			
		||||
@@ -113,15 +117,21 @@ func (e *CloudWatchExecutor) executeTimeSeriesQuery(ctx context.Context, queryCo
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if query.Id == "" && query.Expression != "" {
 | 
			
		||||
			return nil, fmt.Errorf("Invalid query: id should be set if using expression")
 | 
			
		||||
			result.Results[query.RefId] = &tsdb.QueryResult{
 | 
			
		||||
				Error: fmt.Errorf("Invalid query: id should be set if using expression"),
 | 
			
		||||
			}
 | 
			
		||||
			return result, nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		eg.Go(func() error {
 | 
			
		||||
			queryRes, err := e.executeQuery(ectx, query, queryContext)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
			if ae, ok := err.(awserr.Error); ok && ae.Code() == "500" {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			result.Results[queryRes.RefId] = queryRes
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				result.Results[queryRes.RefId].Error = err
 | 
			
		||||
			}
 | 
			
		||||
			return nil
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
@@ -131,11 +141,14 @@ func (e *CloudWatchExecutor) executeTimeSeriesQuery(ctx context.Context, queryCo
 | 
			
		||||
			q := getMetricDataQuery
 | 
			
		||||
			eg.Go(func() error {
 | 
			
		||||
				queryResponses, err := e.executeGetMetricDataQuery(ectx, region, q, queryContext)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
				if ae, ok := err.(awserr.Error); ok && ae.Code() == "500" {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
				for _, queryRes := range queryResponses {
 | 
			
		||||
					result.Results[queryRes.RefId] = queryRes
 | 
			
		||||
					if err != nil {
 | 
			
		||||
						result.Results[queryRes.RefId].Error = err
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				return nil
 | 
			
		||||
			})
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user