| 123456789101112131415161718192021222324252627282930313233343536 |
- package tsdb
- import (
- "context"
- "fmt"
- "github.com/grafana/grafana/pkg/models"
- )
- type Executor interface {
- Execute(ctx context.Context, queries QuerySlice, query *QueryContext) *BatchResult
- }
- var registry map[string]GetExecutorFn
- type GetExecutorFn func(dsInfo *models.DataSource) (Executor, error)
- func init() {
- registry = make(map[string]GetExecutorFn)
- }
- func getExecutorFor(dsInfo *models.DataSource) (Executor, error) {
- if fn, exists := registry[dsInfo.Type]; exists {
- executor, err := fn(dsInfo)
- if err != nil {
- return nil, err
- }
- return executor, nil
- }
- return nil, fmt.Errorf("Could not find executor for data source type: %s", dsInfo.Type)
- }
- func RegisterExecutor(pluginId string, fn GetExecutorFn) {
- registry[pluginId] = fn
- }
|