mirror of https://github.com/grafana/grafana.git
datasources: querier: handle single-tenant instance config (#108469)
This commit is contained in:
parent
15f291aa8e
commit
8d48dbce66
|
|
@ -1,21 +0,0 @@
|
|||
package query
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/query/clientapi"
|
||||
)
|
||||
|
||||
type CommonDataSourceClientSupplier struct {
|
||||
Client clientapi.QueryDataClient
|
||||
}
|
||||
|
||||
func (s *CommonDataSourceClientSupplier) GetDataSourceClient(_ context.Context, _ data.DataSourceRef, _ map[string]string, _ clientapi.InstanceConfigurationSettings) (clientapi.QueryDataClient, error) {
|
||||
return s.Client, nil
|
||||
}
|
||||
|
||||
func (s *CommonDataSourceClientSupplier) GetInstanceConfigurationSettings(_ context.Context) (clientapi.InstanceConfigurationSettings, error) {
|
||||
// FIXME: for now it's an empty structure, we'll find a way to fill it correctly.
|
||||
return clientapi.InstanceConfigurationSettings{}, nil
|
||||
}
|
||||
|
|
@ -64,7 +64,7 @@ var k8sNotFoundError error = &apierrors.StatusError{
|
|||
}
|
||||
|
||||
// NewQueryClientForPluginClient creates a client that delegates to the internal plugins.Client stack
|
||||
func NewQueryClientForPluginClient(p plugins.Client, ctx *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.QueryDataClient {
|
||||
func newQueryClientForPluginClient(p plugins.Client, ctx *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.QueryDataClient {
|
||||
return &pluginClient{
|
||||
pluginClient: p,
|
||||
pCtxProvider: ctx,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/query/clientapi"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
type singleTenantClientSupplier struct {
|
||||
client clientapi.QueryDataClient
|
||||
features featuremgmt.FeatureToggles
|
||||
cfg *setting.Cfg
|
||||
}
|
||||
|
||||
func NewSingleTenantClientSupplier(cfg *setting.Cfg, features featuremgmt.FeatureToggles, p plugins.Client, ctxProv *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.DataSourceClientSupplier {
|
||||
return &singleTenantClientSupplier{
|
||||
cfg: cfg,
|
||||
features: features,
|
||||
client: newQueryClientForPluginClient(p, ctxProv, accessControl),
|
||||
}
|
||||
}
|
||||
|
||||
func (s *singleTenantClientSupplier) GetDataSourceClient(_ context.Context, _ data.DataSourceRef, _ map[string]string, _ clientapi.InstanceConfigurationSettings) (clientapi.QueryDataClient, error) {
|
||||
return s.client, nil
|
||||
}
|
||||
|
||||
func (s *singleTenantClientSupplier) GetInstanceConfigurationSettings(ctx context.Context) (clientapi.InstanceConfigurationSettings, error) {
|
||||
return clientapi.InstanceConfigurationSettings{
|
||||
StackID: 0,
|
||||
FeatureToggles: s.features,
|
||||
FullConfig: nil,
|
||||
Options: nil,
|
||||
SQLExpressionCellLimit: s.cfg.SQLExpressionCellLimit,
|
||||
SQLExpressionOutputCellLimit: s.cfg.SQLExpressionOutputCellLimit,
|
||||
SQLExpressionTimeout: s.cfg.SQLExpressionTimeout,
|
||||
ExpressionsEnabled: s.cfg.ExpressionsEnabled,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -31,6 +31,7 @@ import (
|
|||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
var _ builder.APIGroupBuilder = (*QueryAPIBuilder)(nil)
|
||||
|
|
@ -93,7 +94,9 @@ func NewQueryAPIBuilder(
|
|||
}, nil
|
||||
}
|
||||
|
||||
func RegisterAPIService(features featuremgmt.FeatureToggles,
|
||||
func RegisterAPIService(
|
||||
cfg *setting.Cfg,
|
||||
features featuremgmt.FeatureToggles,
|
||||
apiregistration builder.APIRegistrar,
|
||||
dataSourcesService datasources.DataSourceService,
|
||||
pluginStore pluginstore.Store,
|
||||
|
|
@ -126,9 +129,7 @@ func RegisterAPIService(features featuremgmt.FeatureToggles,
|
|||
|
||||
builder, err := NewQueryAPIBuilder(
|
||||
features,
|
||||
&CommonDataSourceClientSupplier{
|
||||
Client: client.NewQueryClientForPluginClient(pluginClient, pCtxProvider, accessControl),
|
||||
},
|
||||
client.NewSingleTenantClientSupplier(cfg, features, pluginClient, pCtxProvider, accessControl),
|
||||
ar,
|
||||
client.NewDataSourceRegistryFromStore(pluginStore, dataSourcesService),
|
||||
registerer,
|
||||
|
|
|
|||
|
|
@ -740,7 +740,7 @@ func Initialize(cfg *setting.Cfg, opts Options, apiOpts api.ServerOptions) (*Ser
|
|||
return nil, err
|
||||
}
|
||||
legacyDataSourceLookup := service7.ProvideLegacyDataSourceLookup(service15)
|
||||
queryAPIBuilder, err := query2.RegisterAPIService(featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
|
||||
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -1298,7 +1298,7 @@ func InitializeForTest(t sqlutil.ITestDB, testingT interface {
|
|||
return nil, err
|
||||
}
|
||||
legacyDataSourceLookup := service7.ProvideLegacyDataSourceLookup(service15)
|
||||
queryAPIBuilder, err := query2.RegisterAPIService(featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
|
||||
queryAPIBuilder, err := query2.RegisterAPIService(cfg, featureToggles, apiserverService, service15, pluginstoreService, accessControl, middlewareHandler, plugincontextProvider, registerer, tracingService, legacyDataSourceLookup, exprService)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue