mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Grafana CLI Wire Runner (#41012)
* Set up Wire build graph * Remove enterprise Wire set * Move runner package outside commands * Update Makefile (gen-go path) * Minor prettier fix * Include new Wire enterprise file into .gitignore * Update Wire deps * Update the grabpl version Co-authored-by: Dan Cech <dcech@grafana.com>
This commit is contained in:
committed by
GitHub
parent
1b99d88337
commit
d49230d291
27
pkg/cmd/grafana-cli/runner/runner.go
Normal file
27
pkg/cmd/grafana-cli/runner/runner.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package runner
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/services/encryption"
|
||||
"github.com/grafana/grafana/pkg/services/secrets"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
type Runner struct {
|
||||
Cfg *setting.Cfg
|
||||
SQLStore *sqlstore.SQLStore
|
||||
SettingsProvider setting.Provider
|
||||
EncryptionService encryption.Internal
|
||||
SecretsService secrets.Service
|
||||
}
|
||||
|
||||
func New(cfg *setting.Cfg, sqlStore *sqlstore.SQLStore, settingsProvider setting.Provider,
|
||||
encryptionService encryption.Internal, secretsService secrets.Service) Runner {
|
||||
return Runner{
|
||||
Cfg: cfg,
|
||||
SQLStore: sqlStore,
|
||||
SettingsProvider: settingsProvider,
|
||||
EncryptionService: encryptionService,
|
||||
SecretsService: secretsService,
|
||||
}
|
||||
}
|
||||
76
pkg/cmd/grafana-cli/runner/wire.go
Normal file
76
pkg/cmd/grafana-cli/runner/wire.go
Normal file
@@ -0,0 +1,76 @@
|
||||
//go:build wireinject
|
||||
// +build wireinject
|
||||
|
||||
package runner
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/google/wire"
|
||||
"github.com/grafana/grafana/pkg/api/routing"
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/infra/localcache"
|
||||
"github.com/grafana/grafana/pkg/infra/usagestats"
|
||||
"github.com/grafana/grafana/pkg/services/secrets"
|
||||
secretsDatabase "github.com/grafana/grafana/pkg/services/secrets/database"
|
||||
secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/web"
|
||||
)
|
||||
|
||||
var wireSet = wire.NewSet(
|
||||
New,
|
||||
localcache.ProvideService,
|
||||
bus.ProvideBus,
|
||||
wire.Bind(new(bus.Bus), new(*bus.InProcBus)),
|
||||
sqlstore.ProvideService,
|
||||
wire.InterfaceValue(new(usagestats.Service), noOpUsageStats{}),
|
||||
wire.InterfaceValue(new(routing.RouteRegister), noOpRouteRegister{}),
|
||||
secretsDatabase.ProvideSecretsStore,
|
||||
wire.Bind(new(secrets.Store), new(*secretsDatabase.SecretsStoreImpl)),
|
||||
secretsManager.ProvideSecretsService,
|
||||
wire.Bind(new(secrets.Service), new(*secretsManager.SecretsService)),
|
||||
)
|
||||
|
||||
func Initialize(cfg *setting.Cfg) (Runner, error) {
|
||||
wire.Build(wireExtsSet)
|
||||
return Runner{}, nil
|
||||
}
|
||||
|
||||
// NoOp implementations of those dependencies that makes no sense to
|
||||
// inject on CLI command executions (like the route registerer, for instance).
|
||||
|
||||
type noOpUsageStats struct{}
|
||||
|
||||
func (noOpUsageStats) GetUsageReport(context.Context) (usagestats.Report, error) {
|
||||
return usagestats.Report{}, nil
|
||||
}
|
||||
|
||||
func (noOpUsageStats) RegisterMetricsFunc(_ usagestats.MetricsFunc) {}
|
||||
|
||||
func (noOpUsageStats) RegisterSendReportCallback(_ usagestats.SendReportCallbackFunc) {}
|
||||
|
||||
func (noOpUsageStats) ShouldBeReported(string) bool { return false }
|
||||
|
||||
type noOpRouteRegister struct{}
|
||||
|
||||
func (noOpRouteRegister) Get(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Post(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Delete(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Put(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Patch(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Any(string, ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Group(string, func(routing.RouteRegister), ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Insert(string, func(routing.RouteRegister), ...web.Handler) {}
|
||||
|
||||
func (noOpRouteRegister) Register(routing.Router) {}
|
||||
|
||||
func (noOpRouteRegister) Reset() {}
|
||||
27
pkg/cmd/grafana-cli/runner/wireexts_oss.go
Normal file
27
pkg/cmd/grafana-cli/runner/wireexts_oss.go
Normal file
@@ -0,0 +1,27 @@
|
||||
//go:build wireinject && oss
|
||||
// +build wireinject,oss
|
||||
|
||||
package runner
|
||||
|
||||
import (
|
||||
"github.com/google/wire"
|
||||
"github.com/grafana/grafana/pkg/registry"
|
||||
"github.com/grafana/grafana/pkg/services/encryption"
|
||||
"github.com/grafana/grafana/pkg/services/encryption/ossencryption"
|
||||
"github.com/grafana/grafana/pkg/services/kmsproviders"
|
||||
"github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrations"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
var wireExtsSet = wire.NewSet(
|
||||
wireSet,
|
||||
migrations.ProvideOSSMigrations,
|
||||
wire.Bind(new(registry.DatabaseMigrator), new(*migrations.OSSMigrations)),
|
||||
setting.ProvideProvider,
|
||||
wire.Bind(new(setting.Provider), new(*setting.OSSImpl)),
|
||||
osskmsproviders.ProvideService,
|
||||
wire.Bind(new(kmsproviders.Service), new(osskmsproviders.Service)),
|
||||
ossencryption.ProvideService,
|
||||
wire.Bind(new(encryption.Internal), new(*ossencryption.Service)),
|
||||
)
|
||||
Reference in New Issue
Block a user