api/ds/query: simplify data sources lookup for queries and expressions (#41172)

This commit is contained in:
Ryan McKinley
2021-11-05 08:12:55 -07:00
committed by GitHub
parent c8b7373016
commit 3489721ed6
16 changed files with 255 additions and 224 deletions

View File

@@ -112,7 +112,7 @@ export class QueryGroup extends PureComponent<Props, State> {
onChangeDataSource = async (newSettings: DataSourceInstanceSettings) => {
const { dsSettings } = this.state;
const queries = updateQueries(newSettings, this.state.queries, expressionDatasource.name, dsSettings);
const queries = updateQueries(newSettings, this.state.queries, dsSettings);
const dataSource = await this.dataSourceSrv.get(newSettings.name);
this.onChange({

View File

@@ -22,13 +22,10 @@ import {
} from '@grafana/data';
import { toDataQueryError } from '@grafana/runtime';
import { emitDataRequestEvent } from './queryAnalytics';
import {
dataSource as expressionDatasource,
ExpressionDatasourceID,
ExpressionDatasourceUID,
} from 'app/features/expressions/ExpressionDatasource';
import { dataSource as expressionDatasource } from 'app/features/expressions/ExpressionDatasource';
import { ExpressionQuery } from 'app/features/expressions/types';
import { cancelNetworkRequestsOnUnsubscribe } from './processing/canceler';
import { isExpressionReference } from '@grafana/runtime/src/utils/DataSourceWithBackend';
type MapOfResponsePackets = { [str: string]: DataQueryResponse };
@@ -174,7 +171,7 @@ export function callQueryMethod(
) {
// If any query has an expression, use the expression endpoint
for (const target of request.targets) {
if (target.datasource === ExpressionDatasourceID || target.datasource === ExpressionDatasourceUID) {
if (isExpressionReference(target.datasource)) {
return expressionDatasource.query(request as DataQueryRequest<ExpressionQuery>);
}
}