mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(elasticsearch): fix json escape logic when doing terms template value lookup, fixes #5485
This commit is contained in:
parent
3ae327320a
commit
474a821767
@ -205,13 +205,8 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
|||||||
};
|
};
|
||||||
|
|
||||||
function escapeForJson(value) {
|
function escapeForJson(value) {
|
||||||
return value
|
var luceneQuery = JSON.stringify(value);
|
||||||
.replace(/\s/g, '\\ ')
|
return luceneQuery.substr(1, luceneQuery.length - 2);
|
||||||
.replace(/\"/g, '\\"');
|
|
||||||
}
|
|
||||||
|
|
||||||
function luceneThenJsonFormat(value) {
|
|
||||||
return escapeForJson(templateSrv.luceneFormat(value));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getFields = function(query) {
|
this.getFields = function(query) {
|
||||||
@ -256,7 +251,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
|||||||
var header = this.getQueryHeader('count', range.from, range.to);
|
var header = this.getQueryHeader('count', range.from, range.to);
|
||||||
var esQuery = angular.toJson(this.queryBuilder.getTermsQuery(queryDef));
|
var esQuery = angular.toJson(this.queryBuilder.getTermsQuery(queryDef));
|
||||||
|
|
||||||
esQuery = esQuery.replace("$lucene_query", escapeForJson(queryDef.query || '*'));
|
esQuery = esQuery.replace("$lucene_query", escapeForJson(queryDef.query));
|
||||||
esQuery = esQuery.replace(/\$timeFrom/g, range.from.valueOf());
|
esQuery = esQuery.replace(/\$timeFrom/g, range.from.valueOf());
|
||||||
esQuery = esQuery.replace(/\$timeTo/g, range.to.valueOf());
|
esQuery = esQuery.replace(/\$timeTo/g, range.to.valueOf());
|
||||||
esQuery = header + '\n' + esQuery + '\n';
|
esQuery = header + '\n' + esQuery + '\n';
|
||||||
@ -270,8 +265,9 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.metricFindQuery = function(query) {
|
this.metricFindQuery = function(query) {
|
||||||
query = templateSrv.replace(query, {}, luceneThenJsonFormat);
|
|
||||||
query = angular.fromJson(query);
|
query = angular.fromJson(query);
|
||||||
|
query.query = templateSrv.replace(query.query || '*', {}, 'lucene');
|
||||||
|
|
||||||
if (!query) {
|
if (!query) {
|
||||||
return $q.when([]);
|
return $q.when([]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user