Commit 4c42db9e by Torkel Ödegaard Committed by GitHub

Merge pull request #14804 from SamuelToh/4075_support_templatevar_on_alias_es_ds

4075: Interpolate tempvar on alias
parents b25214bf e1f6870f
......@@ -254,6 +254,10 @@ export class ElasticDatasource {
continue;
}
if (target.alias) {
target.alias = this.templateSrv.replace(target.alias, options.scopedVars, 'lucene');
}
const queryString = this.templateSrv.replace(target.query || '*', options.scopedVars, 'lucene');
const queryObj = this.queryBuilder.build(target, adhocFilters, queryString);
const esQuery = angular.toJson(queryObj);
......
......@@ -16,7 +16,13 @@ describe('ElasticDatasource', function(this: any) {
};
const templateSrv = {
replace: jest.fn(text => text),
replace: jest.fn(text => {
if (text.startsWith("$")) {
return `resolvedVariable`;
} else {
return text;
}
}),
getAdhocFilters: jest.fn(() => []),
};
......@@ -67,7 +73,7 @@ describe('ElasticDatasource', function(this: any) {
});
describe('When issuing metric query with interval pattern', () => {
let requestOptions, parts, header;
let requestOptions, parts, header, query;
beforeEach(() => {
createDatasource({
......@@ -81,19 +87,22 @@ describe('ElasticDatasource', function(this: any) {
return Promise.resolve({ data: { responses: [] } });
});
ctx.ds.query({
query = {
range: {
from: moment.utc([2015, 4, 30, 10]),
to: moment.utc([2015, 5, 1, 10]),
},
targets: [
{
alias: "$varAlias",
bucketAggs: [],
metrics: [{ type: 'raw_document' }],
query: 'escape\\:test',
},
],
});
};
ctx.ds.query(query);
parts = requestOptions.data.split('\n');
header = angular.fromJson(parts[0]);
......@@ -103,6 +112,10 @@ describe('ElasticDatasource', function(this: any) {
expect(header.index).toEqual(['asd-2015.05.30', 'asd-2015.05.31', 'asd-2015.06.01']);
});
it('should resolve the alias variable', () => {
expect(query.targets[0].alias).toEqual('resolvedVariable');
});
it('should json escape lucene query', () => {
const body = angular.fromJson(parts[1]);
expect(body.query.bool.filter[1].query_string.query).toBe('escape\\:test');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment