fixed a bug where mixed datasource with variable ref were not working (#1909)
This commit is contained in:
@@ -14,7 +14,13 @@ import { ZabbixAPIError } from './zabbix/connectors/zabbix_api/zabbixAPIConnecto
|
|||||||
import { ProblemDTO, VariableQueryTypes } from './types';
|
import { ProblemDTO, VariableQueryTypes } from './types';
|
||||||
import { ZabbixMetricsQuery, ShowProblemTypes } from './types/query';
|
import { ZabbixMetricsQuery, ShowProblemTypes } from './types/query';
|
||||||
import { ZabbixDSOptions } from './types/config';
|
import { ZabbixDSOptions } from './types/config';
|
||||||
import { BackendSrvRequest, getBackendSrv, getTemplateSrv, toDataQueryResponse } from '@grafana/runtime';
|
import {
|
||||||
|
BackendSrvRequest,
|
||||||
|
getBackendSrv,
|
||||||
|
getTemplateSrv,
|
||||||
|
toDataQueryResponse,
|
||||||
|
getDataSourceSrv,
|
||||||
|
} from '@grafana/runtime';
|
||||||
import {
|
import {
|
||||||
DataFrame,
|
DataFrame,
|
||||||
dataFrameFromJSON,
|
dataFrameFromJSON,
|
||||||
@@ -119,10 +125,18 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
|
|||||||
trackRequest(request);
|
trackRequest(request);
|
||||||
|
|
||||||
// Migrate old targets
|
// Migrate old targets
|
||||||
const requestTargets = request.targets.map((t) => {
|
const requestTargets = request.targets
|
||||||
|
.map((t) => {
|
||||||
// Prevent changes of original object
|
// Prevent changes of original object
|
||||||
const target = _.cloneDeep(t);
|
const target = _.cloneDeep(t);
|
||||||
return migrations.migrate(target);
|
return migrations.migrate(target);
|
||||||
|
})
|
||||||
|
.map((target) => {
|
||||||
|
let ds = getDataSourceSrv().getInstanceSettings(target?.datasource);
|
||||||
|
if (ds?.rawRef?.uid) {
|
||||||
|
return { ...target, datasource: { ...target?.datasource, uid: ds.rawRef?.uid } };
|
||||||
|
}
|
||||||
|
return target;
|
||||||
});
|
});
|
||||||
|
|
||||||
const backendResponsePromise = this.backendQuery({ ...request, targets: requestTargets });
|
const backendResponsePromise = this.backendQuery({ ...request, targets: requestTargets });
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ jest.mock(
|
|||||||
toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } }),
|
toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } }),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
|
getDataSourceSrv: () => ({
|
||||||
|
getInstanceSettings: jest.fn().mockResolvedValue({}),
|
||||||
|
}),
|
||||||
getTemplateSrv: () => ({
|
getTemplateSrv: () => ({
|
||||||
replace: jest.fn().mockImplementation((query) => query),
|
replace: jest.fn().mockImplementation((query) => query),
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user