[v9.4.x] Plugins: Prefer to use the data source UID when querying (#62789)
Plugins: Prefer to use the data source UID when querying (#62776)
(cherry picked from commit 68862ce3e8)
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
This commit is contained in:
co-authored by
Andres Martinez Gotor
parent
022abcb47d
commit
190c3aad58
@@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
@@ -380,6 +381,33 @@ func TestQueryDataMultipleSources(t *testing.T) {
|
||||
// Responses aren't mocked, so a "healthy" query will just return an empty response
|
||||
require.NotContains(t, res.Responses, "A")
|
||||
})
|
||||
|
||||
t.Run("ignores a deprecated datasourceID", func(t *testing.T) {
|
||||
tc := setup(t)
|
||||
query1, err := simplejson.NewJson([]byte(`
|
||||
{
|
||||
"datasource": {
|
||||
"type": "mysql",
|
||||
"uid": "ds1"
|
||||
},
|
||||
"datasourceId": 1,
|
||||
"refId": "A"
|
||||
}
|
||||
`))
|
||||
require.NoError(t, err)
|
||||
queries := []*simplejson.Json{query1}
|
||||
reqDTO := dtos.MetricRequest{
|
||||
From: "2022-01-01",
|
||||
To: "2022-01-02",
|
||||
Queries: queries,
|
||||
Debug: false,
|
||||
PublicDashboardAccessToken: "abc123",
|
||||
}
|
||||
|
||||
_, err = tc.queryService.QueryData(context.Background(), tc.signedInUser, true, reqDTO)
|
||||
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func setup(t *testing.T) *testContext {
|
||||
@@ -449,7 +477,8 @@ type fakeDataSourceCache struct {
|
||||
}
|
||||
|
||||
func (c *fakeDataSourceCache) GetDatasource(ctx context.Context, datasourceID int64, user *user.SignedInUser, skipCache bool) (*datasources.DataSource, error) {
|
||||
return c.ds, nil
|
||||
// deprecated: fake an error to ensure we are using GetDatasourceByUID
|
||||
return nil, fmt.Errorf("not found")
|
||||
}
|
||||
|
||||
func (c *fakeDataSourceCache) GetDatasourceByUID(ctx context.Context, datasourceUID string, user *user.SignedInUser, skipCache bool) (*datasources.DataSource, error) {
|
||||
|
||||
Reference in New Issue
Block a user