datasources: querier: handle the grafana-ds (#103980)
* datasources: querier: handle the grafana-ds * updated dependencies
This commit is contained in:
@@ -3,6 +3,7 @@ package query
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
@@ -200,6 +201,59 @@ func TestSqlInputs(t *testing.T) {
|
||||
require.Equal(t, parsedRequestInfo.SqlInputs["B"], struct{}{})
|
||||
}
|
||||
|
||||
func TestGrafanaDS(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
parser := newQueryParser(expr.NewExpressionQueryReader(featuremgmt.WithFeatures()),
|
||||
&noLegacyRetriever{}, tracing.InitializeTracerForTest(), log.NewNopLogger())
|
||||
|
||||
t.Run("grafana ds without type", func(t *testing.T) {
|
||||
parsed, err := parser.parseRequest(ctx, &query.QueryDataRequest{
|
||||
QueryDataRequest: data.QueryDataRequest{
|
||||
Queries: []data.DataQuery{{
|
||||
CommonQueryProperties: data.CommonQueryProperties{
|
||||
RefID: "A",
|
||||
Datasource: &data.DataSourceRef{
|
||||
UID: "grafana",
|
||||
},
|
||||
},
|
||||
}},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, parsed.Requests, 1)
|
||||
require.Equal(t, "grafana", parsed.Requests[0].PluginId)
|
||||
require.Equal(t, "grafana", parsed.Requests[0].UID)
|
||||
})
|
||||
|
||||
t.Run("grafana ds with different type", func(t *testing.T) {
|
||||
parsed, err := parser.parseRequest(ctx, &query.QueryDataRequest{
|
||||
QueryDataRequest: data.QueryDataRequest{
|
||||
Queries: []data.DataQuery{{
|
||||
CommonQueryProperties: data.CommonQueryProperties{
|
||||
RefID: "A",
|
||||
Datasource: &data.DataSourceRef{
|
||||
UID: "grafana",
|
||||
Type: "datasource",
|
||||
},
|
||||
},
|
||||
}},
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, parsed.Requests, 1)
|
||||
require.Equal(t, "grafana", parsed.Requests[0].PluginId)
|
||||
require.Equal(t, "grafana", parsed.Requests[0].UID)
|
||||
})
|
||||
}
|
||||
|
||||
type noLegacyRetriever struct{}
|
||||
|
||||
var errNoLegacy = errors.New("legacy dds retriever reached, it should not")
|
||||
|
||||
func (s *noLegacyRetriever) GetDataSourceFromDeprecatedFields(ctx context.Context, name string, id int64) (*data.DataSourceRef, error) {
|
||||
return nil, errNoLegacy
|
||||
}
|
||||
|
||||
type legacyDataSourceRetriever struct{}
|
||||
|
||||
func (s *legacyDataSourceRetriever) GetDataSourceFromDeprecatedFields(ctx context.Context, name string, id int64) (*data.DataSourceRef, error) {
|
||||
|
||||
Reference in New Issue
Block a user