Migrate to Wire for dependency injection (#32289)

Fixes #30144

Co-authored-by: dsotirakis <sotirakis.dim@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: spinillos <selenepinillos@gmail.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
This commit is contained in:
Arve Knudsen
2021-08-25 15:11:22 +02:00
committed by GitHub
parent e61bc33163
commit 78596a6756
180 changed files with 2384 additions and 2401 deletions
+17 -25
View File
@@ -26,25 +26,31 @@ import (
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/plugins/backendplugin"
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
"github.com/grafana/grafana/pkg/registry"
"github.com/grafana/grafana/pkg/setting"
"github.com/opentracing/opentracing-go"
)
type Service struct {
logger log.Logger
im instancemgmt.InstanceManager
BackendPluginManager backendplugin.Manager `inject:""`
Cfg *setting.Cfg `inject:""`
HTTPClientProvider httpclient.Provider `inject:""`
logger log.Logger
im instancemgmt.InstanceManager
}
func init() {
registry.Register(&registry.Descriptor{
Name: "GraphiteService",
InitPriority: registry.Low,
Instance: &Service{},
func ProvideService(httpClientProvider httpclient.Provider, manager backendplugin.Manager) (*Service, error) {
s := &Service{
logger: log.New("tsdb.graphite"),
im: datasource.NewInstanceManager(newInstanceSettings(httpClientProvider)),
}
factory := coreplugin.New(backend.ServeOpts{
QueryDataHandler: s,
})
if err := manager.Register("graphite", factory); err != nil {
s.logger.Error("Failed to register plugin", "error", err)
return nil, err
}
return s, nil
}
type datasourceInfo struct {
@@ -75,20 +81,6 @@ func newInstanceSettings(httpClientProvider httpclient.Provider) datasource.Inst
}
}
func (s *Service) Init() error {
s.logger = log.New("tsdb.graphite")
s.im = datasource.NewInstanceManager(newInstanceSettings(s.HTTPClientProvider))
factory := coreplugin.New(backend.ServeOpts{
QueryDataHandler: s,
})
if err := s.BackendPluginManager.Register("graphite", factory); err != nil {
s.logger.Error("Failed to register plugin", "error", err)
}
return nil
}
func (s *Service) getDSInfo(pluginCtx backend.PluginContext) (*datasourceInfo, error) {
i, err := s.im.Get(pluginCtx)
if err != nil {