| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | package sql | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 	infraDB "github.com/grafana/grafana/pkg/infra/db" | 
					
						
							| 
									
										
										
										
											2024-08-16 01:13:36 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/infra/tracing" | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/services/featuremgmt" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/setting" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/storage/unified/resource" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/storage/unified/sql/db/dbimpl" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-12 22:22:27 +08:00
										 |  |  | // Creates a new ResourceServer
 | 
					
						
							|  |  |  | func NewResourceServer(db infraDB.DB, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer) (resource.ResourceServer, error) { | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	opts := resource.ResourceServerOptions{ | 
					
						
							|  |  |  | 		Tracer: tracer, | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-04 20:07:20 +08:00
										 |  |  | 	eDB, err := dbimpl.ProvideResourceDB(db, cfg, tracer) | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		return nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2024-07-23 01:08:30 +08:00
										 |  |  | 	store, err := NewBackend(BackendOptions{DBProvider: eDB, Tracer: tracer}) | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		return nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	opts.Backend = store | 
					
						
							|  |  |  | 	opts.Diagnostics = store | 
					
						
							|  |  |  | 	opts.Lifecycle = store | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-01 03:46:14 +08:00
										 |  |  | 	if features.IsEnabledGlobally(featuremgmt.FlagUnifiedStorageSearch) { | 
					
						
							|  |  |  | 		opts.Index = resource.NewResourceIndexServer() | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-18 23:03:18 +08:00
										 |  |  | 	return resource.NewResourceServer(opts) | 
					
						
							|  |  |  | } |