From 1d218d01b2895f95d82b1c242dcd5b26e29b53de Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Thu, 19 Jun 2025 20:19:48 +0300 Subject: [PATCH] wire up dual writer --- pkg/apis/datasource/v0alpha1/register.go | 2 +- pkg/registry/apis/datasource/register.go | 25 ++++++++++++------------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/pkg/apis/datasource/v0alpha1/register.go b/pkg/apis/datasource/v0alpha1/register.go index 103f14de07f..9fd5158d358 100644 --- a/pkg/apis/datasource/v0alpha1/register.go +++ b/pkg/apis/datasource/v0alpha1/register.go @@ -16,7 +16,7 @@ const ( ) var GenericDataSourceResourceInfo = utils.NewResourceInfo(GROUP, VERSION, - "datasoruce", "datasoruce", "DataSource", + "datasource", "datasource", "DataSource", func() runtime.Object { return &GenericDataSource{} }, func() runtime.Object { return &GenericDataSourceList{} }, utils.TableColumns{ diff --git a/pkg/registry/apis/datasource/register.go b/pkg/registry/apis/datasource/register.go index cbe742a9dfc..bdba911446d 100644 --- a/pkg/registry/apis/datasource/register.go +++ b/pkg/registry/apis/datasource/register.go @@ -20,6 +20,7 @@ import ( "github.com/grafana/grafana/pkg/apimachinery/utils" datasource "github.com/grafana/grafana/pkg/apis/datasource/v0alpha1" query "github.com/grafana/grafana/pkg/apis/query/v0alpha1" + grafanaregistry "github.com/grafana/grafana/pkg/apiserver/registry/generic" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/promlib/models" @@ -203,24 +204,22 @@ func (b *DataSourceAPIBuilder) InstallSchema(scheme *runtime.Scheme) error { func (b *DataSourceAPIBuilder) UpdateAPIGroupInfo(apiGroupInfo *genericapiserver.APIGroupInfo, opts builder.APIGroupOptions) error { storage := map[string]rest.Storage{} + // Register the raw datasource connection ds := b.datasourceResourceInfo legacyStore := &legacyStorage{ datasources: b.datasources, resourceInfo: &ds, } - storage[ds.StoragePath()] = legacyStore - - // if false { - // unified, err := grafanaregistry.NewRegistryStore(opts.Scheme, ds, opts.OptsGetter) - // if err != nil { - // return err - // } - // storage[ds.StoragePath()], err = opts.DualWriteBuilder(ds.GroupResource(), legacyStore, unified) - // if err != nil { - // return err - // } - // } + unified, err := grafanaregistry.NewRegistryStore(opts.Scheme, ds, opts.OptsGetter) + if err != nil { + return err + } + storage[ds.StoragePath()], err = opts.DualWriteBuilder(ds.GroupResource(), legacyStore, unified) + if err != nil { + return err + } + // Register the "connection" view for a datasource (no access to raw settings) conn := b.connectionResourceInfo storage[conn.StoragePath()] = &connectionAccess{ datasources: b.datasources, @@ -239,7 +238,7 @@ func (b *DataSourceAPIBuilder) UpdateAPIGroupInfo(apiGroupInfo *genericapiserver } // Register hardcoded query schemas - err := queryschema.RegisterQueryTypes(b.queryTypes, storage) + err = queryschema.RegisterQueryTypes(b.queryTypes, storage) if err != nil { return err }