mirror of https://github.com/grafana/grafana
parent
0229d28d64
commit
7f9f388293
@ -1,36 +0,0 @@ |
||||
package tsdb |
||||
|
||||
import ( |
||||
"context" |
||||
"fmt" |
||||
|
||||
"github.com/grafana/grafana/pkg/models" |
||||
) |
||||
|
||||
type Executor interface { |
||||
Execute(ctx context.Context, query *TsdbQuery) *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 |
||||
} |
||||
@ -0,0 +1,36 @@ |
||||
package tsdb |
||||
|
||||
import ( |
||||
"context" |
||||
"fmt" |
||||
|
||||
"github.com/grafana/grafana/pkg/models" |
||||
) |
||||
|
||||
type TsdbQueryEndpoint interface { |
||||
Query(ctx context.Context, query *TsdbQuery) *BatchResult |
||||
} |
||||
|
||||
var registry map[string]GetTsdbQueryEndpointFn |
||||
|
||||
type GetTsdbQueryEndpointFn func(dsInfo *models.DataSource) (TsdbQueryEndpoint, error) |
||||
|
||||
func init() { |
||||
registry = make(map[string]GetTsdbQueryEndpointFn) |
||||
} |
||||
|
||||
func getTsdbQueryEndpointFor(dsInfo *models.DataSource) (TsdbQueryEndpoint, 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 RegisterTsdbQueryEndpoint(pluginId string, fn GetTsdbQueryEndpointFn) { |
||||
registry[pluginId] = fn |
||||
} |
||||
Loading…
Reference in new issue