|
|
@@ -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()
|