add(influxdb): add support for 0.11.0 tags

This commit is contained in:
bergquist
2016-03-23 14:45:23 +01:00
parent 53312852e9
commit 6fafc8dba1
2 changed files with 67 additions and 17 deletions
@@ -3,21 +3,26 @@
import _ from 'lodash';
export default class ResponseParser {
parse(queryType, results) {
if (!results || results.results.length === 0) { return []; }
var influxResults = results.results[0];
if (!influxResults.series) {
return [];
}
parse(queryType, results) {
if (!results || results.results.length === 0) { return []; }
var series = influxResults.series[0];
return _.map(series.values, function(value) {
if (_.isArray(value)) {
return { text: value[0] };
} else {
return { text: value };
}
});
var influxResults = results.results[0];
if (!influxResults.series) {
return [];
}
var series = influxResults.series[0];
return _.map(series.values, function(value) {
if (_.isArray(value)) {
if (queryType === 'SHOW_TAGS') {
return { text: (value[1] || value[0]) };
} else {
return { text: value[0] };
}
} else {
return { text: value };
}
});
}
}
@@ -2,10 +2,9 @@ import _ from 'lodash';
import {describe, beforeEach, it, sinon, expect} from 'test/lib/common';
import ResponseParser from '../response_parser';
describe.only("influxdb response parser", () => {
describe("influxdb response parser", () => {
this.parser = new ResponseParser();
describe("SHOW_TAGS response", () => {
this.parser = new ResponseParser();
describe("response from 0.10.0", () => {
var response = {
"results": [
@@ -29,6 +28,30 @@ describe.only("influxdb response parser", () => {
expect(result[1].text).to.be("server2");
});
});
describe("response from 0.11.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "cpu",
"columns": [ "key", "value"],
"values": [ [ "source", "site" ], [ "source", "api" ] ]
}
]
}
]
};
var result = this.parser.parse('SHOW_TAGS', response);
it("should get two responses", () => {
expect(_.size(result)).to.be(2);
expect(result[0].text).to.be('site');
expect(result[1].text).to.be('api');
});
});
});
describe("SHOW_FIELDS response", () => {
@@ -54,5 +77,27 @@ describe.only("influxdb response parser", () => {
expect(_.size(result)).to.be(6);
});
});
describe("response from 0.11.0", () => {
var response = {
"results": [
{
"series": [
{
"name": "cpu",
"columns": ["fieldKey"],
"values": [ [ "value"] ]
}
]
}
]
};
var result = this.parser.parse('SHOW_FIELDS', response);
it("should get two responses", () => {
expect(_.size(result)).to.be(1);
});
});
});
});