From 2c41cea0c405419c1141322c7de41020276517b8 Mon Sep 17 00:00:00 2001 From: Sriram <153843+yesoreyeram@users.noreply.github.com> Date: Tue, 12 Nov 2024 09:48:23 +0000 Subject: [PATCH] fixed a bug where mixed datasource with variable ref were not working (#1909) --- src/datasource/datasource.ts | 26 +++++++++++++++++++------ src/datasource/specs/datasource.spec.ts | 3 +++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/datasource/datasource.ts b/src/datasource/datasource.ts index 4d8a3b7..a616689 100644 --- a/src/datasource/datasource.ts +++ b/src/datasource/datasource.ts @@ -14,7 +14,13 @@ import { ZabbixAPIError } from './zabbix/connectors/zabbix_api/zabbixAPIConnecto import { ProblemDTO, VariableQueryTypes } from './types'; import { ZabbixMetricsQuery, ShowProblemTypes } from './types/query'; import { ZabbixDSOptions } from './types/config'; -import { BackendSrvRequest, getBackendSrv, getTemplateSrv, toDataQueryResponse } from '@grafana/runtime'; +import { + BackendSrvRequest, + getBackendSrv, + getTemplateSrv, + toDataQueryResponse, + getDataSourceSrv, +} from '@grafana/runtime'; import { DataFrame, dataFrameFromJSON, @@ -119,11 +125,19 @@ export class ZabbixDatasource extends DataSourceApi { - // Prevent changes of original object - const target = _.cloneDeep(t); - return migrations.migrate(target); - }); + const requestTargets = request.targets + .map((t) => { + // Prevent changes of original object + const target = _.cloneDeep(t); + 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 dbConnectionResponsePromise = this.dbConnectionQuery({ ...request, targets: requestTargets }); diff --git a/src/datasource/specs/datasource.spec.ts b/src/datasource/specs/datasource.spec.ts index ed79238..0c39065 100644 --- a/src/datasource/specs/datasource.spec.ts +++ b/src/datasource/specs/datasource.spec.ts @@ -12,6 +12,9 @@ jest.mock( toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } }), }), }), + getDataSourceSrv: () => ({ + getInstanceSettings: jest.fn().mockResolvedValue({}), + }), getTemplateSrv: () => ({ replace: jest.fn().mockImplementation((query) => query), }),