Skip to content

Commit 2c41cea

Browse files
authored
fixed a bug where mixed datasource with variable ref were not working (#1909)
1 parent b271949 commit 2c41cea

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

src/datasource/datasource.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ import { ZabbixAPIError } from './zabbix/connectors/zabbix_api/zabbixAPIConnecto
1414
import { ProblemDTO, VariableQueryTypes } from './types';
1515
import { ZabbixMetricsQuery, ShowProblemTypes } from './types/query';
1616
import { ZabbixDSOptions } from './types/config';
17-
import { BackendSrvRequest, getBackendSrv, getTemplateSrv, toDataQueryResponse } from '@grafana/runtime';
17+
import {
18+
BackendSrvRequest,
19+
getBackendSrv,
20+
getTemplateSrv,
21+
toDataQueryResponse,
22+
getDataSourceSrv,
23+
} from '@grafana/runtime';
1824
import {
1925
DataFrame,
2026
dataFrameFromJSON,
@@ -119,11 +125,19 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
119125
trackRequest(request);
120126

121127
// Migrate old targets
122-
const requestTargets = request.targets.map((t) => {
123-
// Prevent changes of original object
124-
const target = _.cloneDeep(t);
125-
return migrations.migrate(target);
126-
});
128+
const requestTargets = request.targets
129+
.map((t) => {
130+
// Prevent changes of original object
131+
const target = _.cloneDeep(t);
132+
return migrations.migrate(target);
133+
})
134+
.map((target) => {
135+
let ds = getDataSourceSrv().getInstanceSettings(target?.datasource);
136+
if (ds?.rawRef?.uid) {
137+
return { ...target, datasource: { ...target?.datasource, uid: ds.rawRef?.uid } };
138+
}
139+
return target;
140+
});
127141

128142
const backendResponsePromise = this.backendQuery({ ...request, targets: requestTargets });
129143
const dbConnectionResponsePromise = this.dbConnectionQuery({ ...request, targets: requestTargets });

src/datasource/specs/datasource.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ jest.mock(
1212
toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } }),
1313
}),
1414
}),
15+
getDataSourceSrv: () => ({
16+
getInstanceSettings: jest.fn().mockResolvedValue({}),
17+
}),
1518
getTemplateSrv: () => ({
1619
replace: jest.fn().mockImplementation((query) => query),
1720
}),

0 commit comments

Comments
 (0)