mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 23:23:10 +08:00
Enable Grafana extensions at build time. (#11752)
* extensions: import and build * bus: use predefined error * enterprise: build script for enterprise packages * poc: auto registering services and dependency injection (cherry picked from commit b5b1ef875f905473af41e49f8071cb9028edc845) * poc: backend services registry progress (cherry picked from commit 97be69725881241bfbf1e7adf0e66801d6b0af3d) * poc: minor update (cherry picked from commit 03d7a6888b81403f458b94305792e075568f0794) * ioc: introduce manuel ioc * enterprise: adds setting for enterprise * build: test and build specific ee commit * cleanup: test testing code * removes example hello service
This commit is contained in:

committed by
Torkel Ödegaard

parent
afce0feb05
commit
28f7b6dad1
33
pkg/registry/registry.go
Normal file
33
pkg/registry/registry.go
Normal file
@ -0,0 +1,33 @@
|
||||
package registry
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
var services = []Service{}
|
||||
|
||||
func RegisterService(srv Service) {
|
||||
services = append(services, srv)
|
||||
}
|
||||
|
||||
func GetServices() []Service {
|
||||
return services
|
||||
}
|
||||
|
||||
type Service interface {
|
||||
Init() error
|
||||
}
|
||||
|
||||
// Useful for alerting service
|
||||
type CanBeDisabled interface {
|
||||
IsDisabled() bool
|
||||
}
|
||||
|
||||
type BackgroundService interface {
|
||||
Run(ctx context.Context) error
|
||||
}
|
||||
|
||||
func IsDisabled(srv Service) bool {
|
||||
canBeDisabled, ok := srv.(CanBeDisabled)
|
||||
return ok && canBeDisabled.IsDisabled()
|
||||
}
|
Reference in New Issue
Block a user