| 
									
										
										
										
											2023-08-03 00:29:12 +08:00
										 |  |  | package loader | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"context" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/plugins" | 
					
						
							|  |  |  | 	pluginsLoader "github.com/grafana/grafana/pkg/plugins/manager/loader" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/plugins/manager/pipeline/discovery" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization" | 
					
						
							| 
									
										
										
										
											2023-08-04 17:57:49 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/plugins/manager/pipeline/termination" | 
					
						
							| 
									
										
										
										
											2023-08-10 00:25:28 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/plugins/manager/pipeline/validation" | 
					
						
							| 
									
										
										
										
											2023-08-03 00:29:12 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var _ pluginsLoader.Service = (*Loader)(nil) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type Loader struct { | 
					
						
							|  |  |  | 	loader *pluginsLoader.Loader | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-10 00:25:28 +08:00
										 |  |  | func ProvideService(discovery discovery.Discoverer, bootstrap bootstrap.Bootstrapper, validation validation.Validator, | 
					
						
							|  |  |  | 	initializer initialization.Initializer, termination termination.Terminator, | 
					
						
							| 
									
										
										
										
											2023-08-03 00:29:12 +08:00
										 |  |  | ) *Loader { | 
					
						
							|  |  |  | 	return &Loader{ | 
					
						
							| 
									
										
										
										
											2023-08-10 00:25:28 +08:00
										 |  |  | 		loader: pluginsLoader.New(discovery, bootstrap, validation, initializer, termination), | 
					
						
							| 
									
										
										
										
											2023-08-03 00:29:12 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (l *Loader) Load(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) { | 
					
						
							|  |  |  | 	return l.loader.Load(ctx, src) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 21:44:20 +08:00
										 |  |  | func (l *Loader) Unload(ctx context.Context, p *plugins.Plugin) (*plugins.Plugin, error) { | 
					
						
							|  |  |  | 	return l.loader.Unload(ctx, p) | 
					
						
							| 
									
										
										
										
											2023-08-03 00:29:12 +08:00
										 |  |  | } |