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:
co-authored by
dsotirakis
Marcus Efraimsson
Ida Furjesova
Jack Westbrook
Will Browne
Leon Sorokin
Andrej Ocenas
spinillos
Karl Persson
Leonard Gram
parent
e61bc33163
commit
78596a6756
@@ -9,37 +9,41 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"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"
|
||||
)
|
||||
|
||||
func init() {
|
||||
registry.RegisterService(&testDataPlugin{})
|
||||
}
|
||||
|
||||
type testDataPlugin struct {
|
||||
BackendPluginManager backendplugin.Manager `inject:""`
|
||||
Cfg *setting.Cfg `inject:""`
|
||||
logger log.Logger
|
||||
scenarios map[string]*Scenario
|
||||
queryMux *datasource.QueryTypeMux
|
||||
}
|
||||
|
||||
func (p *testDataPlugin) Init() error {
|
||||
p.logger = log.New("tsdb.testdata")
|
||||
p.scenarios = map[string]*Scenario{}
|
||||
p.queryMux = datasource.NewQueryTypeMux()
|
||||
p.registerScenarios()
|
||||
func ProvideService(cfg *setting.Cfg, manager backendplugin.Manager) (*TestDataPlugin, error) {
|
||||
resourceMux := http.NewServeMux()
|
||||
p.registerRoutes(resourceMux)
|
||||
p := new(resourceMux)
|
||||
factory := coreplugin.New(backend.ServeOpts{
|
||||
QueryDataHandler: p.queryMux,
|
||||
CallResourceHandler: httpadapter.New(resourceMux),
|
||||
StreamHandler: newTestStreamHandler(p.logger),
|
||||
})
|
||||
err := p.BackendPluginManager.Register("testdata", factory)
|
||||
err := manager.Register("testdata", factory)
|
||||
if err != nil {
|
||||
p.logger.Error("Failed to register plugin", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
return nil
|
||||
|
||||
return p, nil
|
||||
}
|
||||
|
||||
func new(resourceMux *http.ServeMux) *TestDataPlugin {
|
||||
p := &TestDataPlugin{
|
||||
logger: log.New("tsdb.testdata"),
|
||||
scenarios: map[string]*Scenario{},
|
||||
queryMux: datasource.NewQueryTypeMux(),
|
||||
}
|
||||
|
||||
p.registerScenarios()
|
||||
p.registerRoutes(resourceMux)
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
type TestDataPlugin struct {
|
||||
cfg *setting.Cfg
|
||||
logger log.Logger
|
||||
scenarios map[string]*Scenario
|
||||
queryMux *datasource.QueryTypeMux
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user