Files
Marcus Efraimsson 2403665998 Chore: Remove legacydata package (#88790)
* Chore: Remove legacydata package

* remove unused dependency

* sdk v0.234.0
2024-06-05 22:31:06 +02:00

75 lines
2.3 KiB
Go

package client
import (
"context"
"fmt"
"net/http"
"time"
"github.com/grafana/grafana-plugin-sdk-go/backend"
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
query "github.com/grafana/grafana/pkg/apis/query/v0alpha1"
testdata "github.com/grafana/grafana/pkg/tsdb/grafana-testdata-datasource"
)
type testdataDummy struct{}
var _ data.QueryDataClient = (*testdataDummy)(nil)
var _ query.DataSourceApiServerRegistry = (*testdataDummy)(nil)
// NewTestDataClient creates a runner that only works with testdata
func NewTestDataClient() data.QueryDataClient {
return &testdataDummy{}
}
// NewTestDataRegistry returns a registry that only knows about testdata
func NewTestDataRegistry() query.DataSourceApiServerRegistry {
return &testdataDummy{}
}
// ExecuteQueryData implements QueryHelper.
func (d *testdataDummy) QueryData(ctx context.Context, req data.QueryDataRequest) (int, *backend.QueryDataResponse, error) {
queries, _, err := data.ToDataSourceQueries(req)
if err != nil {
return http.StatusBadRequest, nil, err
}
qdr := &backend.QueryDataRequest{Queries: queries}
rsp, err := testdata.ProvideService().QueryData(ctx, qdr)
return query.GetResponseCode(rsp), rsp, err
}
// GetDatasourceAPI implements DataSourceRegistry.
func (*testdataDummy) GetDatasourceGroupVersion(pluginId string) (schema.GroupVersion, error) {
if pluginId == "testdata" || pluginId == "grafana-testdata-datasource" {
return schema.GroupVersion{
Group: "testdata.datasource.grafana.app",
Version: "v0alpha1",
}, nil
}
return schema.GroupVersion{}, fmt.Errorf("unsupported plugin (only testdata for now)")
}
// GetDatasourcePlugins implements QueryHelper.
func (d *testdataDummy) GetDatasourceApiServers(ctx context.Context) (*query.DataSourceApiServerList, error) {
return &query.DataSourceApiServerList{
ListMeta: metav1.ListMeta{
ResourceVersion: fmt.Sprintf("%d", time.Now().UnixMilli()),
},
Items: []query.DataSourceApiServer{
{
ObjectMeta: metav1.ObjectMeta{
Name: "grafana-testdata-datasource",
CreationTimestamp: metav1.Now(),
},
Title: "Test Data",
GroupVersion: "testdata.datasource.grafana.app/v0alpha1",
AliasIDs: []string{"testdata"},
},
},
}, nil
}