api/ds/query: simplify data sources lookup for queries and expressions (#41172)
This commit is contained in:
+18
-5
@@ -143,17 +143,30 @@ func (s *Service) buildGraph(req *Request) (*simple.DirectedGraph, error) {
|
||||
RefID: query.RefID,
|
||||
TimeRange: query.TimeRange,
|
||||
QueryType: query.QueryType,
|
||||
DatasourceUID: query.DatasourceUID,
|
||||
DatasourceUID: query.GetDatasourceUID(),
|
||||
}
|
||||
|
||||
isExpr, err := rn.IsExpressionQuery()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
numericDSID := float64(0) // legacy
|
||||
if rn.DatasourceUID == "" {
|
||||
if rv, ok := rn.Query["datasourceId"]; ok {
|
||||
if sv, ok := rv.(float64); ok {
|
||||
if sv == DatasourceID {
|
||||
rn.DatasourceUID = DatasourceUID
|
||||
}
|
||||
if sv > 0 {
|
||||
numericDSID = sv
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if rn.DatasourceUID == "" && numericDSID == 0 {
|
||||
return nil, fmt.Errorf("missing datasource uid in query with refId %v", query.RefID)
|
||||
}
|
||||
|
||||
var node Node
|
||||
|
||||
if isExpr {
|
||||
if rn.IsExpressionQuery() {
|
||||
node, err = buildCMDNode(dp, rn)
|
||||
} else {
|
||||
node, err = s.buildDSNode(dp, rn, req)
|
||||
|
||||
Reference in New Issue
Block a user