mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			178 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Go
		
	
	
	
| //go:build wireinject
 | |
| // +build wireinject
 | |
| 
 | |
| package server
 | |
| 
 | |
| import (
 | |
| 	"github.com/google/wire"
 | |
| 	sdkhttpclient "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
 | |
| 	"github.com/grafana/grafana/pkg/api"
 | |
| 	"github.com/grafana/grafana/pkg/api/routing"
 | |
| 	"github.com/grafana/grafana/pkg/bus"
 | |
| 	"github.com/grafana/grafana/pkg/infra/httpclient"
 | |
| 	"github.com/grafana/grafana/pkg/infra/httpclient/httpclientprovider"
 | |
| 	"github.com/grafana/grafana/pkg/infra/kvstore"
 | |
| 	"github.com/grafana/grafana/pkg/infra/localcache"
 | |
| 	"github.com/grafana/grafana/pkg/infra/metrics"
 | |
| 	"github.com/grafana/grafana/pkg/infra/remotecache"
 | |
| 	"github.com/grafana/grafana/pkg/infra/serverlock"
 | |
| 	"github.com/grafana/grafana/pkg/infra/tracing"
 | |
| 	"github.com/grafana/grafana/pkg/infra/usagestats"
 | |
| 	uss "github.com/grafana/grafana/pkg/infra/usagestats/service"
 | |
| 	"github.com/grafana/grafana/pkg/login/social"
 | |
| 	"github.com/grafana/grafana/pkg/models"
 | |
| 	"github.com/grafana/grafana/pkg/plugins"
 | |
| 	"github.com/grafana/grafana/pkg/plugins/backendplugin"
 | |
| 	backendmanager "github.com/grafana/grafana/pkg/plugins/backendplugin/manager"
 | |
| 	"github.com/grafana/grafana/pkg/plugins/manager"
 | |
| 	"github.com/grafana/grafana/pkg/plugins/plugincontext"
 | |
| 	"github.com/grafana/grafana/pkg/plugins/plugindashboards"
 | |
| 	"github.com/grafana/grafana/pkg/services/alerting"
 | |
| 	"github.com/grafana/grafana/pkg/services/auth/jwt"
 | |
| 	"github.com/grafana/grafana/pkg/services/cleanup"
 | |
| 	"github.com/grafana/grafana/pkg/services/contexthandler"
 | |
| 	"github.com/grafana/grafana/pkg/services/dashboardsnapshots"
 | |
| 	"github.com/grafana/grafana/pkg/services/datasourceproxy"
 | |
| 	"github.com/grafana/grafana/pkg/services/datasources"
 | |
| 	"github.com/grafana/grafana/pkg/services/hooks"
 | |
| 	"github.com/grafana/grafana/pkg/services/libraryelements"
 | |
| 	"github.com/grafana/grafana/pkg/services/librarypanels"
 | |
| 	"github.com/grafana/grafana/pkg/services/live"
 | |
| 	"github.com/grafana/grafana/pkg/services/live/pushhttp"
 | |
| 	"github.com/grafana/grafana/pkg/services/login"
 | |
| 	"github.com/grafana/grafana/pkg/services/login/authinfoservice"
 | |
| 	"github.com/grafana/grafana/pkg/services/login/loginservice"
 | |
| 	"github.com/grafana/grafana/pkg/services/ngalert"
 | |
| 	ngmetrics "github.com/grafana/grafana/pkg/services/ngalert/metrics"
 | |
| 	"github.com/grafana/grafana/pkg/services/notifications"
 | |
| 	"github.com/grafana/grafana/pkg/services/oauthtoken"
 | |
| 	"github.com/grafana/grafana/pkg/services/pluginsettings"
 | |
| 	"github.com/grafana/grafana/pkg/services/quota"
 | |
| 	"github.com/grafana/grafana/pkg/services/rendering"
 | |
| 	"github.com/grafana/grafana/pkg/services/schemaloader"
 | |
| 	"github.com/grafana/grafana/pkg/services/search"
 | |
| 	"github.com/grafana/grafana/pkg/services/secrets"
 | |
| 	"github.com/grafana/grafana/pkg/services/shorturls"
 | |
| 	"github.com/grafana/grafana/pkg/services/sqlstore"
 | |
| 	"github.com/grafana/grafana/pkg/setting"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/azuremonitor"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/cloudmonitoring"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/cloudwatch"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/elasticsearch"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/grafanads"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/graphite"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/influxdb"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/loki"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/mssql"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/mysql"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/opentsdb"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/postgres"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/prometheus"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/tempo"
 | |
| 	"github.com/grafana/grafana/pkg/tsdb/testdatasource"
 | |
| )
 | |
| 
 | |
| var wireBasicSet = wire.NewSet(
 | |
| 	tsdb.NewService,
 | |
| 	wire.Bind(new(plugins.DataRequestHandler), new(*tsdb.Service)),
 | |
| 	alerting.ProvideAlertEngine,
 | |
| 	wire.Bind(new(alerting.UsageStatsQuerier), new(*alerting.AlertEngine)),
 | |
| 	setting.NewCfgFromArgs,
 | |
| 	New,
 | |
| 	api.ProvideHTTPServer,
 | |
| 	bus.ProvideBus,
 | |
| 	wire.Bind(new(bus.Bus), new(*bus.InProcBus)),
 | |
| 	rendering.ProvideService,
 | |
| 	wire.Bind(new(rendering.Service), new(*rendering.RenderingService)),
 | |
| 	routing.ProvideRegister,
 | |
| 	wire.Bind(new(routing.RouteRegister), new(*routing.RouteRegisterImpl)),
 | |
| 	hooks.ProvideService,
 | |
| 	kvstore.ProvideService,
 | |
| 	localcache.ProvideService,
 | |
| 	uss.ProvideService,
 | |
| 	wire.Bind(new(usagestats.Service), new(*uss.UsageStats)),
 | |
| 	manager.ProvideService,
 | |
| 	wire.Bind(new(plugins.Manager), new(*manager.PluginManager)),
 | |
| 	backendmanager.ProvideService,
 | |
| 	wire.Bind(new(backendplugin.Manager), new(*backendmanager.Manager)),
 | |
| 	cloudwatch.ProvideService,
 | |
| 	cloudwatch.ProvideLogsService,
 | |
| 	cloudmonitoring.ProvideService,
 | |
| 	azuremonitor.ProvideService,
 | |
| 	postgres.ProvideService,
 | |
| 	mysql.ProvideService,
 | |
| 	mssql.ProvideService,
 | |
| 	httpclientprovider.New,
 | |
| 	wire.Bind(new(httpclient.Provider), new(*sdkhttpclient.Provider)),
 | |
| 	serverlock.ProvideService,
 | |
| 	cleanup.ProvideService,
 | |
| 	shorturls.ProvideService,
 | |
| 	wire.Bind(new(shorturls.Service), new(*shorturls.ShortURLService)),
 | |
| 	quota.ProvideService,
 | |
| 	remotecache.ProvideService,
 | |
| 	loginservice.ProvideService,
 | |
| 	wire.Bind(new(login.Service), new(*loginservice.Implementation)),
 | |
| 	authinfoservice.ProvideAuthInfoService,
 | |
| 	wire.Bind(new(login.AuthInfoService), new(*authinfoservice.Implementation)),
 | |
| 	datasourceproxy.ProvideService,
 | |
| 	search.ProvideService,
 | |
| 	live.ProvideService,
 | |
| 	pushhttp.ProvideService,
 | |
| 	plugincontext.ProvideService,
 | |
| 	contexthandler.ProvideService,
 | |
| 	jwt.ProvideService,
 | |
| 	wire.Bind(new(models.JWTService), new(*jwt.AuthService)),
 | |
| 	plugindashboards.ProvideService,
 | |
| 	schemaloader.ProvideService,
 | |
| 	ngalert.ProvideService,
 | |
| 	librarypanels.ProvideService,
 | |
| 	wire.Bind(new(librarypanels.Service), new(*librarypanels.LibraryPanelService)),
 | |
| 	libraryelements.ProvideService,
 | |
| 	wire.Bind(new(libraryelements.Service), new(*libraryelements.LibraryElementService)),
 | |
| 	notifications.ProvideService,
 | |
| 	tracing.ProvideService,
 | |
| 	metrics.ProvideService,
 | |
| 	testdatasource.ProvideService,
 | |
| 	opentsdb.ProvideService,
 | |
| 	social.ProvideService,
 | |
| 	influxdb.ProvideService,
 | |
| 	wire.Bind(new(social.Service), new(*social.SocialService)),
 | |
| 	oauthtoken.ProvideService,
 | |
| 	wire.Bind(new(oauthtoken.OAuthTokenService), new(*oauthtoken.Service)),
 | |
| 	tempo.ProvideService,
 | |
| 	loki.ProvideService,
 | |
| 	graphite.ProvideService,
 | |
| 	prometheus.ProvideService,
 | |
| 	elasticsearch.ProvideService,
 | |
| 	secrets.ProvideSecretsService,
 | |
| 	grafanads.ProvideService,
 | |
| 	dashboardsnapshots.ProvideService,
 | |
| 	datasources.ProvideService,
 | |
| 	pluginsettings.ProvideService,
 | |
| 	alerting.ProvideService,
 | |
| )
 | |
| 
 | |
| var wireSet = wire.NewSet(
 | |
| 	wireBasicSet,
 | |
| 	sqlstore.ProvideService,
 | |
| 	ngmetrics.ProvideService,
 | |
| )
 | |
| 
 | |
| var wireTestSet = wire.NewSet(
 | |
| 	wireBasicSet,
 | |
| 	ProvideTestEnv,
 | |
| 	sqlstore.ProvideServiceForTests,
 | |
| 	ngmetrics.ProvideServiceForTest,
 | |
| )
 | |
| 
 | |
| func Initialize(cla setting.CommandLineArgs, opts Options, apiOpts api.ServerOptions) (*Server, error) {
 | |
| 	wire.Build(wireExtsSet)
 | |
| 	return &Server{}, nil
 | |
| }
 | |
| 
 | |
| func InitializeForTest(cla setting.CommandLineArgs, opts Options, apiOpts api.ServerOptions) (*TestEnv, error) {
 | |
| 	wire.Build(wireExtsTestSet)
 | |
| 	return &TestEnv{Server: &Server{}, SQLStore: &sqlstore.SQLStore{}}, nil
 | |
| }
 |