Provisioning: Move provisioning extras to OSS extensions (#108167)
* Move provisioning extensions to OSS * Fix the wire stuff * Move it to extras packages * Add hack to assert test differently for enterprise
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package extras
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/webhooks"
|
||||
)
|
||||
|
||||
// HACK: This is a hack so that wire can uniquely identify dependencies
|
||||
func ProvideProvisioningOSSExtras(webhook webhooks.WebhookExtraBuilder) []provisioning.ExtraBuilder {
|
||||
return []provisioning.ExtraBuilder{
|
||||
webhook.ExtraBuilder,
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/registry/apis/ofrep"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/secrets"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/webhooks"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/query"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/secret"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/service"
|
||||
@@ -21,18 +20,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
|
||||
)
|
||||
|
||||
// HACK: This is a hack so that wire can uniquely identify dependencies
|
||||
func MergeProvisioningExtras(webhook webhooks.WebhookExtraBuilder) []provisioning.ExtraBuilder {
|
||||
return []provisioning.ExtraBuilder{
|
||||
webhook.ExtraBuilder,
|
||||
}
|
||||
}
|
||||
|
||||
var ProvisioningExtras = wire.NewSet(
|
||||
webhooks.ProvideWebhooks,
|
||||
MergeProvisioningExtras,
|
||||
)
|
||||
|
||||
// WireSetExts is a set of providers that can be overridden by enterprise implementations.
|
||||
var WireSetExts = wire.NewSet(
|
||||
noopstorage.ProvideStorageBackend,
|
||||
@@ -57,7 +44,6 @@ var WireSet = wire.NewSet(
|
||||
datasource.RegisterAPIService,
|
||||
folders.RegisterAPIService,
|
||||
iam.RegisterAPIService,
|
||||
ProvisioningExtras,
|
||||
secrets.ProvideRepositorySecrets,
|
||||
provisioning.RegisterAPIService,
|
||||
service.RegisterAPIService,
|
||||
|
||||
@@ -55,6 +55,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/registry/apis/iam/noopstorage"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/ofrep"
|
||||
provisioning2 "github.com/grafana/grafana/pkg/registry/apis/provisioning"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/extras"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/repository/github"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/secrets"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/webhooks"
|
||||
@@ -779,7 +780,7 @@ func Initialize(cfg *setting.Cfg, opts Options, apiOpts api.ServerOptions) (*Ser
|
||||
decryptService := decrypt.ProvideDecryptService(decryptStorage)
|
||||
repositorySecrets := secrets.ProvideRepositorySecrets(featureToggles, secretsService, secureValueService, decryptService)
|
||||
webhookExtraBuilder := webhooks.ProvideWebhooks(cfg, featureToggles, secretsService, secureValueService, decryptService, factory, renderingService, resourceClient, eventualRestConfigProvider)
|
||||
v2 := apiregistry.MergeProvisioningExtras(webhookExtraBuilder)
|
||||
v2 := extras.ProvideProvisioningOSSExtras(webhookExtraBuilder)
|
||||
apiBuilder, err := provisioning2.RegisterAPIService(cfg, featureToggles, apiserverService, registerer, resourceClient, eventualRestConfigProvider, factory, accessClient, legacyMigrator, dualwriteService, usageStats, repositorySecrets, tracingService, v2)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -1328,7 +1329,7 @@ func InitializeForTest(t sqlutil.ITestDB, testingT interface {
|
||||
decryptService := decrypt.ProvideDecryptService(decryptStorage)
|
||||
repositorySecrets := secrets.ProvideRepositorySecrets(featureToggles, secretsService, secureValueService, decryptService)
|
||||
webhookExtraBuilder := webhooks.ProvideWebhooks(cfg, featureToggles, secretsService, secureValueService, decryptService, factory, renderingService, resourceClient, eventualRestConfigProvider)
|
||||
v2 := apiregistry.MergeProvisioningExtras(webhookExtraBuilder)
|
||||
v2 := extras.ProvideProvisioningOSSExtras(webhookExtraBuilder)
|
||||
apiBuilder, err := provisioning2.RegisterAPIService(cfg, featureToggles, apiserverService, registerer, resourceClient, eventualRestConfigProvider, factory, accessClient, legacyMigrator, dualwriteService, usageStats, repositorySecrets, tracingService, v2)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -13,6 +13,8 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/manager"
|
||||
"github.com/grafana/grafana/pkg/registry"
|
||||
apisregistry "github.com/grafana/grafana/pkg/registry/apis"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/extras"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/provisioning/webhooks"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/secret/contracts"
|
||||
gsmKMSProviders "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/kmsproviders"
|
||||
"github.com/grafana/grafana/pkg/registry/apis/secret/secretkeeper"
|
||||
@@ -62,6 +64,11 @@ import (
|
||||
search2 "github.com/grafana/grafana/pkg/storage/unified/search"
|
||||
)
|
||||
|
||||
var provisioningExtras = wire.NewSet(
|
||||
webhooks.ProvideWebhooks,
|
||||
extras.ProvideProvisioningOSSExtras,
|
||||
)
|
||||
|
||||
var wireExtsBasicSet = wire.NewSet(
|
||||
authimpl.ProvideUserAuthTokenService,
|
||||
wire.Bind(new(auth.UserTokenService), new(*authimpl.UserAuthTokenService)),
|
||||
@@ -132,6 +139,7 @@ var wireExtsBasicSet = wire.NewSet(
|
||||
aggregatorrunner.ProvideNoopAggregatorConfigurator,
|
||||
apisregistry.WireSetExts,
|
||||
gsmKMSProviders.ProvideOSSKMSProviders,
|
||||
provisioningExtras,
|
||||
)
|
||||
|
||||
var wireExtsSet = wire.NewSet(
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/apimachinery/utils"
|
||||
provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1"
|
||||
"github.com/grafana/grafana/pkg/extensions"
|
||||
"github.com/grafana/grafana/pkg/infra/slugify"
|
||||
"github.com/grafana/grafana/pkg/infra/usagestats"
|
||||
"github.com/grafana/grafana/pkg/tests/apis"
|
||||
@@ -127,10 +128,22 @@ func TestIntegrationProvisioning_CreatingAndGetting(t *testing.T) {
|
||||
err := rsp.Into(settings)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, settings.Items, len(inputFiles))
|
||||
require.ElementsMatch(t, []provisioning.RepositoryType{
|
||||
provisioning.LocalRepositoryType,
|
||||
provisioning.GitHubRepositoryType,
|
||||
}, settings.AvailableRepositoryTypes)
|
||||
|
||||
// FIXME: this should be an enterprise integration test
|
||||
if extensions.IsEnterprise {
|
||||
require.ElementsMatch(t, []provisioning.RepositoryType{
|
||||
provisioning.LocalRepositoryType,
|
||||
provisioning.GitHubRepositoryType,
|
||||
provisioning.GitRepositoryType,
|
||||
provisioning.BitbucketRepositoryType,
|
||||
provisioning.GitLabRepositoryType,
|
||||
}, settings.AvailableRepositoryTypes)
|
||||
} else {
|
||||
require.ElementsMatch(t, []provisioning.RepositoryType{
|
||||
provisioning.LocalRepositoryType,
|
||||
provisioning.GitHubRepositoryType,
|
||||
}, settings.AvailableRepositoryTypes)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Repositories are reported in stats", func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user