53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
|
|
query "github.com/grafana/grafana/pkg/apis/query/v0alpha1"
|
|
)
|
|
|
|
type testdataDummy struct{}
|
|
|
|
var _ query.DataSourceApiServerRegistry = (*testdataDummy)(nil)
|
|
|
|
// NewTestDataRegistry returns a registry that only knows about testdata
|
|
func NewTestDataRegistry() query.DataSourceApiServerRegistry {
|
|
return &testdataDummy{}
|
|
}
|
|
|
|
// 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
|
|
}
|