fix(influxdb): adds support for multi table values
When quering for tag values without measurement all tags and values should be shown closes #4726
This commit is contained in:
@@ -12,17 +12,27 @@ export default class ResponseParser {
|
||||
return [];
|
||||
}
|
||||
|
||||
var series = influxResults.series[0];
|
||||
return _.map(series.values, (value) => {
|
||||
if (_.isArray(value)) {
|
||||
if (query.toLowerCase().indexOf('show tag values') >= 0) {
|
||||
return { text: (value[1] || value[0]) };
|
||||
var res = [];
|
||||
_.each(influxResults.series, (serie) => {
|
||||
_.each(serie.values, (value) => {
|
||||
if (_.isArray(value)) {
|
||||
if (query.toLowerCase().indexOf('show tag values') >= 0) {
|
||||
addUnique(res, { text: (value[1] || value[0])});
|
||||
} else {
|
||||
addUnique(res, { text: value[0]});
|
||||
}
|
||||
} else {
|
||||
return { text: value[0] };
|
||||
addUnique(res, {text: value});
|
||||
}
|
||||
} else {
|
||||
return { text: value };
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
function addUnique(arr, value) {
|
||||
if (!_.any(arr, value)) {
|
||||
arr.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ describe("influxdb response parser", () => {
|
||||
{
|
||||
"name": "hostnameTagValues",
|
||||
"columns": ["hostname"],
|
||||
"values": [ ["server1"], ["server2"] ]
|
||||
"values": [ ["server1"], ["server2"], ["server2"] ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -54,7 +54,7 @@ describe("influxdb response parser", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("response from 0.11.0", () => {
|
||||
describe("response from 0.12.0", () => {
|
||||
var response = {
|
||||
"results": [
|
||||
{
|
||||
@@ -62,8 +62,19 @@ describe("influxdb response parser", () => {
|
||||
{
|
||||
"name": "cpu",
|
||||
"columns": [ "key", "value"],
|
||||
"values": [ [ "source", "site" ], [ "source", "api" ] ]
|
||||
}
|
||||
"values": [
|
||||
[ "source", "site" ],
|
||||
[ "source", "api" ]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "logins",
|
||||
"columns": [ "key", "value"],
|
||||
"values": [
|
||||
[ "source", "site" ],
|
||||
[ "source", "webapi"]
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -72,15 +83,12 @@ describe("influxdb response parser", () => {
|
||||
var result = this.parser.parse(query, response);
|
||||
|
||||
it("should get two responses", () => {
|
||||
expect(_.size(result)).to.be(2);
|
||||
expect(_.size(result)).to.be(3);
|
||||
expect(result[0].text).to.be('site');
|
||||
expect(result[1].text).to.be('api');
|
||||
expect(result[2].text).to.be('webapi');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
describe("SHOW FIELD response", () => {
|
||||
|
||||
Reference in New Issue
Block a user