mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* 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
34 lines
510 B
Go
34 lines
510 B
Go
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()
|
|
}
|