DataSourceWithBackend: use datasource id when datasource property is not set (#25338)

* use the instance datasource id if not specified

* better tests
This commit is contained in:
Ryan McKinley
2020-06-04 14:46:26 +02:00
committed by GitHub
parent 00a9af00fc
commit a65f7d666d
2 changed files with 93 additions and 6 deletions
@@ -62,21 +62,25 @@ export class DataSourceWithBackend<
targets = targets.filter(q => this.filterQuery!(q));
}
const queries = targets.map(q => {
let datasourceId = this.id;
if (q.datasource === ExpressionDatasourceID) {
return {
...q,
datasourceId: this.id,
datasourceId,
orgId,
};
}
const dsName = q.datasource && q.datasource !== 'default' ? q.datasource : config.defaultDatasource;
const ds = config.datasources[dsName];
if (!ds) {
throw new Error('Unknown Datasource: ' + q.datasource);
if (q.datasource) {
const dsName = q.datasource === 'default' ? config.defaultDatasource : q.datasource;
const ds = config.datasources[dsName];
if (!ds) {
throw new Error('Unknown Datasource: ' + q.datasource);
}
datasourceId = ds.id;
}
return {
...this.applyTemplateVariables(q, request.scopedVars),
datasourceId: ds.id,
datasourceId,
intervalMs,
maxDataPoints,
orgId,