UpdateQueries: Fixes issues setting datasource on queries after changing type (#41702)

This commit is contained in:
Torkel Ödegaard
2021-11-15 18:15:13 +01:00
committed by GitHub
parent 99900cbdd8
commit 51ef770c2b
4 changed files with 134 additions and 25 deletions

View File

@@ -1,5 +1,4 @@
import { DataQuery, DataSourceInstanceSettings, DataSourceRef, getDataSourceRef } from '@grafana/data';
import { isExpressionReference } from '@grafana/runtime/src/utils/DataSourceWithBackend';
import { DataQuery, DataSourceRef } from '@grafana/data';
export const getNextRefIdChar = (queries: DataQuery[]): string => {
for (let num = 0; ; num++) {
@@ -22,28 +21,6 @@ export function addQuery(queries: DataQuery[], query?: Partial<DataQuery>, datas
return [...queries, q as DataQuery];
}
export function updateQueries(
newSettings: DataSourceInstanceSettings,
queries: DataQuery[],
dsSettings?: DataSourceInstanceSettings
): DataQuery[] {
const datasource = getDataSourceRef(newSettings);
if (!newSettings.meta.mixed && dsSettings?.meta.mixed) {
return queries.map((q) => {
if (!isExpressionReference(q.datasource)) {
q.datasource = datasource;
}
return q;
});
} else if (!newSettings.meta.mixed && dsSettings?.meta.id !== newSettings.meta.id) {
// we are changing data source type, clear queries
return [{ refId: 'A', datasource }];
}
return queries;
}
export function isDataQuery(url: string): boolean {
if (
url.indexOf('api/datasources/proxy') !== -1 ||