mirror of
https://github.com/grafana/grafana.git
synced 2026-07-29 15:59:50 -05:00
FeatureFlags: Avoid using cfg.IsFeatureToggleEnabled (#81407)
This commit is contained in:
@@ -33,7 +33,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
func initConflictCfg(cmd *utils.ContextCommandLine) (*setting.Cfg, error) {
|
||||
func initConflictCfg(cmd *utils.ContextCommandLine) (*setting.Cfg, *featuremgmt.FeatureManager, error) {
|
||||
configOptions := strings.Split(cmd.String("configOverrides"), " ")
|
||||
configOptions = append(configOptions, cmd.Args().Slice()...)
|
||||
cfg, err := setting.NewCfgFromArgs(setting.CommandLineArgs{
|
||||
@@ -43,17 +43,19 @@ func initConflictCfg(cmd *utils.ContextCommandLine) (*setting.Cfg, error) {
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
return cfg, nil
|
||||
|
||||
features, err := featuremgmt.ProvideManagerService(cfg)
|
||||
return cfg, features, err
|
||||
}
|
||||
|
||||
func initializeConflictResolver(cmd *utils.ContextCommandLine, f Formatter, ctx *cli.Context) (*ConflictResolver, error) {
|
||||
cfg, err := initConflictCfg(cmd)
|
||||
cfg, features, err := initConflictCfg(cmd)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to load configuration", err)
|
||||
}
|
||||
s, err := getSqlStore(cfg)
|
||||
s, err := getSqlStore(cfg, features)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to get to sql", err)
|
||||
}
|
||||
@@ -67,11 +69,7 @@ func initializeConflictResolver(cmd *utils.ContextCommandLine, f Formatter, ctx
|
||||
return nil, fmt.Errorf("%v: %w", "failed to get user service", err)
|
||||
}
|
||||
routing := routing.ProvideRegister()
|
||||
featMgmt, err := featuremgmt.ProvideManagerService(cfg, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to get feature management service", err)
|
||||
}
|
||||
acService, err := acimpl.ProvideService(cfg, s, routing, nil, nil, nil, featMgmt)
|
||||
acService, err := acimpl.ProvideService(cfg, s, routing, nil, nil, nil, features)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to get access control", err)
|
||||
}
|
||||
@@ -80,13 +78,13 @@ func initializeConflictResolver(cmd *utils.ContextCommandLine, f Formatter, ctx
|
||||
return &resolver, nil
|
||||
}
|
||||
|
||||
func getSqlStore(cfg *setting.Cfg) (*sqlstore.SQLStore, error) {
|
||||
func getSqlStore(cfg *setting.Cfg, features featuremgmt.FeatureToggles) (*sqlstore.SQLStore, error) {
|
||||
tracer, err := tracing.ProvideService(cfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to initialize tracer service", err)
|
||||
}
|
||||
bus := bus.ProvideBus(tracer)
|
||||
return sqlstore.ProvideService(cfg, &migrations.OSSMigrations{}, bus, tracer)
|
||||
return sqlstore.ProvideService(cfg, features, &migrations.OSSMigrations{}, bus, tracer)
|
||||
}
|
||||
|
||||
func runListConflictUsers() func(context *cli.Context) error {
|
||||
|
||||
@@ -18,7 +18,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
grafanaAPIServer "github.com/grafana/grafana/pkg/services/grafana-apiserver"
|
||||
"github.com/grafana/grafana/pkg/services/grafana-apiserver/utils"
|
||||
"github.com/grafana/grafana/pkg/services/licensing"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
@@ -52,10 +51,7 @@ func (o *APIServerOptions) loadAPIGroupBuilders(args []string) error {
|
||||
case "example.grafana.app":
|
||||
o.builders = append(o.builders, example.NewTestingAPIBuilder())
|
||||
case "featuretoggle.grafana.app":
|
||||
features, err := featuremgmt.ProvideManagerService(&setting.Cfg{}, &licensing.OSSLicensingService{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
features := featuremgmt.WithFeatureManager(setting.FeatureMgmtSettings{}, nil) // none... for now
|
||||
o.builders = append(o.builders, featuretoggle.NewFeatureFlagAPIBuilder(features))
|
||||
case "testdata.datasource.grafana.app":
|
||||
ds, err := server.InitializeDataSourceAPIServer(g)
|
||||
|
||||
Reference in New Issue
Block a user