| 
									
										
										
										
											2021-09-01 22:38:56 +08:00
										 |  |  | //go:build wireinject
 | 
					
						
							| 
									
										
										
										
											2021-08-25 21:11:22 +08:00
										 |  |  | // +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" | 
					
						
							| 
									
										
										
										
											2021-08-31 23:05:45 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/infra/kvstore" | 
					
						
							| 
									
										
										
										
											2021-08-25 21:11:22 +08:00
										 |  |  | 	"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" | 
					
						
							|  |  |  | 	"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" | 
					
						
							| 
									
										
										
										
											2021-09-01 19:05:15 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/services/dashboardsnapshots" | 
					
						
							| 
									
										
										
										
											2021-08-25 21:11:22 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/services/datasourceproxy" | 
					
						
							|  |  |  | 	"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/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/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/graphite" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/tsdb/influxdb" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/tsdb/loki" | 
					
						
							|  |  |  | 	"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, | 
					
						
							| 
									
										
										
										
											2021-08-31 23:05:45 +08:00
										 |  |  | 	kvstore.ProvideService, | 
					
						
							| 
									
										
										
										
											2021-08-25 21:11:22 +08:00
										 |  |  | 	localcache.ProvideService, | 
					
						
							|  |  |  | 	usagestats.ProvideService, | 
					
						
							|  |  |  | 	wire.Bind(new(usagestats.UsageStats), new(*usagestats.UsageStatsService)), | 
					
						
							|  |  |  | 	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, | 
					
						
							|  |  |  | 	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, | 
					
						
							| 
									
										
										
										
											2021-09-01 19:05:15 +08:00
										 |  |  | 	dashboardsnapshots.ProvideService, | 
					
						
							| 
									
										
										
										
											2021-08-25 21:11:22 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | } |