diff --git a/pkg/registry/apis/folders/register.go b/pkg/registry/apis/folders/register.go index 9eeacb56e65..e33cf83dc1f 100644 --- a/pkg/registry/apis/folders/register.go +++ b/pkg/registry/apis/folders/register.go @@ -6,8 +6,6 @@ import ( "fmt" "strings" - "github.com/grafana/grafana/apps/iam/pkg/reconcilers" - "github.com/grafana/grafana/pkg/services/authz/zanzana" "github.com/prometheus/client_golang/prometheus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -19,7 +17,10 @@ import ( "k8s.io/kube-openapi/pkg/common" "k8s.io/kube-openapi/pkg/spec3" - authtypes "github.com/grafana/authlib/types" + "github.com/grafana/grafana/apps/iam/pkg/reconcilers" + "github.com/grafana/grafana/pkg/services/authz/zanzana" + + authlib "github.com/grafana/authlib/types" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" grafanaregistry "github.com/grafana/grafana/pkg/apiserver/registry/generic" @@ -45,7 +46,6 @@ var errNoResource = errors.New("resource name is required") // This is used just so wire has something unique to return type FolderAPIBuilder struct { - gv schema.GroupVersion features featuremgmt.FeatureToggles namespacer request.NamespaceMapper folderSvc folder.Service @@ -70,12 +70,12 @@ func RegisterAPIService(cfg *setting.Cfg, folderPermissionsSvc accesscontrol.FolderPermissionsService, accessControl accesscontrol.AccessControl, acService accesscontrol.Service, + accessClient authlib.AccessClient, registerer prometheus.Registerer, unified resource.ResourceClient, zanzanaClient zanzana.Client, ) *FolderAPIBuilder { builder := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), features: features, namespacer: request.GetNamespaceMapper(cfg), folderSvc: folderSvc, @@ -91,17 +91,15 @@ func RegisterAPIService(cfg *setting.Cfg, return builder } -func NewAPIService(ac authtypes.AccessClient) *FolderAPIBuilder { +func NewAPIService(ac authlib.AccessClient) *FolderAPIBuilder { return &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - namespacer: request.GetNamespaceMapper(nil), authorizer: newMultiTenantAuthorizer(ac), ignoreLegacy: true, } } func (b *FolderAPIBuilder) GetGroupVersion() schema.GroupVersion { - return b.gv + return resourceInfo.GroupVersion() } func addKnownTypes(scheme *runtime.Scheme, gv schema.GroupVersion) { @@ -115,13 +113,14 @@ func addKnownTypes(scheme *runtime.Scheme, gv schema.GroupVersion) { } func (b *FolderAPIBuilder) InstallSchema(scheme *runtime.Scheme) error { - addKnownTypes(scheme, b.gv) + gv := b.GetGroupVersion() + addKnownTypes(scheme, gv) // Link this version to the internal representation. // This is used for server-side-apply (PATCH), and avoids the error: // "no kind is registered for the type" addKnownTypes(scheme, schema.GroupVersion{ - Group: b.gv.Group, + Group: gv.Group, Version: runtime.APIVersionInternal, }) @@ -129,8 +128,8 @@ func (b *FolderAPIBuilder) InstallSchema(scheme *runtime.Scheme) error { // if err := playlist.RegisterConversions(scheme); err != nil { // return err // } - metav1.AddToGroupVersion(scheme, b.gv) - return scheme.SetVersionPriority(b.gv) + metav1.AddToGroupVersion(scheme, gv) + return scheme.SetVersionPriority(gv) } func (b *FolderAPIBuilder) AllowedV0Alpha1Resources() []string { diff --git a/pkg/registry/apis/folders/register_test.go b/pkg/registry/apis/folders/register_test.go index 38fa74088fd..80e257d6cae 100644 --- a/pkg/registry/apis/folders/register_test.go +++ b/pkg/registry/apis/folders/register_test.go @@ -118,8 +118,6 @@ func TestFolderAPIBuilder_Validate_Create(t *testing.T) { us := grafanarest.NewMockStorage(t) b := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - features: nil, namespacer: func(_ int64) string { return "123" }, folderSvc: foldertest.NewFakeService(), storage: us, @@ -194,8 +192,6 @@ func TestFolderAPIBuilder_Validate_Delete(t *testing.T) { ).Once() b := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - features: nil, namespacer: func(_ int64) string { return "123" }, folderSvc: foldertest.NewFakeService(), storage: us, @@ -365,8 +361,6 @@ func TestFolderAPIBuilder_Validate_Update(t *testing.T) { } b := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - features: nil, namespacer: func(_ int64) string { return "123" }, folderSvc: foldertest.NewFakeService(), storage: us, @@ -461,8 +455,6 @@ func TestFolderAPIBuilder_Mutate_Create(t *testing.T) { us := grafanarest.NewMockStorage(t) sm := resource.NewMockResourceClient(t) b := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - features: nil, namespacer: func(_ int64) string { return "123" }, folderSvc: foldertest.NewFakeService(), storage: us, @@ -569,8 +561,6 @@ func TestFolderAPIBuilder_Mutate_Update(t *testing.T) { us := grafanarest.NewMockStorage(t) sm := resource.NewMockResourceClient(t) b := &FolderAPIBuilder{ - gv: resourceInfo.GroupVersion(), - features: nil, namespacer: func(_ int64) string { return "123" }, folderSvc: foldertest.NewFakeService(), storage: us, diff --git a/pkg/server/wire_gen.go b/pkg/server/wire_gen.go index 1002aadbfb8..68703e03a4e 100644 --- a/pkg/server/wire_gen.go +++ b/pkg/server/wire_gen.go @@ -801,7 +801,7 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api if err != nil { return nil, err } - folderAPIBuilder := folders.RegisterAPIService(cfg, featureToggles, apiserverService, folderimplService, folderPermissionsService, accessControl, acimplService, registerer, resourceClient, zanzanaClient) + folderAPIBuilder := folders.RegisterAPIService(cfg, featureToggles, apiserverService, folderimplService, folderPermissionsService, accessControl, acimplService, accessClient, registerer, resourceClient, zanzanaClient) storageBackendImpl := noopstorage.ProvideStorageBackend() identityAccessManagementAPIBuilder, err := iam.RegisterAPIService(featureToggles, apiserverService, ssosettingsimplService, sqlStore, accessControl, accessClient, registerer, storageBackendImpl, storageBackendImpl) if err != nil { @@ -1389,7 +1389,7 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac if err != nil { return nil, err } - folderAPIBuilder := folders.RegisterAPIService(cfg, featureToggles, apiserverService, folderimplService, folderPermissionsService, accessControl, acimplService, registerer, resourceClient, zanzanaClient) + folderAPIBuilder := folders.RegisterAPIService(cfg, featureToggles, apiserverService, folderimplService, folderPermissionsService, accessControl, acimplService, accessClient, registerer, resourceClient, zanzanaClient) storageBackendImpl := noopstorage.ProvideStorageBackend() identityAccessManagementAPIBuilder, err := iam.RegisterAPIService(featureToggles, apiserverService, ssosettingsimplService, sqlStore, accessControl, accessClient, registerer, storageBackendImpl, storageBackendImpl) if err != nil {