feat(influxdb): escape influxdb tag values, fixes #3950

This commit is contained in:
Torkel Ödegaard 2016-02-08 10:31:26 +01:00
parent 7f83be3d0d
commit de90ad8967
2 changed files with 4 additions and 4 deletions

View File

@ -6,8 +6,8 @@ import queryPart from './query_part';
export default class InfluxQuery {
target: any;
selectModels: any[];
groupByParts: any;
queryBuilder: any;
groupByParts: any;
constructor(target) {
this.target = target;
@ -144,7 +144,7 @@ export default class InfluxQuery {
// quote value unless regex
if (operator !== '=~' && operator !== '!~') {
value = "'" + value + "'";
value = "'" + value.replace('\\', '\\\\') + "'";
}
return str + '"' + tag.key + '" ' + operator + ' ' + value;

View File

@ -51,12 +51,12 @@ describe('InfluxQuery', function() {
var query = new InfluxQuery({
measurement: 'cpu',
groupBy: [{type: 'time', params: ['auto']}],
tags: [{key: 'hostname', value: 'server1'}]
tags: [{key: 'hostname', value: 'server\\1'}]
});
var queryText = query.render();
expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE "hostname" = \'server1\' AND $timeFilter'
expect(queryText).to.be('SELECT mean("value") FROM "cpu" WHERE "hostname" = \'server\\\\1\' AND $timeFilter'
+ ' GROUP BY time($interval)');
});