From 0a85efbf18d7d163392499b4f0b0e799ef69312c Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 20 Jun 2016 11:44:06 +0200 Subject: [PATCH] feat(alerting): add datasource type to settings --- pkg/services/alerting/extractor.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkg/services/alerting/extractor.go b/pkg/services/alerting/extractor.go index 63e0b1b08bd..196af8ae171 100644 --- a/pkg/services/alerting/extractor.go +++ b/pkg/services/alerting/extractor.go @@ -23,28 +23,28 @@ func NewDashAlertExtractor(dash *m.Dashboard, orgId int64) *DashAlertExtractor { } } -func (e *DashAlertExtractor) lookupDatasourceId(dsName string) (int64, error) { +func (e *DashAlertExtractor) lookupDatasourceId(dsName string) (*m.DataSource, error) { if dsName == "" { query := &m.GetDataSourcesQuery{OrgId: e.OrgId} if err := bus.Dispatch(query); err != nil { - return 0, err + return nil, err } else { for _, ds := range query.Result { if ds.IsDefault { - return ds.Id, nil + return ds, nil } } } } else { query := &m.GetDataSourceByNameQuery{Name: dsName, OrgId: e.OrgId} if err := bus.Dispatch(query); err != nil { - return 0, err + return nil, err } else { - return query.Result.Id, nil + return query.Result, nil } } - return 0, errors.New("Could not find datasource id for " + dsName) + return nil, errors.New("Could not find datasource id for " + dsName) } func (e *DashAlertExtractor) GetAlerts() ([]*m.Alert, error) { @@ -94,10 +94,11 @@ func (e *DashAlertExtractor) GetAlerts() ([]*m.Alert, error) { dsName = panel.Get("datasource").MustString() } - if datasourceId, err := e.lookupDatasourceId(dsName); err != nil { + if datasource, err := e.lookupDatasourceId(dsName); err != nil { return nil, err } else { - valueQuery.SetPath([]string{"datasourceId"}, datasourceId) + valueQuery.SetPath([]string{"datasourceId"}, datasource.Id) + valueQuery.SetPath([]string{"datasourceType"}, datasource.Type) } targetQuery := target.Get("target").MustString()